新增消息通知接口

This commit is contained in:
wucongxing 2023-03-27 13:49:12 +08:00
parent d2825476d5
commit caa92df22e
4 changed files with 78 additions and 4 deletions

View File

@ -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);
}
}

View File

@ -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',
];
}

View File

@ -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);
}
}

View File

@ -400,9 +400,6 @@ Router::addGroup('/patient', function () {
// 获取患者服务、福利、退款、物流消息通知列表-分页
Router::get('/system', [MessageNoticeController::class, 'getPatientMessageSystem']);
// 获取患者系统通知消息详情
Router::get('/system/{notice_id:\d+}', [MessageNoticeController::class, 'getPatientMessageSystemInfo']);
});
});