You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.1 KiB
93 lines
3.1 KiB
4 years ago
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Description: 商业智能-日志分析
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: Michael_xu | gengxiaoxu@5kcrm.com
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace app\bi\controller;
|
||
|
|
||
|
use app\admin\controller\ApiCommon;
|
||
|
use think\Db;
|
||
|
use think\Hook;
|
||
|
use think\Request;
|
||
|
|
||
|
class Log extends ApiCommon
|
||
|
{
|
||
|
/**
|
||
|
* 用于判断权限
|
||
|
* @permission 无限制
|
||
|
* @allow 登录用户可访问
|
||
|
* @other 其他根据系统设置
|
||
|
**/
|
||
|
public function _initialize()
|
||
|
{
|
||
|
$action = [
|
||
|
'permission'=>[''],
|
||
|
'allow'=>['statistics','excelexport']
|
||
|
];
|
||
|
Hook::listen('check_auth',$action);
|
||
|
$request = Request::instance();
|
||
|
$a = strtolower($request->action());
|
||
|
if (!in_array($a, $action['permission'])) {
|
||
|
parent::_initialize();
|
||
|
}
|
||
|
if (!checkPerByAction('bi', 'oa', 'read')) {
|
||
|
header('Content-Type:application/json; charset=utf-8');
|
||
|
exit(json_encode(['code'=>102,'error'=>'无权操作']));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 日志统计列表
|
||
|
* @return
|
||
|
*/
|
||
|
public function statistics()
|
||
|
{
|
||
|
$param = $this->param;
|
||
|
|
||
|
if ($param['type']) {
|
||
|
$timeArr = getTimeByType($param['type']);
|
||
|
$param['start_time'] = $timeArr[0];
|
||
|
$param['end_time'] = $timeArr[1];
|
||
|
} else {
|
||
|
if (!empty($param['start_time'])) $param['start_time'] = strtotime($param['start_time'] . ' 00:00:00');
|
||
|
if (!empty($param['end_time'])) $param['end_time'] = strtotime($param['end_time'] . ' 23:59:59');
|
||
|
}
|
||
|
$loglModel = new \app\bi\model\Log();
|
||
|
$list = $loglModel->getStatistics($param) ? : [];
|
||
|
return resultArray(['data'=>$list]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 统计导出
|
||
|
* @author Michael_xu
|
||
|
* @param
|
||
|
* @return
|
||
|
*/
|
||
|
public function excelExport()
|
||
|
{
|
||
|
$param = $this->param;
|
||
|
$excelModel = new \app\admin\model\Excel();
|
||
|
// 导出的字段列表
|
||
|
$field_list = [
|
||
|
'0' => ['field' => 'realname','name' => '员工'],
|
||
|
'1' => ['field' => 'count','name' => '填写数'],
|
||
|
'2' => ['field' => 'unReadCont','name' => '接收人未读数'],
|
||
|
'3' => ['field' => 'unCommentCount','name' => '未评论数'],
|
||
|
'4' => ['field' => 'commentCount','name' => '已评论数'],
|
||
|
];
|
||
|
// 文件名
|
||
|
$file_name = '5kcrm_log_'.date('Ymd');
|
||
|
$excelModel->dataExportCsv($file_name, $field_list, function($list) use ($param){
|
||
|
$loglModel = new \app\bi\model\Log();
|
||
|
if ($param['type']) {
|
||
|
$timeArr = getTimeByType($param['type']);
|
||
|
$param['start_time'] = $timeArr[0];
|
||
|
$param['end_time'] = $timeArr[1];
|
||
|
}
|
||
|
$list = $loglModel->getStatistics($param);
|
||
|
return $list ? : [];
|
||
|
});
|
||
|
}
|
||
|
}
|