diff --git a/app/Controller/InquiryController.php b/app/Controller/InquiryController.php index 2d21913..2e88ba5 100644 --- a/app/Controller/InquiryController.php +++ b/app/Controller/InquiryController.php @@ -23,16 +23,6 @@ class InquiryController extends AbstractController */ public function addInquiryOrder(): ResponseInterface { -// $message = new CancelUnpayOrdersDelayDirectProducer(10000); -// $message->setDelayMs(10000); -// $producer = ApplicationContext::getContainer()->get(Producer::class); -// $producer->produce($message); -// -// $message = new CancelUnpayOrdersDelayDirectProducer(5000); -// $message->setDelayMs(5000); -// $producer = ApplicationContext::getContainer()->get(Producer::class); -// $producer->produce($message); - $request = $this->container->get(InquiryRequest::class); $request->scene('addInquiryOrder')->validateResolved(); @@ -95,6 +85,15 @@ class InquiryController extends AbstractController return $this->response->json($data); } - + /** + * 获取问诊订单消息内页基础数据 + * @return ResponseInterface + */ + public function getInquiryMessageBasic(): ResponseInterface + { + $InquiryService = new InquiryService(); + $data = $InquiryService->getInquiryMessageBasic(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Controller/MessageNoticeController.php b/app/Controller/MessageNoticeController.php index a253ae6..7c4885f 100644 --- a/app/Controller/MessageNoticeController.php +++ b/app/Controller/MessageNoticeController.php @@ -21,4 +21,15 @@ class MessageNoticeController extends AbstractController $data = $MessageNoticeService->getDoctorMessageService(); return $this->response->json($data); } + + /** + * 获取医生系统公告列表-分页 + * @return ResponseInterface + */ + public function getDoctorMessageSystem(): ResponseInterface + { + $MessageNoticeService = new MessageNoticeService(); + $data = $MessageNoticeService->getDoctorMessageSystem(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Model/MessageNotice.php b/app/Model/MessageNotice.php index d76bcc6..0b33abb 100644 --- a/app/Model/MessageNotice.php +++ b/app/Model/MessageNotice.php @@ -87,23 +87,15 @@ class MessageNotice extends Model /** * 获取数据-分页 * @param array $params - * @param array $message_notice_system_params * @param array $fields * @param int|null $page * @param int|null $per_page * @return array */ - public static function getMessageNoticePage(array $params, array $message_notice_system_params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array + public static function getMessageNoticePage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array { - // 获取系统消息 - $message_notice_system = MessageNoticeSystem::select($fields)->where($message_notice_system_params)->orderBy('notice_send_time', 'desc'); - - $notice_system = self::select($fields)->where($params)->orderBy('notice_send_time', 'desc'); - - // 合并查询结果为一个虚拟表 - $query = $message_notice_system->union($notice_system); - - $results = $query->orderBy('notice_send_time', 'desc') + $results = self::where($params) + ->orderBy('notice_send_time') ->paginate($per_page, $fields, "page", $page); $data = array(); diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index 16fb227..f1d7225 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -295,16 +295,16 @@ class InquiryService extends BaseService $params = array(); $params['user_id'] = $user_info['user_id']; $user = User::getOne($params); - if (empty($user)){ + if (empty($user)) { return fail(); } // 获取订单数据 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; - if ($user['user_type'] == 1){ + if ($user['user_type'] == 1) { $params['patient_id'] = $user_info['client_user_id']; - }elseif ($user['user_type'] == 2){ + } elseif ($user['user_type'] == 2) { $params['doctor_id'] = $user_info['client_user_id']; } $order_inquiry = OrderInquiry::getOne($params); @@ -421,7 +421,7 @@ class InquiryService extends BaseService $params = array(); $params['doctor_id'] = $order_inquiry['doctor_id']; $user_doctor = UserDoctor::getOne($params); - if (empty($user_doctor)){ + if (empty($user_doctor)) { return fail(HttpEnumCode::SERVER_ERROR); } @@ -573,6 +573,46 @@ class InquiryService extends BaseService return success($result); } + /** + * 获取问诊订单消息内页基础数据 + * @return array + */ + public function getInquiryMessageBasic(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + $order_inquiry_id = $this->request->route('order_inquiry_id'); + + $params = array(); + $params['order_inquiry_id'] = $order_inquiry_id; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(); + } + + if ($order_inquiry['doctor_id'] != $user_info['client_user_id'] || $order_inquiry['patient_id'] != $user_info['client_user_id']){ + return fail(); + } + + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $user_doctor = UserDoctor::getOne($params); + if (empty($user_doctor)) { + return fail(); + } + + $result = array(); + $result['doctor_user_id'] = $user_doctor['user_id']; + $result['patient_user_id'] = $order_inquiry['user_id']; + $result['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $result['patient_name'] = $order_inquiry['patient_name']; + $result['patient_sex'] = $order_inquiry['patient_sex']; + $result['patient_age'] = $order_inquiry['patient_age']; + $result['inquiry_type'] = $order_inquiry['inquiry_type']; + $result['inquiry_status'] = $order_inquiry['inquiry_status']; + + return success($result); + } + /** * 获取医生未接诊订单数量 * @param string $doctor_id 医生id @@ -685,7 +725,7 @@ class InquiryService extends BaseService } // 检测问诊订单状态 - if (!in_array($order_inquiry['inquiry_status'], [2, 3, 4, 5,7])) { + if (!in_array($order_inquiry['inquiry_status'], [2, 3, 4, 5, 7])) { // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) throw new BusinessException("订单状态错误"); } @@ -869,22 +909,22 @@ class InquiryService extends BaseService * @param string $doctor_id * @return array */ - public function checkPatientDoctorProgressInquiry(string $patient_id,string $doctor_id): array + public function checkPatientDoctorProgressInquiry(string $patient_id, string $doctor_id): array { $params = array(); - if (!empty($patient_id)){ - $params[] = ['patient_id','=',$patient_id]; + if (!empty($patient_id)) { + $params[] = ['patient_id', '=', $patient_id]; } - if (!empty($family_id)){ - $params[] = ['family_id','=',$family_id]; + if (!empty($family_id)) { + $params[] = ['family_id', '=', $family_id]; } $params = array(); - $params[] = ['patient_id','=',$patient_id]; - $params[] = ['doctor_id','=',$doctor_id]; + $params[] = ['patient_id', '=', $patient_id]; + $params[] = ['doctor_id', '=', $doctor_id]; - $inquiry_status_params = [1,3,4];// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) + $inquiry_status_params = [1, 3, 4];// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) $order_inquiry = OrderInquiry::getInquiryStatusOne($params, $inquiry_status_params); if (empty($order_inquiry)) { return []; diff --git a/app/Services/MessageNoticeService.php b/app/Services/MessageNoticeService.php index c26052f..d0c5378 100644 --- a/app/Services/MessageNoticeService.php +++ b/app/Services/MessageNoticeService.php @@ -27,8 +27,42 @@ class MessageNoticeService extends BaseService $params['notice_type'] = 1; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息 $params['send_status'] = 1; + $result = MessageNotice::getMessageNoticePage($params,["*"],$page,$per_page); + if (!empty($result['data'])){ + foreach ($result['data'] as &$item){ + /** + * 处理通知参数(json数据,此字段内容和link_type字段有关联) + * link_type + * 1(无按钮):空 + * 2(我的账户):空 + * 3(联系客服):空 + * 4(问诊消息): + */ + $item['notice_params'] = json_decode($item['notice_params']) ?: []; + } + } + return success($result); + } + + /** + * 获取医生系统公告列表-分页 + * @return array + */ + public function getDoctorMessageSystem(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $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'] = 2; + $params['notice_type'] = 2; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息 + $params['send_status'] = 1; + $message_notice_system_params = array(); - $message_notice_system_params["notice_type"] = 1; + $message_notice_system_params["notice_type"] = 2; $message_notice_system_params["send_status"] = 1; $fields = [ diff --git a/config/routes.php b/config/routes.php index 1980650..c6c71d4 100644 --- a/config/routes.php +++ b/config/routes.php @@ -584,7 +584,6 @@ Router::addGroup('/address', function () { Router::delete('/{address_id:\d+}', [UserController::class, 'deleteUserAddress']); }); - // 消息通知 Router::addGroup('/message', function () { // 消息已读 @@ -594,6 +593,12 @@ Router::addGroup('/message', function () { Router::get('/read', [UserDoctorController::class, 'getDoctorCenterInfo']); }); +// 问诊订单 +Router::addGroup('/inquiry', function () { + // 获取问诊订单消息内页基础数据 + Router::get('/message/basic/{order_inquiry_id:\d+}', [InquiryController::class, 'getInquiryMessageBasic']); +}); + // 未开发接口