95 lines
3.9 KiB
PHP
Executable File
95 lines
3.9 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\adminapi\validate\tcm;
|
|
|
|
use app\common\validate\BaseValidate;
|
|
|
|
class PrescriptionOrderValidate extends BaseValidate
|
|
{
|
|
protected $rule = [
|
|
'id' => 'require|integer',
|
|
'diagnosis_id' => 'require|integer|gt:0',
|
|
'prescription_id' => 'require|integer',
|
|
'pay_order_ids' => 'array',
|
|
'recipient_name' => 'require|max:50',
|
|
'recipient_phone' => 'require|max:20',
|
|
'shipping_address' => 'require|max:500',
|
|
'is_follow_up' => 'in:0,1',
|
|
'prev_staff' => 'max:100',
|
|
'service_channel' => 'max:100',
|
|
'service_package' => 'max:100',
|
|
'tracking_number' => 'max:80',
|
|
'express_company' => 'max:20',
|
|
'ship_mode' => 'in:gancao,direct',
|
|
'fee_type' => 'require|in:1,2,3,4,5,6,7,8',
|
|
'amount' => 'require|float',
|
|
'order_type' => 'require|in:1,2,3,4,5,6,7,8',
|
|
'pay_amount' => 'require|float|egt:0',
|
|
'pay_remark' => 'max:200',
|
|
'remark_extra' => 'max:500',
|
|
'remark_assistant' => 'max:500',
|
|
'action' => 'require|in:approve,reject',
|
|
'remark' => 'max:500',
|
|
'fulfillment_status' => 'require|integer|in:3,7,8,9,11,12',
|
|
'reason' => 'require|max:500',
|
|
'patient_name' => 'require|max:50',
|
|
'phone' => 'require|max:20',
|
|
'phone_tail' => 'max:20|regex:/^\\d*$/',
|
|
];
|
|
|
|
protected $message = [
|
|
'prescription_id.require' => '请选择处方',
|
|
'diagnosis_id.require' => '请选择诊单',
|
|
'recipient_name.require' => '请输入收货人',
|
|
'recipient_phone.require' => '请输入收货手机',
|
|
'shipping_address.require' => '请输入收货地址',
|
|
'fee_type.require' => '请选择费用类别',
|
|
'amount.require' => '请输入订单金额',
|
|
'action.require' => '请选择审核操作',
|
|
'patient_name.require' => '请输入患者姓名',
|
|
'phone.require' => '请输入手机号',
|
|
'phone_tail.regex' => '手机后四位仅支持数字',
|
|
'reason.require' => '请填写退款原因',
|
|
];
|
|
|
|
protected $scene = [
|
|
'create' => [
|
|
'prescription_id', 'diagnosis_id', 'recipient_name', 'recipient_phone', 'shipping_address',
|
|
'is_follow_up', 'prev_staff', 'service_channel', 'service_package',
|
|
'tracking_number', 'express_company', 'fee_type', 'amount', 'remark_extra', 'remark_assistant', 'pay_order_ids',
|
|
],
|
|
'detail' => ['id'],
|
|
'edit' => [
|
|
'id', 'recipient_name', 'recipient_phone', 'shipping_address',
|
|
'is_follow_up', 'prev_staff', 'service_channel', 'service_package',
|
|
'tracking_number', 'express_company', 'fee_type', 'amount', 'remark_extra', 'remark_assistant', 'pay_order_ids',
|
|
],
|
|
'logisticsTrace' => ['id', 'phone_tail'],
|
|
'auditPrescription' => ['id', 'action', 'remark'],
|
|
'auditPayment' => ['id', 'action', 'remark'],
|
|
'withdraw' => ['id'],
|
|
'ship' => ['id', 'tracking_number', 'express_company', 'ship_mode'],
|
|
'logs' => ['id'],
|
|
'paidPayOrders' => ['diagnosis_id'],
|
|
'addPayOrder' => ['id', 'order_type', 'pay_amount', 'pay_remark'],
|
|
'linkPayOrder' => ['id', 'pay_order_id'],
|
|
'requestCompletion' => ['id'],
|
|
'complete' => ['id', 'fulfillment_status'],
|
|
'refund' => ['id', 'reason'],
|
|
'submitGancaoRecipel' => ['id'],
|
|
'previewGancaoRecipel' => ['id'],
|
|
'patchPrescriptionPatient' => ['id', 'patient_name', 'phone'],
|
|
'updateAmount' => ['id', 'amount'],
|
|
'setShipMode' => ['id', 'ship_mode'],
|
|
];
|
|
|
|
public function updateAmount(): PrescriptionOrderValidate
|
|
{
|
|
return $this->only(['id', 'amount'])
|
|
->append('id', 'require|integer|gt:0')
|
|
->append('amount', 'require|float|gt:0');
|
|
}
|
|
}
|