|
@@ -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) {
|