root hace 3 años
padre
commit
66fbce1f2e
Se han modificado 1 ficheros con 12 adiciones y 3 borrados
  1. 12 3
      common/models/forms/OrderDeleteForm.php

+ 12 - 3
common/models/forms/OrderDeleteForm.php

@@ -275,10 +275,19 @@ class OrderDeleteForm extends Model
                 $this->addError($attribute, '对应报单信息已被删除,订单编号为:'.$this->orderSn);
                 return ;
             }
-            // 如果是注册订单,则判断是否是升级单,如果是升级单,则不能进行删除
             if ($decDetail['DETAIL_TYPE'] == 2) {
-                $this->addError($attribute, '升级单无法删除,订单编号为:'.$this->orderSn);
-                return ;
+                // 如果删除升级单,则此升级单必须是用户的最后一个升级单
+                $lastUpgradeOrder = DecOrder::findUseDbCalc()
+                ->select('ORDER_SN')
+                ->where("TO_USER_ID=:TO_USER_ID AND IS_DEL=0 AND DETAIL_TYPE=2", [':TO_USER_ID' => $decDetail['TO_USER_ID']])
+                ->orderBy('CREATED_AT DESC')
+                ->asArray()
+                ->one();
+                $lastUpgradeSn = $lastUpgradeOrder['ORDER_SN'];
+                if ($sn != $lastUpgradeSn) {
+                    $this->addError($attribute, '有更晚的订单,此订单不能删除,订单编号为:'.$this->orderSn);
+                    return ;
+                }
             } else {
                 // 如果是注册单,但是这个用户存在升级单,则也不能进行删除
                 $hasUpgradeOrder = DecOrder::findUseDbCalc()