获取问诊订单消息内页基础数据

This commit is contained in:
wucongxing 2023-03-25 17:48:04 +08:00
parent 1befd6a06c
commit 359d9d70b9
6 changed files with 118 additions and 37 deletions

View File

@ -23,16 +23,6 @@ class InquiryController extends AbstractController
*/ */
public function addInquiryOrder(): ResponseInterface 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 = $this->container->get(InquiryRequest::class);
$request->scene('addInquiryOrder')->validateResolved(); $request->scene('addInquiryOrder')->validateResolved();
@ -95,6 +85,15 @@ class InquiryController extends AbstractController
return $this->response->json($data); return $this->response->json($data);
} }
/**
* 获取问诊订单消息内页基础数据
* @return ResponseInterface
*/
public function getInquiryMessageBasic(): ResponseInterface
{
$InquiryService = new InquiryService();
$data = $InquiryService->getInquiryMessageBasic();
return $this->response->json($data);
}
} }

View File

@ -21,4 +21,15 @@ class MessageNoticeController extends AbstractController
$data = $MessageNoticeService->getDoctorMessageService(); $data = $MessageNoticeService->getDoctorMessageService();
return $this->response->json($data); return $this->response->json($data);
} }
/**
* 获取医生系统公告列表-分页
* @return ResponseInterface
*/
public function getDoctorMessageSystem(): ResponseInterface
{
$MessageNoticeService = new MessageNoticeService();
$data = $MessageNoticeService->getDoctorMessageSystem();
return $this->response->json($data);
}
} }

View File

@ -87,23 +87,15 @@ class MessageNotice extends Model
/** /**
* 获取数据-分页 * 获取数据-分页
* @param array $params * @param array $params
* @param array $message_notice_system_params
* @param array $fields * @param array $fields
* @param int|null $page * @param int|null $page
* @param int|null $per_page * @param int|null $per_page
* @return array * @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
{ {
// 获取系统消息 $results = self::where($params)
$message_notice_system = MessageNoticeSystem::select($fields)->where($message_notice_system_params)->orderBy('notice_send_time', 'desc'); ->orderBy('notice_send_time')
$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')
->paginate($per_page, $fields, "page", $page); ->paginate($per_page, $fields, "page", $page);
$data = array(); $data = array();

View File

@ -295,16 +295,16 @@ class InquiryService extends BaseService
$params = array(); $params = array();
$params['user_id'] = $user_info['user_id']; $params['user_id'] = $user_info['user_id'];
$user = User::getOne($params); $user = User::getOne($params);
if (empty($user)){ if (empty($user)) {
return fail(); return fail();
} }
// 获取订单数据 // 获取订单数据
$params = array(); $params = array();
$params['order_inquiry_id'] = $order_inquiry_id; $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']; $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']; $params['doctor_id'] = $user_info['client_user_id'];
} }
$order_inquiry = OrderInquiry::getOne($params); $order_inquiry = OrderInquiry::getOne($params);
@ -421,7 +421,7 @@ class InquiryService extends BaseService
$params = array(); $params = array();
$params['doctor_id'] = $order_inquiry['doctor_id']; $params['doctor_id'] = $order_inquiry['doctor_id'];
$user_doctor = UserDoctor::getOne($params); $user_doctor = UserDoctor::getOne($params);
if (empty($user_doctor)){ if (empty($user_doctor)) {
return fail(HttpEnumCode::SERVER_ERROR); return fail(HttpEnumCode::SERVER_ERROR);
} }
@ -573,6 +573,46 @@ class InquiryService extends BaseService
return success($result); 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 * @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:已取消) // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
throw new BusinessException("订单状态错误"); throw new BusinessException("订单状态错误");
} }
@ -869,22 +909,22 @@ class InquiryService extends BaseService
* @param string $doctor_id * @param string $doctor_id
* @return array * @return array
*/ */
public function checkPatientDoctorProgressInquiry(string $patient_id,string $doctor_id): array public function checkPatientDoctorProgressInquiry(string $patient_id, string $doctor_id): array
{ {
$params = array(); $params = array();
if (!empty($patient_id)){ if (!empty($patient_id)) {
$params[] = ['patient_id','=',$patient_id]; $params[] = ['patient_id', '=', $patient_id];
} }
if (!empty($family_id)){ if (!empty($family_id)) {
$params[] = ['family_id','=',$family_id]; $params[] = ['family_id', '=', $family_id];
} }
$params = array(); $params = array();
$params[] = ['patient_id','=',$patient_id]; $params[] = ['patient_id', '=', $patient_id];
$params[] = ['doctor_id','=',$doctor_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); $order_inquiry = OrderInquiry::getInquiryStatusOne($params, $inquiry_status_params);
if (empty($order_inquiry)) { if (empty($order_inquiry)) {
return []; return [];

View File

@ -27,8 +27,42 @@ class MessageNoticeService extends BaseService
$params['notice_type'] = 1; // 消息类型1:医生服务通知 2:医生系统公告 3:患者系统消息 $params['notice_type'] = 1; // 消息类型1:医生服务通知 2:医生系统公告 3:患者系统消息
$params['send_status'] = 1; $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 = array();
$message_notice_system_params["notice_type"] = 1; $message_notice_system_params["notice_type"] = 2;
$message_notice_system_params["send_status"] = 1; $message_notice_system_params["send_status"] = 1;
$fields = [ $fields = [

View File

@ -584,7 +584,6 @@ Router::addGroup('/address', function () {
Router::delete('/{address_id:\d+}', [UserController::class, 'deleteUserAddress']); Router::delete('/{address_id:\d+}', [UserController::class, 'deleteUserAddress']);
}); });
// 消息通知 // 消息通知
Router::addGroup('/message', function () { Router::addGroup('/message', function () {
// 消息已读 // 消息已读
@ -594,6 +593,12 @@ Router::addGroup('/message', function () {
Router::get('/read', [UserDoctorController::class, 'getDoctorCenterInfo']); Router::get('/read', [UserDoctorController::class, 'getDoctorCenterInfo']);
}); });
// 问诊订单
Router::addGroup('/inquiry', function () {
// 获取问诊订单消息内页基础数据
Router::get('/message/basic/{order_inquiry_id:\d+}', [InquiryController::class, 'getInquiryMessageBasic']);
});
// 未开发接口 // 未开发接口