fix: 统一所有 RPC 分页校验为 max=100 并补齐默认值

This commit is contained in:
zetaloop
2026-04-24 06:31:40 +08:00
parent 37faf1c920
commit 809dbf2cac
15 changed files with 85 additions and 16 deletions
@@ -27,8 +27,14 @@ func NewSearchGamesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Searc
func (l *SearchGamesLogic) SearchGames(in *pb.SearchGamesReq) (*pb.SearchGamesResp, error) {
notFoundErr := entcache.ErrNotFound
if in.Offset < 0 || in.Limit <= 0 || in.Limit > 100 {
return nil, errors.New("invalid pagination parameters")
if in.Limit <= 0 {
in.Limit = 20
}
if in.Limit > 100 {
return nil, errors.New("limit too large")
}
if in.Offset < 0 {
in.Offset = 0
}
all, err := l.svcCtx.GameModelRO.Games.Query().Limit(int(in.Limit)).Offset(int(in.Offset)).All(l.ctx)
if err != nil && !errors.As(err, &notFoundErr) {