|
|
@@ -10,6 +10,7 @@ use common\helpers\user\Cash;
|
|
|
use common\helpers\user\Info;
|
|
|
use common\libs\logging\operate\AdminOperate;
|
|
|
use common\models\DealType;
|
|
|
+use common\models\DecOrder;
|
|
|
use common\models\Order;
|
|
|
use common\models\OrderGoods;
|
|
|
use common\models\Period;
|
|
|
@@ -75,38 +76,20 @@ class OrderDeleteForm extends Model
|
|
|
return array_merge($parentScenarios, $customScenarios);
|
|
|
}
|
|
|
|
|
|
- // /**
|
|
|
- // * 校验之前
|
|
|
- // * @return bool
|
|
|
- // */
|
|
|
- // public function beforeValidate()
|
|
|
- // {
|
|
|
- // $parentValidate = parent::beforeValidate();
|
|
|
- // if ($this->sn) {
|
|
|
- // $this->_model = Order::findOne(['SN'=>$this->sn]);
|
|
|
- // if (!$this->_model){
|
|
|
- // $this->addError('sn', '订单不存在');
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // if ($this->scenario == 'adminDelivery'){
|
|
|
- // if($this->_model['STATUS'] == \Yii::$app->params['orderStatus']['cancel']) {
|
|
|
- // $this->addError('sn', '订单已取消不能发货');
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // if($this->_model['STATUS'] == \Yii::$app->params['orderStatus']['del']) {
|
|
|
- // $this->addError('sn', '订单已删除不能发货');
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- // return $parentValidate;
|
|
|
- // }
|
|
|
-
|
|
|
public function returnOrder() {
|
|
|
if(!$this->validate()){
|
|
|
return null;
|
|
|
}
|
|
|
+ $sn = $this->orderSn;
|
|
|
+ // 获取订单详情
|
|
|
+ $orderInfo = Order::findUseDbCalc()
|
|
|
+ ->select('ID,DEC_SN,USER_ID,ORDER_TYPE,IS_DELETE')
|
|
|
+ ->where("SN=:SN", [':SN' => $sn])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ // 如果是注册订单,则删除订单并退还金额,然后再冻结用户
|
|
|
+
|
|
|
+ // 如果是复消单,则删除订单并退还金额
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -126,9 +109,78 @@ class OrderDeleteForm extends Model
|
|
|
|
|
|
// 判断订单类型
|
|
|
public function checkOrderType($attribute) {
|
|
|
-
|
|
|
- $this->addError($attribute, $this->orderSn);
|
|
|
+ $sn = $this->orderSn;
|
|
|
+ $orderDetail = Order::findUseDbCalc()
|
|
|
+ ->select('ID,DEC_SN,USER_ID,ORDER_TYPE,IS_DELETE')
|
|
|
+ ->where("SN=:SN", [':SN' => $sn])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ if (empty($orderDetail)) {
|
|
|
+ $this->addError($attribute, '未找到订单信息,订单编号为:'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if ($orderDetail['IS_DELETE'] == 1) {
|
|
|
+ $this->addError($attribute, '订单已被删除,订单编号为'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ // 已挂网或者挂网中的业绩期订单,不能进行删除操作
|
|
|
+ $periodNum = $orderDetail['PERIOD_NUM'];
|
|
|
+ $periodObj = Period::findOneAsArray(['PERIOD_NUM'=>$periodNum]);
|
|
|
+ if (empty($periodObj)) {
|
|
|
+ $this->addError($attribute, '订单对应业绩期不存在,订单编号为'.$this->orderSn.' 业绩期为:'.$periodNum);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if ($periodObj['IS_SENT'] == 1) {
|
|
|
+ $this->addError($attribute, '订单对应业绩期已挂网,订单编号为'.$this->orderSn.' 业绩期为:'.$periodNum);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if ($periodObj['IS_SENDING'] == 1) {
|
|
|
+ $this->addError($attribute, '订单对应业绩期正在挂网,订单编号为'.$this->orderSn.' 业绩期为:'.$periodNum);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($orderDetail['ORDER_TYPE'] == 'ZC') {
|
|
|
+ $decDetail = DecOrder::findUseDbCalc()
|
|
|
+ ->select('TO_USER_ID,DETAIL_TYPE,UPGRADE_TYPE,IS_DEL')
|
|
|
+ ->where("ORDER_SN=:ORDER_SN", [':ORDER_SN' => $sn])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ if (empty($decDetail)) {
|
|
|
+ $this->addError($attribute, '未获取到对应报单信息,订单编号为:'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ if ($decDetail['IS_DEL'] == 1) {
|
|
|
+ $this->addError($attribute, '对应报单信息已被删除,订单编号为:'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ // 如果是注册订单,则判断是否是升级单,如果是升级单,则不能进行删除
|
|
|
+ if ($decDetail['DETAIL_TYPE'] == 2) {
|
|
|
+ $this->addError($attribute, '升级单无法删除,订单编号为:'.$this->orderSn);
|
|
|
return ;
|
|
|
+ } else {
|
|
|
+ // 如果是注册单,但是这个用户存在升级单,则也不能进行删除
|
|
|
+ $hasUpgradeOrder = DecOrder::findUseDbCalc()
|
|
|
+ ->select('TO_USER_ID,DETAIL_TYPE,UPGRADE_TYPE,IS_DEL')
|
|
|
+ ->where("TO_USER_ID=:TO_USER_ID AND IS_DEL=0 AND DETAIL_TYPE=2", [':TO_USER_ID' => $decDetail['TO_USER_ID']])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ if (!empty($hasUpgradeOrder)) {
|
|
|
+ $this->addError($attribute, '此注册报单用户,存在升级单,无法删除,订单编号为:'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ // 删除注册单,判断是否有复消单,如果存在复消单,需要先删除复消单
|
|
|
+ $hasFxOrder = Order::findUseDbCalc()
|
|
|
+ ->select('SN')
|
|
|
+ ->where("USER_ID=:USER_ID AND IS_DELETE=0 AND ORDER_TYPE='FX'", [':USER_ID' => $decDetail['TO_USER_ID']])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ if (!empty($hasFxOrder)) {
|
|
|
+ $this->addError($attribute, '此注册报单用户,存在复消单,无法删除,订单编号为:'.$this->orderSn);
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|