fix: 店铺分配覆盖为实名即生效的套餐纳入沉默期配置口径
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m27s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m27s
存量中套餐本身购买即生效、店铺分配覆盖为实名即生效的正式套餐,购买后同样等实名, 但原口径只看套餐本身:无法配置默认沉默期、不进未配置清单与打开前检查, 待实名记录无法回填导致总开关打不开,新购买也绕过沉默期。 - 未配置清单与打开前检查纳入存在实名即生效分配覆盖的套餐 - 购买即生效正式套餐允许选填默认沉默期,加油包仍禁止 - 分配覆盖购买即生效 → 实名即生效在套餐已配置默认沉默期时放行 - 同步 OpenSpec design D11、spec、tasks 3.4/3.5 与前端说明 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -154,7 +154,10 @@ func (s *PackageStore) CountBySeriesID(ctx context.Context, seriesID uint) (int6
|
||||
}
|
||||
|
||||
// SilenceUnconfiguredPackageCondition 返回"未配置默认沉默期的实名即生效正式套餐"的条件(总开关打开前检查与补齐清单共用)。
|
||||
// 实名即生效包含套餐本身 from_activation,以及存在未删除的店铺分配覆盖为 from_activation 的套餐(design D11)。
|
||||
func SilenceUnconfiguredPackageCondition(alias string) string {
|
||||
return alias + ".package_type <> '" + constants.PackageTypeAddon + "' AND " + alias + ".expiry_base = '" +
|
||||
constants.PackageExpiryBaseFromActivation + "' AND " + alias + ".silence_period_days IS NULL"
|
||||
return alias + ".package_type <> '" + constants.PackageTypeAddon + "' AND " + alias + ".silence_period_days IS NULL AND (" +
|
||||
alias + ".expiry_base = '" + constants.PackageExpiryBaseFromActivation + "' OR EXISTS (" +
|
||||
"SELECT 1 FROM tb_shop_package_allocation AS silence_alloc WHERE silence_alloc.package_id = " + alias + ".id" +
|
||||
" AND silence_alloc.deleted_at IS NULL AND silence_alloc.expiry_base_override = '" + constants.PackageExpiryBaseFromActivation + "'))"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user