فهرست منبع

修改赠品自动补充问题

llp 1 هفته پیش
والد
کامیت
e3cc0aed02
1فایلهای تغییر یافته به همراه14 افزوده شده و 0 حذف شده
  1. 14 0
      packages/Longyi/FreeGift/src/Services/GiftItemsGroup.php

+ 14 - 0
packages/Longyi/FreeGift/src/Services/GiftItemsGroup.php

@@ -199,6 +199,20 @@ class GiftItemsGroup
 
 
         // 2) 一组合计送 N 个:按 sortOrder 依次补足,用完名额即止
         // 2) 一组合计送 N 个:按 sortOrder 依次补足,用完名额即止
         foreach (array_keys($this->oneOfCaps) as $ruleId) {
         foreach (array_keys($this->oneOfCaps) as $ruleId) {
+            /*
+             * 组里只要有一个候选被用户手动删过,整组就不再自动补。
+             *
+             * 整组共享 N 个名额,删掉已经加进来的那件后名额会空出来;不拦着的话
+             * 系统会拿组里另一个 SKU 补上 —— 用户视角就是「删了又冒出来一个」。
+             * 删过说明用户明确不想要自动加的东西,改由前端的「领取 / 恢复赠品」
+             * 入口(createAddGift / createRestoreGifts)处理。
+             */
+            foreach ($this->getItemsByRule($ruleId) as $item) {
+                if ($item->isDeleted()) {
+                    continue 2;
+                }
+            }
+
             $remaining = $this->getRemainingForOneOf($ruleId);
             $remaining = $this->getRemainingForOneOf($ruleId);
 
 
             if ($remaining < 1) {
             if ($remaining < 1) {