From caa92df22e6ee50454c0b4fccbebae842cdbc93c Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Mon, 27 Mar 2023 13:49:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/MessageNoticeController.php | 16 ++++++ app/Request/MessageNoticeRequest.php | 4 +- app/Services/MessageNoticeService.php | 59 ++++++++++++++++++++++ config/routes.php | 3 -- 4 files changed, 78 insertions(+), 4 deletions(-) diff --git a/app/Controller/MessageNoticeController.php b/app/Controller/MessageNoticeController.php index 938074a..3045a91 100644 --- a/app/Controller/MessageNoticeController.php +++ b/app/Controller/MessageNoticeController.php @@ -84,4 +84,20 @@ class MessageNoticeController extends AbstractController $data = $MessageNoticeService->getPatientMessageServiceLast(); return $this->response->json($data); } + + /** + * 获取患者服务、福利、退款、物流消息通知列表-分页 + * @return ResponseInterface + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface + */ + public function getPatientMessageSystem(): ResponseInterface + { + $request = $this->container->get(MessageNoticeRequest::class); + $request->scene('getPatientMessageSystem')->validateResolved(); + + $MessageNoticeService = new MessageNoticeService(); + $data = $MessageNoticeService->getPatientMessageSystem(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Request/MessageNoticeRequest.php b/app/Request/MessageNoticeRequest.php index 2150b45..6c58605 100644 --- a/app/Request/MessageNoticeRequest.php +++ b/app/Request/MessageNoticeRequest.php @@ -12,6 +12,8 @@ class MessageNoticeRequest extends FormRequest protected array $scenes = [ 'putMessageRead' => [ 'notice_type', + ], + 'getPatientMessageSystem' => [ 'notice_system_type', ], ]; @@ -31,7 +33,7 @@ class MessageNoticeRequest extends FormRequest { return [ 'notice_type' => 'required|integer|min:1|max:3', - 'notice_system_type' => 'required|integer|min:0|max:4', + 'notice_system_type' => 'required|integer|min:1|max:4', ]; } diff --git a/app/Services/MessageNoticeService.php b/app/Services/MessageNoticeService.php index 6692317..185131b 100644 --- a/app/Services/MessageNoticeService.php +++ b/app/Services/MessageNoticeService.php @@ -204,6 +204,8 @@ class MessageNoticeService extends BaseService $params['notice_system_type'] = 1; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息) $params['send_status'] = 1; $result['service']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']); + + $params['read_status'] = 0; $result['service']['count'] = MessageNotice::getCount($params); // 福利消息 @@ -215,6 +217,8 @@ class MessageNoticeService extends BaseService $params['notice_system_type'] = 2; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息) $params['send_status'] = 1; $result['benefit']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']); + + $params['read_status'] = 0; $result['benefit']['count'] = MessageNotice::getCount($params); // 退款消息 @@ -226,6 +230,8 @@ class MessageNoticeService extends BaseService $params['notice_system_type'] = 3; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息) $params['send_status'] = 1; $result['refund']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']); + + $params['read_status'] = 0; $result['refund']['count'] = MessageNotice::getCount($params); // 物流消息 @@ -237,8 +243,61 @@ class MessageNoticeService extends BaseService $params['notice_system_type'] = 4; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息) $params['send_status'] = 1; $result['logistics']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']); + + $params['read_status'] = 0; $result['logistics']['count'] = MessageNotice::getCount($params); return success($result); } + + /** + * 获取患者服务、福利、退款、物流消息通知列表-分页 + * @return array + */ + public function getPatientMessageSystem(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $notice_system_type = $this->request->input('notice_system_type'); + $page = $this->request->input('page', 1); + $per_page = $this->request->input('per_page', 10); + + + $params = array(); + $params['user_id'] = $user_info['user_id']; + $params['user_type'] = 1; + $params['notice_type'] = 3; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息 + $params['notice_system_type'] = $notice_system_type; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息) + $params['send_status'] = 1; + + $fields = [ + 'notice_id', + 'read_status', + 'inquiry_type', + 'from_name', + 'notice_title', + 'notice_send_time', + 'notice_content', + 'button_type', + 'link_type', + 'link_params', + 'show_type', + 'show_params', + ]; + + $result = MessageNotice::getMessageNoticePage($params, $fields, $page, $per_page); + if (!empty($result['data'])) { + foreach ($result['data'] as &$item) { + if (!empty($item['link_params'])) { + $item['link_params'] = json_decode($item['link_params']); + } + + if (!empty($item['show_params'])) { + $item['show_params'] = json_decode($item['show_params']); + } + } + } + + return success($result); + } } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index 13d7afe..340a1cb 100644 --- a/config/routes.php +++ b/config/routes.php @@ -400,9 +400,6 @@ Router::addGroup('/patient', function () { // 获取患者服务、福利、退款、物流消息通知列表-分页 Router::get('/system', [MessageNoticeController::class, 'getPatientMessageSystem']); - - // 获取患者系统通知消息详情 - Router::get('/system/{notice_id:\d+}', [MessageNoticeController::class, 'getPatientMessageSystemInfo']); }); });