From c1598d9c6ea0463e2064a8c61b7c1da5f69517b8 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Wed, 1 Nov 2023 15:20:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=AE=A1=E6=89=B9=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/MessageIndex.php | 114 ++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/api/controller/MessageIndex.php diff --git a/app/api/controller/MessageIndex.php b/app/api/controller/MessageIndex.php new file mode 100644 index 0000000..f7cbb0f --- /dev/null +++ b/app/api/controller/MessageIndex.php @@ -0,0 +1,114 @@ + ['except' => []] + ]; + + //收件箱 + public function inbox() + { + $param = get_params(); + $this->uid = JWT_UID; + $param['status'] = 1; + $map = []; + if (!empty($param['keywords'])) { + $map[] = ['title', 'like', '%' . $param['keywords'] . '%']; + } + if (!empty($param['read'])) { + if($param['read']==1){ + $map[] = ['read_time', '=', 0]; + }else{ + $map[] = ['read_time', '>', 0]; + } + } + if (!empty($param['template'])) { + if($param['template']==0){ + $map[] = ['template', '=', 0]; + }else{ + $map[] = ['template', '>', 0]; + } + } + $map[] = ['to_uid', '=', $this->uid]; + $map[] = ['status', '=', $param['status']]; + //按时间检索 + $start_time = isset($param['start_time']) ? strtotime(urldecode($param['start_time'])) : 0; + $end_time = isset($param['end_time']) ? strtotime(urldecode($param['end_time'])) : 0; + if ($start_time > 0 && $end_time > 0) { + $map[] = ['send_time', 'between', "$start_time,$end_time"]; + } + $model = new MessageList(); + $list = $model->get_list($param, $map, $this->uid); + $this->apiSuccess('获取成功', $list); + } + + //查看消息 + public function read() + { + $param = get_params(); + $this->uid = JWT_UID; + $id = $param['id'] ?? 0; + $model = new MessageList(); + $detail = $model->detail($id); + if (empty($detail)) { + $this->apiError("消息不存在"); + } + if ($detail['to_uid'] != $this->uid && $detail['from_uid'] != $this->uid) { + $this->apiError("消息不存在"); + } + Db::name('Message')->where(['id' => $id])->update(['read_time' => time()]); + if($detail['from_uid']==0){ + $detail['person_name'] = '系统管理员'; + } + else{ + $sender = get_admin($detail['from_uid']); + $detail['person_name'] = $sender['name']; + } + if($detail['send_time']>0){ + $detail['send_time'] = date('Y-m-d H:i:s',$detail['send_time']); + } + else{ + $detail['send_time'] = '-'; + } + //发送人查询 + $user_names=[]; + //已读回执 + $read_user_names = []; + + if($detail['from_uid'] == $this->uid){ + $mails= MessageList::where(['pid' => $id])->select()->toArray(); + $read_mails= MessageList::where([['pid','=',$id],['read_time','>',2]])->select()->toArray(); + $read_user_ids = array_column($read_mails, 'to_uid'); + $read_users = Db::name('Admin')->where('status', 1)->where('id', 'in', $read_user_ids)->select()->toArray(); + $read_user_names = array_column($read_users, 'name'); + + $user_ids = array_column($mails, 'to_uid'); + $users = Db::name('Admin')->where('status', 1)->where('id', 'in', $user_ids)->select()->toArray(); + $user_names = array_column($users, 'name'); + } + else{ + $users = Db::name('Admin')->where('id', $detail['to_uid'])->value('name'); + array_push($user_names,$users); + } + $detail['users'] = implode(",", $user_names); + $detail['read_users'] = implode(",", $read_user_names); + $this->apiSuccess('查看成功', $detail); + } + +}