diff --git a/app/Controller/UserDoctorController.php b/app/Controller/UserDoctorController.php index c79b839..f30ce0c 100644 --- a/app/Controller/UserDoctorController.php +++ b/app/Controller/UserDoctorController.php @@ -352,10 +352,10 @@ class UserDoctorController extends AbstractController public function addDoctorInquiry(): ResponseInterface { $request = $this->container->get(UserDoctorRequest::class); - $request->scene('addPrescription')->validateResolved(); + $request->scene('addDoctorInquiry')->validateResolved(); $UserDoctorService = new UserDoctorService(); - $data = $UserDoctorService->addPrescription(); + $data = $UserDoctorService->addDoctorInquiry(); return $this->response->json($data); } } \ No newline at end of file diff --git a/app/Request/UserDoctorRequest.php b/app/Request/UserDoctorRequest.php index dd8d8c3..ff98603 100644 --- a/app/Request/UserDoctorRequest.php +++ b/app/Request/UserDoctorRequest.php @@ -72,6 +72,9 @@ class UserDoctorRequest extends FormRequest 'getDoctorMessageList' => [ // 获取医生问诊消息列表 'message_inquiry_type',// 消息订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:结束) ], + 'addDoctorInquiry' => [ // 新增医生接诊 + 'order_inquiry_id',// 订单-问诊id + ], ]; /** diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 3d59dbe..0f91100 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1142,6 +1142,8 @@ class UserDoctorService extends BaseService } // 获取问诊订单数据 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; $params['order_inquiry_id'] = $order_inquiry_id; $order_inquiry = OrderInquiry::getOne($params); if (empty($order_inquiry)) { @@ -1400,6 +1402,10 @@ class UserDoctorService extends BaseService return success($result); } + /** + * 获取医生问诊消息用户属性 + * @return array + */ public function getDoctorMessageAttrList(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; @@ -1434,6 +1440,62 @@ class UserDoctorService extends BaseService return success($result); } + /** + * 新增医生接诊 + * @return array + */ + public function addDoctorInquiry(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $order_inquiry_id = $this->request->input('order_inquiry_id'); + + // 获取问诊订单数据 + $params = array(); + $params['doctor_id'] = $user_info['client_user_id']; + $params['order_inquiry_id'] = $order_inquiry_id; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(); + } + + if ($order_inquiry['inquiry_status'] != 3) { + // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) + return fail(HttpEnumCode::HTTP_ERROR, "接诊失败"); + } + + // 订单退款状态 + if (!in_array($order_inquiry['inquiry_refund_status'],[0,4,5])){ + // 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) + return fail(HttpEnumCode::HTTP_ERROR, "订单正在退款,无法接诊"); + } + + // 订单支付状态 + if ($order_inquiry['inquiry_pay_status'] != 2){ + return fail(HttpEnumCode::HTTP_ERROR, "订单未支付,无法接诊"); + } + + Db::beginTransaction(); + + try { + $data = array(); + $data['inquiry_status'] = 4; + + $params = array(); + $params['order_inquiry_id'] = $order_inquiry_id; + OrderInquiry::edit($params,$data); + + // 发送问诊消息 + + Db::commit(); + } catch (\Exception $e) { + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR, $e->getMessage()); + } + + return success(); + } + /** * 检测医生身份认证 * @param object|array $user_doctor 医生表数据