'DESC', ]; $where['m.type'] = $this->label($param['label']); if ($param['label'] == 4) { $where['m.type'] = 9; $list = db('admin_message') ->alias('m') ->join('__ADMIN_USER__ user', 'user.id=m.from_user_id', 'LEFT') ->where($where) ->field('m.*,user.realname as user_name') ->page($param['page'], $param['limit']) ->order($order) ->select(); $dataCount = db('admin_message') ->alias('m') ->join('__ADMIN_USER__ user', 'user.id=m.from_user_id', 'LEFT') ->where($where)->count(); } else { $list = db('admin_message') ->alias('m') ->join('__ADMIN_USER__ user', 'user.id=m.from_user_id', 'LEFT') ->where($where) ->field('m.*,user.realname as user_name') ->page($param['page'], $param['limit']) ->order($order) ->select(); $dataCount = db('admin_message') ->alias('m') ->join('__ADMIN_USER__ user', 'user.id=m.from_user_id', 'LEFT') ->where($where)->count(); } //1表示已读 0表示未读 foreach ($list as $k => $v) { if ($v['read_time'] == 0) { $list[$k]['is_read'] = 0; } else { $list[$k]['is_read'] = 1; } $list[$k]['create_time'] = date('Y-m-d H:i:s', $v['send_time']); if ($v['type'] == 4) { $content = db('admin_comment') ->where( ['status' => 1, 'type_id' => $v['action_id'], 'type' => ['like', '%' . $v['controller_name' . '%']], 'user_id' => $v['from_user_id'] ]) ->select(); $list[$k]['content'] = $content[$k]['content']; } elseif (in_array($v['type'], [7,12, 15,25])) { $content = db('admin_examine_record')->where(['types_id' => $v['action_id'], 'types' => ['like', '%' . $v['controller_name'] . '%'], 'check_user_id' => $v['from_user_id']])->field('content')->find(); if ($content['content']) { $list[$k]['content'] = $content['content']; } } if ($v['type'] == 10 && $v['advance_time'] < time()) { $item = db('oa_event_notice')->where('id', $v['action_id'])->find(); if ($item) { $type['value'] = $item['number']; $type['type'] = $item['noticetype']; $list[$k]['content'] = $type; $list[$k]['action_id'] = $item['event_id']; } } elseif($v['type'] == 10 && $v['advance_time'] > time()) { unset($list[$k]); } $time=time(); if (in_array($v['type'], ['17', '18', '19', '20', '27'])) { $error_file_path = db('admin_import_record')->where('id', $v['action_id'])->find(); $week = strtotime("+7 day", $error_file_path['create_time']); if ($time > (int)$week && $error_file_path['error_data_file_path'] != '') { $list[$k]['valid'] = 0; } else { $list[$k]['valid'] = 1; } $list[$k]['error_file_path'] = $error_file_path['error_data_file_path']; } } $data = []; $data['page']['list'] = array_values($list); $data['page']['dataCount'] = $dataCount ?: 0; if ($param['page'] != 1 && ($param['page'] * $param['limit']) >= $dataCount) { $data['page']['firstPage'] = false; $data['page']['lastPage'] = true; } else if ($param['page'] != 1 && (int)($param['page'] * $param['limit']) < $dataCount) { $data['page']['firstPage'] = false; $data['page']['lastPage'] = false; } else if ($param['page'] == 1) { $data['page']['firstPage'] = true; $data['page']['lastPage'] = false; } return $data; } /** * 修改状态变为已读 * @param $param * @return array * @throws \think\Exception * @throws \think\exception\PDOException */ public function endMessage($param) { $where = [ 'to_user_id' => $param['id'], 'message_id' => ['IN', (array)$param['message_id']], 'read_time' => 0, ]; $list = db('admin_message') ->where($where) ->update(['read_time' => time()]); $data = []; $data['list'] = $list; return $data; } /** * 删除 * * @param $messageId * @return array|int|string * @throws \think\Exception * @throws \think\exception\PDOException */ public function delete($param) { $res = db('admin_message')->where(['message_id' => $param['message_id']])->find(); if ($res['to_user_id'] != $param['user_id']) { return resultArray(['error' => '没有权限!']); } return db('admin_message')->where(['message_id' => $param['message_id']])->update(['is_delete' => 2]); } /** * 批量更新 * @param $param * @return array * @throws \think\Exception * @throws \think\exception\PDOException */ public function readAllMessage($param) { $where = [ 'to_user_id' => $param['user_id'], 'read_time' => 0 ]; if ($param['label'] == 4) { $list = db('admin_message') ->where('type', 9) ->where($where) ->update(['read_time' => time()]); } else { $where['type'] = $this->label($param['label']); $list = db('admin_message') ->where($where) ->update(['read_time' => time()]); } $data = []; $data['list'] = $list; return $data; } /** * 批量删除已读 * @param $param * @return array * @throws \think\Exception * @throws \think\exception\PDOException */ public function clear($param) { $where = []; $where = [ 'to_user_id' => $param['user_id'], 'is_delete' => 1, 'read_time' => ['neq', 0], ]; $where['type'] = $this->label($param['label']); $list = db('admin_message') ->where($where) ->update(['is_delete' => 2]); $data = []; $data['list'] = $list; return $data; } public function unreadCount($param) { $userId = $param['user_id']; //types 1表示已读 0表示未读 $where['read_time'] = ['=', 0]; $label = ''; $where['to_user_id'] = ['eq', $userId]; $where['is_delete'] = ['eq', 1]; $where['type'] = $this->label(''); $allCount = db('admin_message')->where($where)->count(); $where['type'] = $this->label(1); $taskCount = db('admin_message')->where($where)->count(); $where['type'] = $this->label(2); $logCount = db('admin_message')->where($where)->count(); $where['type'] = $this->label(3); $jxcCount = db('admin_message')->where($where)->count(); $where['type'] = 9; $announceCount = db('admin_message')->where($where)->count(); $where['type'] = $this->label(5); $eventCount = db('admin_message')->where($where)->where(['advance_time'=>['<', time()],'advance_time'=>['<>',0]])->count(); $where['type'] = $this->label(6); $crmCount = db('admin_message')->where($where)->count(); $data = []; $data['allCount'] = $allCount ?: 0; $data['taskCount'] = $taskCount ?: 0; $data['logCount'] = $logCount ?: 0; $data['examineCount'] = $jxcCount ?: 0; $data['announceCount'] = $announceCount ?: 0; $data['eventCount'] = $eventCount ?: 0; $data['crmCount'] = $crmCount ?: 0; return $data; } }