| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- // +----------------------------------------------------------------------
- // | Description: 日志统计
- // +----------------------------------------------------------------------
- // | Author: zhi | zhijunfu@5kcrm.com
- // +----------------------------------------------------------------------
- namespace app\bi\model;
-
- use think\Db;
- use app\admin\model\Common;
- use think\Request;
- use app\admin\model\User as UserModel;
-
-
- class Log extends Common
- {
- /**
- * 为了数据库的整洁,同时又不影响Model和Controller的名称
- * 我们约定每个模块的数据表都加上相同的前缀,比如CRM模块用crm作为数据表前缀
- */
- protected $name = 'oa_log';
-
- /**
- * [getDataList 日志统计]
- * @author Michael_xu
- * @param
- * @return
- */
- public function getStatistics($param)
- {
- //时间
- $start_time = $param['start_time'] ? : strtotime(date('Y-m-d',time()));
- $end_time = $param['end_time'] ? : strtotime(date('Y-m-d',time()))+86399;
- $create_time = array('between',array($start_time,$end_time));
-
- $where = ['type' => 1];
- getWhereUserByParam($where, 'id');
-
- $userList = UserModel::where($where)
- ->field(['id','username','realname'])
- ->select();
- foreach ($userList as $k=>$v) {
- $log_list = [];
- $count = 0; //填写数
- $unReadCont = 0; //接收人未读数
- $unCommentCount = 0; //未评论数
- $commentCount = 0; //已评论数
- $log_list = $this->where(['create_time' => $create_time,'create_user_id' => $v['id']])->field('send_user_ids,read_user_ids,log_id')->select();
- $count = count($log_list);
- if ($log_list) {
- //获取评论过的日志id集合
- $w_c['ac.type'] = 'oa_log';
- $log_ids = $this->alias('l')
- ->join('AdminComment ac', 'ac.type_id = l.log_id', 'LEFT')
- ->where($w_c)
- ->group('l.log_id')
- ->column('log_id');
- foreach ($log_list as $key=>$val) {
- if (stringToArray($val['send_user_ids']) && !array_intersect(stringToArray($val['send_user_ids']),stringToArray($val['read_user_ids']))) {
- $unReadCont += 1;
- }
- //判断日志id是否在评论过的id集合内
- if (in_array($val['log_id'], $log_ids) ) {
- $commentCount += 1;
- } else {
- $unCommentCount += 1;
- }
- }
- }
- $userList[$k]['count'] = $count;
- $userList[$k]['unReadCont'] = $unReadCont;
- $userList[$k]['unCommentCount'] = $unCommentCount;
- $userList[$k]['commentCount'] = $commentCount;
- }
- return $userList ? : [];
- }
- }
|