ソースを参照

fix(limit-purchase): 删除规则前检查商品关联

- 添加商品规则关联检查逻辑
- 规则删除前验证是否被商品使用
- 若存在关联商品则抛出逻辑异常提示
- 引入 GoodsLimitPurchaseRuleEntity 依赖
- 新增 throw_logic_exception 函数引用
runphp 3 ヶ月 前
コミット
af7fd8cf32
1 ファイル変更6 行追加1 行削除
  1. 6 1
      src/Controller/Admin/RuleController.php

+ 6 - 1
src/Controller/Admin/RuleController.php

@@ -4,10 +4,12 @@ namespace SixShop\LimitPurchase\Controller\Admin;
 
 
 use SixShop\Core\Request;
+use SixShop\LimitPurchase\Entity\GoodsLimitPurchaseRuleEntity;
 use SixShop\LimitPurchase\Entity\LimitPurchaseRuleEntity;
 use think\Response;
 use function SixShop\Core\page_response;
 use function SixShop\Core\success_response;
+use function SixShop\Core\throw_logic_exception;
 
 class RuleController
 {
@@ -44,8 +46,11 @@ class RuleController
         return success_response($limitPurchaseRuleEntity->withEvent(true)->update(data:$data));
     }
 
-    public function delete(int $id, LimitPurchaseRuleEntity $limitPurchaseRuleEntity)
+    public function delete(int $id, LimitPurchaseRuleEntity $limitPurchaseRuleEntity, GoodsLimitPurchaseRuleEntity $goodsLimitPurchaseRuleEntity)
     {
+        if(0 < $goodsLimitPurchaseRuleEntity->where('rule_id', $id)->count()) {
+            throw_logic_exception('此规则下有商品正在使用,请先解除关联');
+        }
         return success_response($limitPurchaseRuleEntity::destroy($id));
     }
 }