|
@@ -33,7 +33,7 @@ class Order extends Validate
|
|
|
|
|
|
// 订单操作相关
|
|
// 订单操作相关
|
|
'order_sn' => 'require|alphaNum',
|
|
'order_sn' => 'require|alphaNum',
|
|
- 'orderId' => 'require|integer|gt:0',
|
|
|
|
|
|
+ 'order_id' => 'require|integer|gt:0',
|
|
'pay_type' => 'require|in:alipay,wechat,unionpay,balance',
|
|
'pay_type' => 'require|in:alipay,wechat,unionpay,balance',
|
|
'method' => 'require|in:web,wap,app,miniapp,mp,mini',
|
|
'method' => 'require|in:web,wap,app,miniapp,mp,mini',
|
|
|
|
|
|
@@ -50,6 +50,11 @@ class Order extends Validate
|
|
'type' => 'require|in:day,month,year',
|
|
'type' => 'require|in:day,month,year',
|
|
'date' => 'require|date',
|
|
'date' => 'require|date',
|
|
'days' => 'integer|between:1,365',
|
|
'days' => 'integer|between:1,365',
|
|
|
|
+
|
|
|
|
+ // 发货相关
|
|
|
|
+ 'express_name' => 'require|max:50',
|
|
|
|
+ 'express_no' => 'require|alphaNum|max:50',
|
|
|
|
+ 'express_image' => 'require|array|max:9|checkExpressImages',
|
|
];
|
|
];
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -86,9 +91,9 @@ class Order extends Validate
|
|
// 订单操作相关
|
|
// 订单操作相关
|
|
'order_sn.require' => '订单号不能为空',
|
|
'order_sn.require' => '订单号不能为空',
|
|
'order_sn.alphaNum' => '订单号格式错误',
|
|
'order_sn.alphaNum' => '订单号格式错误',
|
|
- 'orderId.require' => '订单ID不能为空',
|
|
|
|
- 'orderId.integer' => '订单ID必须是整数',
|
|
|
|
- 'orderId.gt' => '订单ID必须大于0',
|
|
|
|
|
|
+ 'order_id.require' => '订单ID不能为空',
|
|
|
|
+ 'order_id.integer' => '订单ID必须是整数',
|
|
|
|
+ 'order_id.gt' => '订单ID必须大于0',
|
|
'pay_type.require' => '支付方式不能为空',
|
|
'pay_type.require' => '支付方式不能为空',
|
|
'pay_type.in' => '支付方式不支持',
|
|
'pay_type.in' => '支付方式不支持',
|
|
'method.require' => '支付方法不能为空',
|
|
'method.require' => '支付方法不能为空',
|
|
@@ -110,6 +115,16 @@ class Order extends Validate
|
|
'date.date' => '统计日期格式错误',
|
|
'date.date' => '统计日期格式错误',
|
|
'days.integer' => '天数必须是整数',
|
|
'days.integer' => '天数必须是整数',
|
|
'days.between' => '天数必须在1-365之间',
|
|
'days.between' => '天数必须在1-365之间',
|
|
|
|
+
|
|
|
|
+ // 发货相关提示
|
|
|
|
+ 'express_name.require' => '快递公司不能为空',
|
|
|
|
+ 'express_name.max' => '快递公司名称不能超过50个字符',
|
|
|
|
+ 'express_no.require' => '快递单号不能为空',
|
|
|
|
+ 'express_no.alphaNum' => '快递单号只能包含字母和数字',
|
|
|
|
+ 'express_no.max' => '快递单号不能超过50个字符',
|
|
|
|
+ 'express_image.require' => '快递图片不能为空',
|
|
|
|
+ 'express_image.array' => '快递图片必须是数组格式',
|
|
|
|
+ 'express_image.max' => '快递图片最多上传9张',
|
|
];
|
|
];
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -132,6 +147,9 @@ class Order extends Validate
|
|
// 统计相关场景
|
|
// 统计相关场景
|
|
'statistics' => ['type', 'date'],
|
|
'statistics' => ['type', 'date'],
|
|
'trend' => ['type', 'days'],
|
|
'trend' => ['type', 'days'],
|
|
|
|
+
|
|
|
|
+ // 发货相关场景
|
|
|
|
+ 'send' => ['order_id', 'express_name', 'express_no', 'express_image'],
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
@@ -313,4 +331,40 @@ class Order extends Validate
|
|
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 自定义验证规则:验证快递图片数组
|
|
|
|
+ * @param $value
|
|
|
|
+ * @param $rule
|
|
|
|
+ * @param $data
|
|
|
|
+ * @return bool|string
|
|
|
|
+ */
|
|
|
|
+ protected function checkExpressImages($value, $rule, $data)
|
|
|
|
+ {
|
|
|
|
+ if (!is_array($value)) {
|
|
|
|
+ return '快递图片必须是数组格式';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (empty($value)) {
|
|
|
|
+ return '快递图片不能为空';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (count($value) > 9) {
|
|
|
|
+ return '快递图片最多上传9张';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 验证每个图片URL格式
|
|
|
|
+ foreach ($value as $index => $image) {
|
|
|
|
+ if (!is_string($image) || empty($image)) {
|
|
|
|
+ return "第" . ($index + 1) . "张图片URL不能为空";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 验证图片URL格式(可以是相对路径或完整URL)
|
|
|
|
+ if (!preg_match('/\.(jpg|jpeg|png|gif|bmp|webp)$/i', $image)) {
|
|
|
|
+ return "第" . ($index + 1) . "张图片格式不正确,支持jpg、jpeg、png、gif、bmp、webp格式";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
}
|
|
}
|