1
This commit is contained in:
@@ -2,7 +2,10 @@
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Request\MessageNoticeRequest;
|
||||
use App\Services\MessageNoticeService;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
@@ -54,4 +57,31 @@ class MessageNoticeController extends AbstractController
|
||||
$data = $MessageNoticeService->putMessageReadId();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 一键消息已读
|
||||
* @return ResponseInterface
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function putMessageRead(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(MessageNoticeRequest::class);
|
||||
$request->scene('putMessageRead')->validateResolved();
|
||||
|
||||
$MessageNoticeService = new MessageNoticeService();
|
||||
$data = $MessageNoticeService->putMessageRead();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取患者系统消息通知最后一条消息列表
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function getPatientMessageServiceLast(): ResponseInterface
|
||||
{
|
||||
$MessageNoticeService = new MessageNoticeService();
|
||||
$data = $MessageNoticeService->getPatientMessageServiceLast();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace App\Model;
|
||||
|
||||
|
||||
use Hyperf\Database\Model\Builder;
|
||||
use Hyperf\Database\Model\Collection;
|
||||
use Hyperf\Snowflake\Concern\Snowflake;
|
||||
|
||||
@@ -15,6 +16,7 @@ use Hyperf\Snowflake\Concern\Snowflake;
|
||||
* @property int $notice_type 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息)
|
||||
* @property int $notice_system_type 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息)
|
||||
* @property int $read_status 读取状态(0:未读 1:已读)
|
||||
* @property int $inquiry_type 问诊类型(医生端服务通知存在 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
|
||||
* @property string $from_name 发送人姓名
|
||||
* @property string $notice_title 消息标题
|
||||
* @property string $notice_send_time 发送时间
|
||||
@@ -41,7 +43,7 @@ class MessageNotice extends Model
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected array $fillable = ['notice_id', 'user_id', 'user_type', 'notice_type', 'notice_system_type', 'read_status', 'from_name', 'notice_title', 'notice_send_time', 'notice_content', 'send_status', 'send_fail_reason', 'button_type', 'link_type', 'link_params', 'show_type', 'show_params', 'created_at', 'updated_at'];
|
||||
protected array $fillable = ['notice_id', 'user_id', 'user_type', 'notice_type', 'notice_system_type', 'read_status', 'inquiry_type', 'from_name', 'notice_title', 'notice_send_time', 'notice_content', 'send_status', 'send_fail_reason', 'button_type', 'link_type', 'link_params', 'show_type', 'show_params', 'created_at', 'updated_at'];
|
||||
|
||||
protected string $primaryKey = "message_id";
|
||||
|
||||
@@ -121,4 +123,26 @@ class MessageNotice extends Model
|
||||
{
|
||||
return self::where($params)->update($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单条
|
||||
* @param array $params
|
||||
* @param string $order_field
|
||||
* @param array $fields
|
||||
* @return object|null
|
||||
*/
|
||||
public static function getOrderOne(array $params, string $order_field,array $fields = ['*']): object|null
|
||||
{
|
||||
return self::where($params)->orderBy($order_field,'desc')->first($fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数量
|
||||
* @param array $params
|
||||
* @return int
|
||||
*/
|
||||
public static function getCount(array $params): int
|
||||
{
|
||||
return self::where($params)->count();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Request;
|
||||
|
||||
use App\Constants\HttpEnumCode;
|
||||
use Hyperf\Validation\Request\FormRequest;
|
||||
|
||||
class MessageNoticeRequest extends FormRequest
|
||||
{
|
||||
protected array $scenes = [
|
||||
'putMessageRead' => [
|
||||
'notice_type',
|
||||
'notice_system_type',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'notice_type' => 'required|integer|min:1|max:3',
|
||||
'notice_system_type' => 'required|integer|min:0|max:4',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取已定义验证规则的错误消息.
|
||||
*/
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'notice_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_type.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_system_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_system_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_system_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'notice_system_type.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ class MessageNoticeService extends BaseService
|
||||
$fields = [
|
||||
'notice_id',
|
||||
'read_status',
|
||||
'inquiry_type',
|
||||
'from_name',
|
||||
'notice_title',
|
||||
'notice_send_time',
|
||||
@@ -160,4 +161,84 @@ class MessageNoticeService extends BaseService
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 一键消息已读
|
||||
* @return array
|
||||
*/
|
||||
public function putMessageRead(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$notice_type = $this->request->input('notice_type');
|
||||
|
||||
$data = array();
|
||||
$data['read_status'] = 1;
|
||||
|
||||
$params = array();
|
||||
$params['user_id'] = $user_info['user_id'];
|
||||
$params['user_type'] = $user_info['user_type'];
|
||||
$params['notice_type'] = $notice_type;
|
||||
$params['send_status'] = 1;
|
||||
MessageNotice::edit($params,$data);
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取患者系统消息通知最后一条消息列表
|
||||
* @return array
|
||||
*/
|
||||
public function getPatientMessageServiceLast(): array
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$result = array();
|
||||
|
||||
// 服务消息
|
||||
$params = array();
|
||||
$params['user_id'] = $user_info['user_id'];
|
||||
$params['user_id'] = 1;
|
||||
$params['user_type'] = 1;
|
||||
$params['notice_type'] = 3; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息
|
||||
$params['notice_system_type'] = 1; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息)
|
||||
$params['send_status'] = 1;
|
||||
$result['service']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']);
|
||||
$result['service']['count'] = MessageNotice::getCount($params);
|
||||
|
||||
// 福利消息
|
||||
$params = array();
|
||||
$params['user_id'] = $user_info['user_id'];
|
||||
$params['user_id'] = 1;
|
||||
$params['user_type'] = 1;
|
||||
$params['notice_type'] = 3; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息
|
||||
$params['notice_system_type'] = 2; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息)
|
||||
$params['send_status'] = 1;
|
||||
$result['benefit']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']);
|
||||
$result['benefit']['count'] = MessageNotice::getCount($params);
|
||||
|
||||
// 退款消息
|
||||
$params = array();
|
||||
$params['user_id'] = $user_info['user_id'];
|
||||
$params['user_id'] = 1;
|
||||
$params['user_type'] = 1;
|
||||
$params['notice_type'] = 3; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息
|
||||
$params['notice_system_type'] = 3; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息)
|
||||
$params['send_status'] = 1;
|
||||
$result['refund']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']);
|
||||
$result['refund']['count'] = MessageNotice::getCount($params);
|
||||
|
||||
// 物流消息
|
||||
$params = array();
|
||||
$params['user_id'] = $user_info['user_id'];
|
||||
$params['user_id'] = 1;
|
||||
$params['user_type'] = 1;
|
||||
$params['notice_type'] = 3; // 消息类型(1:医生服务通知 2:医生系统公告 3:患者系统消息
|
||||
$params['notice_system_type'] = 4; // 系统消息类型(患者端系统消息存在 1:服务消息 2:福利消息 3:退款消息 4:物流消息)
|
||||
$params['send_status'] = 1;
|
||||
$result['logistics']['info'] = MessageNotice::getOrderOne($params,'notice_send_time',['*']);
|
||||
$result['logistics']['count'] = MessageNotice::getCount($params);
|
||||
|
||||
return success($result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user