make(StoreServiceRecordServices::class); $service_num = $servicesRecord->sum(['user_id' => $uid], 'mssage_num'); $num = bcadd((string)$num, (string)$service_num, 0); } if (in_array(1, $type)) {//站内信 $system = $this->dao->count(['uid' => $uid, 'look' => 0, 'is_del' => 0]); $num = bcadd((string)$num, (string)$system, 0); } return (int)$num; } /** * 站内信列表 * @param $uid * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function getMessageSystemList($uid) { [$page, $limit] = $this->getPageValue(); $where['is_del'] = 0; $where['uid'] = $uid; $list = $this->dao->getMessageList($where, '*', $page, $limit); $count = $this->dao->getCount($where); if (!$list) { return ['list' => [], 'count' => 0]; } $ids = []; foreach ($list as &$item) { if (!$item['look']) {//没查看 $ids[] = $item['id']; } $item['add_time'] = time_tran($item['add_time']); } $message = $this->dao->count(['uid' => $uid, 'look' => 0, 'is_del' => 0]); if ($ids) { $this->dao->batchUpdate($ids, ['look' => 1], 'id'); } return ['list' => $list, 'count' => $count, 'service_num' => $message]; } /** * 获取站内信详情 * @param array $where 查询条件 * @return array * @throws ValidateException */ public function getInfo($where) { $info = $this->dao->getOne($where); if (!$info || $info['is_del'] == 1) { throw new ValidateException('数据不存在'); } $info = $info->toArray(); if ($info['look'] == 0) { $this->update($info['id'], ['look' => 1]); } $info['add_time'] = time_tran($info['add_time']); return $info; } /** * 站内信发放 * @param int $uid * @param array $noticeInfo * @return \crmeb\basic\BaseModel|\think\Model */ public function systemSend(int $uid, array $noticeInfo) { $data = []; $data['mark'] = $noticeInfo['mark']; $data['uid'] = $uid; $data['title'] = $noticeInfo['title']; $data['content'] = $noticeInfo['content']; $data['type'] = 1; $data['add_time'] = time(); return $this->dao->save($data); } }