hospital-applets-api/app/Request/InquiryRequest.php

135 lines
6.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
namespace App\Request;
use App\Constants\HttpEnumCode;
use Hyperf\Validation\Request\FormRequest;
use Hyperf\Validation\Rule;
class InquiryRequest extends FormRequest
{
protected array $scenes = [
'addInquiryOrder' => [ // 创建问诊订单
'patient_id',
'family_id',
'disease_class_id',
'diagnosis_date',
'disease_desc',
'is_allergy_history',// 过敏史
'is_family_history', // 家族病史
'is_pregnant',// 备孕、妊娠、哺乳期
'inquiry_type', // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
'inquiry_mode', // 订单问诊方式1:图文 2:视频 3:语音 4:电话 5:会员)
'client_type', // 客户端类型(1:手机 2电脑)
'is_taboo', // 是否服用过禁忌药物且无相关禁忌0:否 1:是)问诊购药时存在
],
'addInquiryEvaluation' => [ // 新增问诊评价
'doctor_id',
'order_inquiry_id',
'reply_quality',// 回复质量
'service_attitude', // 服务态度
'reply_progress',// 回复速度
'content',
],
'getPatientInquiryOrderList' => [ // 获取患者问诊订单列表
'inquiry_status',// 问诊订单状态0:全部 1:待支付 2:待接诊 3:问诊中 4:完成/取消
'family_id',// 家庭成员id就诊用户
],
'getPatientInquiryCase' => [ // 获取患者问诊病例
'order_inquiry_id',
],
'getPatientLastInquiryId' => [ // 获取患者最后一条问诊订单id
'patient_id',
'doctor_id',
],
'addDoctorGiveInquiryOrder' => [ // 医生赠送沟通回合数
'order_inquiry_id',
'times_number', // 沟通次数0为不限制次数
'duration', // 沟通时长分钟0为不限制时长
],
'addVideoReservationDate' => [ // 医生设置视频预约时间
'order_inquiry_id',
'reservation_time', // 预约时间
],
];
/**
* 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 [
'inquiry_type' => 'required|integer|min:1|max:4',
'inquiry_mode' => 'required|integer|min:1|max:6',
'patient_id' => 'required',
'family_id' => 'required',
'disease_class_id' => 'required',
'diagnosis_date' => ['sometimes','date'],
'disease_desc' => 'required',
'is_allergy_history' => ['sometimes',Rule::in([0,1,null])],
'is_family_history' => ['sometimes',Rule::in([0,1,null])],
'is_pregnant' => ['sometimes',Rule::in([0,1,null])],
'client_type' => 'required|integer|min:1|max:2',
'is_taboo' => ['sometimes',Rule::in([0,1,null])],
'doctor_id' => 'required',
'order_inquiry_id' => 'required',
'reply_quality' => 'required|integer|min:0|max:5',
'service_attitude' => 'required|integer|min:0|max:5',
'reply_progress' => 'required|integer|min:0|max:5',//
'inquiry_status' => 'required|integer|min:0|max:4',
'times_number' => "required|min:0|max:999|numeric",
'duration' => "required|min:0|max:21600|numeric",
'reservation_time' => "required",
];
}
/**
* 获取已定义验证规则的错误消息.
*/
public function messages(): array
{
return [
'inquiry_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_type.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_mode.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_mode.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_mode.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_mode.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'patient_id.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'family_id.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'disease_class_id.required' => "请您选择疾病",
'diagnosis_date.date' => HttpEnumCode::getMessage(HttpEnumCode::DATE_FORMAT_ERROR),
'disease_desc.required' => "请您输入病情主诉",
'is_allergy_history.in' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'is_family_history.in' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'is_pregnant.in' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'client_type.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'client_type.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'client_type.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'client_type.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'is_taboo.in' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_status.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_status.integer' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_status.min' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'inquiry_status.max' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'order_inquiry_id.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
'reservation_time.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
];
}
}