| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace hd\models\delivery;
- use bizHd\express\classes\HdDeliveryOrderClass;
- use hd\models\BaseForm;
- use Yii;
- /**
- * 取消配送订单表单模型
- * 用于 actionCancelOrder 的参数验证
- */
- class CancelOrderForm extends BaseForm
- {
- public $hdOrderId; // 零售订单ID (必需)
- public $orderId; // 第三方平台订单ID (可选)
- public $platform; // 配送平台 (可选)
- public $order_cancel_code; // 订单取消原因代码 (用于蜂鸟平台)
- public $order_cancel_reason; // 订单取消原因(20字以内)
- public function rules()
- {
- return [
- ['hdOrderId', 'required'],
- ['hdOrderId', 'integer'],
- ['hdOrderId', 'validateHdOrderId'],
- ['orderId', 'string'],
- ['platform', 'string'],
- ['order_cancel_code', 'string'],
- ['order_cancel_reason', 'required'],
- ['order_cancel_reason', 'string', 'max' => 20],
- ];
- }
- public function attributeLabels()
- {
- return [
- 'hdOrderId' => '零售订单ID',
- 'orderId' => '平台订单ID',
- 'platform' => '配送平台',
- 'order_cancel_code' => '取消原因代码',
- 'order_cancel_reason' => '取消原因',
- ];
- }
- /**
- * 验证批发订单ID
- * @param $attribute
- */
- public function validateHdOrderId($attribute)
- {
- if (!$this->hasErrors()) {
- // 检查配送订单是否存在
- $gdo = HdDeliveryOrderClass::getByCondition(
- ['mainId' => Yii::$app->controller->mainId, 'hdOrderId' => $this->hdOrderId, 'orderStatus!=' => -1],
- false,
- 'orderId, deliveryId'
- );
-
- if (empty($gdo)) {
- $this->addError($attribute, '未找到对应的配送订单');
- }
- }
- }
- }
|