修复 UR#55 代码审查问题:事务隔离、错误包装、重复辅助函数

- resolvePackageTerms 接受 tx 参数并使用事务绑定的 Store,确保快照与写入同库
- auto_purchase.go 错误包装改用 pkgerrors.Wrap 而非标准库 errors
- shop_package_batch_allocation 去除 fmt 依赖改用 strconv 拼接
- shop_series_grant 提取 effectiveBase 局部变量避免重复调用
- 测试辅助函数统一迁移至 testutil.StringPointer,删除各文件本地重复定义
- 新增 testutil.NewRedisClient 和 testutil.StringPointer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 11:09:08 +09:00
parent f7e0f07692
commit 147f3eb775
7 changed files with 29 additions and 22 deletions

View File

@@ -185,6 +185,7 @@ func (s *Service) buildGrantResponse(ctx context.Context, allocation *model.Shop
if pkg.IsGift {
continue
}
effectiveBase := packagepkg.EffectiveExpiryBase(pkg, pa)
packages = append(packages, dto.ShopSeriesGrantPackageItem{
PackageID: pa.PackageID,
PackageName: pkg.PackageName,
@@ -196,8 +197,8 @@ func (s *Service) buildGrantResponse(ctx context.Context, allocation *model.Shop
DefaultExpiryBaseName: packagepkg.ExpiryBaseName(pkg.ExpiryBase),
ExpiryBaseOverride: pa.ExpiryBaseOverride,
ExpiryBaseOverrideName: packagepkg.ExpiryBaseOverrideName(pa.ExpiryBaseOverride),
EffectiveExpiryBase: packagepkg.EffectiveExpiryBase(pkg, pa),
EffectiveExpiryBaseName: packagepkg.ExpiryBaseName(packagepkg.EffectiveExpiryBase(pkg, pa)),
EffectiveExpiryBase: effectiveBase,
EffectiveExpiryBaseName: packagepkg.ExpiryBaseName(effectiveBase),
})
}
resp.Packages = packages