fix: 修复代理用户能看到未分配套餐系列的问题
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

问题:代理用户登录后能看到所有套餐系列,即使没有分配给该店铺

原因:PackageSeries 模型没有 shop_id 字段,GORM Callback 无法自动过滤

修复:
- 在 package_series Service 的 List 方法中添加权限过滤
- 代理用户只能看到通过 shop_series_allocation 分配给自己店铺的系列
- 平台用户/超级管理员可以看到所有套餐系列

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 14:54:52 +08:00
parent c1eec5d4f1
commit 1382cbbf47
3 changed files with 39 additions and 4 deletions

View File

@@ -72,6 +72,10 @@ func (s *PackageSeriesStore) List(ctx context.Context, opts *store.QueryOptions,
if enableOneTime, ok := filters["enable_one_time_commission"].(bool); ok {
query = query.Where("enable_one_time_commission = ?", enableOneTime)
}
// 支持按系列 ID 列表过滤(用于代理用户只能看到分配给自己店铺的套餐系列)
if seriesIDs, ok := filters["series_ids"].([]uint); ok && len(seriesIDs) > 0 {
query = query.Where("id IN ?", seriesIDs)
}
if err := query.Count(&total).Error; err != nil {
return nil, 0, err