diff --git a/app/Controller/TestController.php b/app/Controller/TestController.php index 9cf507b..ed7c793 100644 --- a/app/Controller/TestController.php +++ b/app/Controller/TestController.php @@ -433,6 +433,18 @@ class TestController extends AbstractController } public function test_10(){ + $a = [ + [ + "start_time"=>"0110", + "end_time"=>"2400", + ] + ]; + + foreach ($a as $item){ + dump(); + + } + } } \ No newline at end of file diff --git a/app/Controller/UserDoctorController.php b/app/Controller/UserDoctorController.php index cb14969..839b593 100644 --- a/app/Controller/UserDoctorController.php +++ b/app/Controller/UserDoctorController.php @@ -366,4 +366,15 @@ class UserDoctorController extends AbstractController $data = $UserDoctorService->addDoctorInquiry(); return $this->response->json($data); } + + /** + * 结束问诊 + * @return ResponseInterface + */ + public function putDoctorFinishInquiry(): ResponseInterface + { + $UserDoctorService = new UserDoctorService(); + $data = $UserDoctorService->putDoctorFinishInquiry(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Services/SystemService.php b/app/Services/SystemService.php index 050c6f2..26d1e40 100644 --- a/app/Services/SystemService.php +++ b/app/Services/SystemService.php @@ -49,7 +49,23 @@ class SystemService extends BaseService $time = []; foreach ($system_inquiry_time as $item){ - $time[] = $item['start_time'] . '-' . $item['end_time']; + $start_hour = substr($item['start_time'], 0, 1); + if ($start_hour == '0') { + $start_hour = substr($item['start_time'], 1, 1); + } + $start_minute = substr($item['start_time'], 2, 2); + + $start_time = $start_hour . ":" . $start_minute; + + $end_hour = substr($item['end_time'], 0, 1); + if ($end_hour == '0') { + $end_hour = substr($item['end_time'], 1, 1); + } + $end_minute = substr($item['end_time'], 2, 2); + + $end_time = $end_hour . ":" . $end_minute; + + $time[] = $start_time . '-' . $end_time; } $result = []; diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 1e264ca..498a3f2 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1533,6 +1533,61 @@ class UserDoctorService extends BaseService return success(); } + /** + * 结束问诊 + * @return array + */ + public function putDoctorFinishInquiry(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $order_inquiry_id = $this->request->route('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(HttpEnumCode::HTTP_ERROR, "非法订单"); + } + + if ($order_inquiry['inquiry_status'] != 4) { + // 问诊订单状态(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'] = 5;// 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) + $data['complete_time'] = date('Y-m-d H:i:s',time());// 订单完成时间(问诊完成时间) + + $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 医生表数据 diff --git a/config/routes.php b/config/routes.php index 9875733..48d9617 100644 --- a/config/routes.php +++ b/config/routes.php @@ -84,8 +84,11 @@ Router::addGroup('/doctor', function () { // 获取医生问诊消息用户属性 Router::post('/message/attr', [UserDoctorController::class, 'getDoctorMessageAttrList']); - // 新增医生接诊 + // 医生接诊 Router::post('/{order_inquiry_id:\d+}', [UserDoctorController::class, 'addDoctorInquiry']); + + // 结束问诊 + Router::put('/finish/{order_inquiry_id:\d+}', [UserDoctorController::class, 'putDoctorFinishInquiry']); }); //银行卡