初始化仓库
This commit is contained in:
67
common/forms/ProductCancelForm.php
Normal file
67
common/forms/ProductCancelForm.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace common\forms;
|
||||
|
||||
use common\core\BaseModel;
|
||||
use common\jobs\ProductOrderSyncPlatformJob;
|
||||
use common\models\ProductOrder;
|
||||
use common\enums\ProductOrderEnum;
|
||||
use common\models\Prescription;
|
||||
use yii\base\Exception;
|
||||
|
||||
class ProductCancelForm extends BaseModel
|
||||
{
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
// 取消未支付订单
|
||||
public function cancel($post,$remark = '主动取消订单')
|
||||
{
|
||||
if (isset($post['user_id']) && $post['user_id'] > 0) {
|
||||
$user_id = $post['user_id'];
|
||||
}else{
|
||||
$user_id = \Yii::$app->user->identity->getId();
|
||||
}
|
||||
|
||||
$productOrder = ProductOrder::find()->where([
|
||||
'user_id' => $user_id,
|
||||
'id' => $post['order_id']
|
||||
])->one();
|
||||
if(!$productOrder || $productOrder->cancel_status){
|
||||
throw new Exception('订单不存在');
|
||||
}
|
||||
if($productOrder->is_pay == 1){
|
||||
throw new Exception('订单无法取消');
|
||||
}
|
||||
if($productOrder->order_type == 1){
|
||||
$prescription = Prescription::findOne(['id' => $productOrder->p_id]);
|
||||
$prescription->cancel_status = 1;
|
||||
$prescription->cancel_time = time();
|
||||
$prescription->cancel_remark = '主动取消订单';
|
||||
$prescription->saveOrFail();
|
||||
}
|
||||
|
||||
$productOrder->status = ProductOrderEnum::CANCEL;
|
||||
$productOrder->cancel_status = 1;
|
||||
$productOrder->cancel_time = time();
|
||||
$productOrder->cancel_remark = $remark;
|
||||
$productOrder->saveOrFail();
|
||||
|
||||
//药品库存回滚
|
||||
$DrugRollBackForm = new DrugRollBackForm();
|
||||
$DrugRollBackForm->rollBack($productOrder->order_type == 1?$productOrder->p_id:$productOrder->id, $productOrder->order_type);
|
||||
|
||||
if($productOrder->is_online){ //平台订单状态同步
|
||||
\Yii::$app->queue->push(new ProductOrderSyncPlatformJob([
|
||||
'orderId' => $productOrder->id,
|
||||
'status' => 2
|
||||
]));
|
||||
}
|
||||
|
||||
return ['取消成功'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user