You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.4 KiB

<?php
/**
* @copyright ©2018 浙江禾匠信息科技
* @author Lu Wei
* @link http://www.zjhejiang.com/
* Created by IntelliJ IDEA
* Date Time: 2018/6/23 17:36
*/
namespace app\modules\api\models;
use app\models\common\CommonFormId;
use app\models\MsOrderRefund;
use app\models\OrderRefund;
use app\models\PtOrderRefund;
class OrderRefundSendForm extends ApiModel
{
public $order_refund_id;
public $user_id;
public $express;
public $express_no;
public $orderType;
public $form_id;
public function rules()
{
return [
[['express', 'express_no', 'orderType', 'form_id'], 'trim'],
[['order_refund_id', 'express', 'express_no'], 'required'],
];
}
public function attributeLabels()
{
return [
'express' => '快递公司',
'express_no' => '快递单号',
];
}
public function save()
{
if (!$this->validate()) {
return $this->getErrorResponse();
}
if ($this->orderType === 'MIAOSHA') {
$query = MsOrderRefund::find();
} else if ($this->orderType === 'PINTUAN') {
$query = PtOrderRefund::find();
} else if ($this->orderType === 'STORE') {
$query = OrderRefund::find();
} else {
return [
'code' => 1,
'msg' => 'orderTYpe属性未定义或值不符合预期'
];
}
$order_refund = $query->where([
'id' => $this->order_refund_id,
'user_id' => $this->user_id,
])->one();
if (!$order_refund) {
return [
'code' => 1,
'msg' => '售后订单不存在。',
];
}
$order_refund->is_user_send = 1;
$order_refund->user_send_express = $this->express;
$order_refund->user_send_express_no = $this->express_no;
if ($order_refund->save()) {
$res = CommonFormId::save([
[
'form_id' => $this->form_id
]
]);
return [
'code' => 0,
'msg' => '发货成功。',
];
} else {
return $this->getErrorResponse($order_refund);
}
}
}