소스 검색

update 统一分页参数校验

Alvin 8 달 전
부모
커밋
2f0c27f65b

+ 1 - 8
game/game_cluster/nodes/webadmin/service/admin.go

@@ -333,14 +333,7 @@ func (a *Admin) UpdateStatus(ctx context.Context, username string, status int) *
 // FindAll 查找所有管理员信息
 func (a *Admin) FindAll(ctx context.Context, req entity.AdminFindAllReq) (*entity.AdminListResp, *code.Result) {
 	// 验证参数
-	page := req.Page
-	if req.Page <= 0 {
-		page = 1
-	}
-	pageSize := req.Size
-	if req.Size <= 0 {
-		pageSize = 10
-	}
+	page, pageSize := checkPageParam(req.Page, req.Size)
 
 	// 构建查询条件
 	filter := bson.M{}

+ 20 - 0
game/game_cluster/nodes/webadmin/service/common.go

@@ -0,0 +1,20 @@
+package service
+
+func checkPageParam(page, pageSize int) (int, int) {
+	retPage := 0
+	retPageSize := 0
+
+	if page <= 0 {
+		retPage = 1
+	} else {
+		retPage = page
+	}
+
+	if pageSize <= 0 {
+		retPageSize = 20
+	} else {
+		retPageSize = pageSize
+	}
+
+	return retPage, retPageSize
+}

+ 5 - 10
game/game_cluster/nodes/webadmin/service/role.go

@@ -41,12 +41,10 @@ func (r *Role) List(ctx context.Context, req entity.RoleListReq) (*entity.RoleRe
 		filter["status"] = req.Status
 	}
 	// 数据验证
-	if req.Page <= 0 || req.Size <= 0 {
-		mhayaLogger.Warnf("List param error, req.Page:%d, req.Size:%d", req.Page, req.Size)
-		return nil, common.NewResult(code.ParamError)
-	}
+	page, pageSize := checkPageParam(req.Page, req.Size)
+
 	// 设置分页选项
-	findOptions := options.Find().SetSkip(int64((req.Page - 1) * req.Size)).SetLimit(int64(req.Size))
+	findOptions := options.Find().SetSkip(int64((page - 1) * req.Size)).SetLimit(int64(pageSize))
 	countDocuments, err := rolesCollection.CountDocuments(ctx, filter)
 	if err != nil {
 		mhayaLogger.Warnf("List CountDocuments error:%v", err)
@@ -481,13 +479,10 @@ func (r *Role) ListAccess(ctx context.Context, req entity.AccessListReq) (*entit
 		filter["url"] = req.URL
 	}
 	// 数据验证
-	if req.Page <= 0 || req.Size <= 0 {
-		mhayaLogger.Warnf("ListAccess param error, req.Page:%d, req.Size:%d", req.Page, req.Size)
-		return nil, common.NewResult(code.ParamError)
-	}
+	page, pageSize := checkPageParam(req.Page, req.Size)
 
 	// 设置分页选项
-	findOptions := options.Find().SetSkip(int64((req.Page - 1) * req.Size)).SetLimit(int64(req.Size))
+	findOptions := options.Find().SetSkip(int64((page - 1) * req.Size)).SetLimit(int64(pageSize))
 	findOptions.SetSort(bson.M{"add_time": -1})
 	countDocuments, err := collection.CountDocuments(ctx, filter)
 	if err != nil {

+ 17 - 19
game/game_cluster/nodes/webadmin/service/synthesis.go

@@ -33,15 +33,7 @@ func NewSynthesis() *Synthesis {
 
 // 统计用户相关信息
 func (s *Synthesis) UserList(req entity.UserListReq) (*entity.UserListResp, *code.Result) {
-	// 验证参数
-	page := req.Page
-	if req.Page <= 0 {
-		page = 1
-	}
-	pageSize := req.Size
-	if req.Size <= 0 {
-		pageSize = 10
-	}
+	page, pageSize := checkPageParam(req.Page, req.Size)
 
 	// 构建查询条件
 	filter := bson.M{}
@@ -58,7 +50,11 @@ func (s *Synthesis) UserList(req entity.UserListReq) (*entity.UserListResp, *cod
 	findOptions.SetLimit(int64(pageSize))
 	findOptions.SetSort(bson.D{{"createTime", -1}})
 
+	ctx, cancel := context.WithTimeout(context.Background(), 100*time.Second)
+	defer cancel()
+
 	collection := mdb.MDB.Collection(constant.CNamePlayer)
+
 	// 获取总数total
 	count, err := collection.CountDocuments(ctx, filter)
 	if err != nil {
@@ -69,8 +65,6 @@ func (s *Synthesis) UserList(req entity.UserListReq) (*entity.UserListResp, *cod
 	// TODO UserList 统计用户相关信息
 	// 查询数据
 	var results []*entity.UserListDetail
-	ctx, cancel := context.WithTimeout(context.Background(), 100*time.Second)
-	defer cancel()
 	cursor, err := collection.Find(ctx, filter, findOptions)
 	if err != nil {
 		mhayaLogger.Warnf("UserList Find error:%v", err)
@@ -100,6 +94,8 @@ func (s *Synthesis) UserList(req entity.UserListReq) (*entity.UserListResp, *cod
 }
 
 func (s *Synthesis) FindMDBUserLogDaily(req entity.UserLogDailyReq) (*entity.UserLogDailyResp, *code.Result) {
+	page, pageSize := checkPageParam(req.Page, req.Size)
+
 	// 定义上下文
 	ctx, cancel := context.WithTimeout(context.Background(), 100*time.Second)
 	defer cancel()
@@ -125,8 +121,6 @@ func (s *Synthesis) FindMDBUserLogDaily(req entity.UserLogDailyReq) (*entity.Use
 		filter["channel"] = req.Channel
 	}
 
-	// 分页参数
-	skip := (req.Page - 1) * req.Size
 	// 计算总数
 	count, err := collection.CountDocuments(ctx, filter)
 	if err != nil {
@@ -136,8 +130,8 @@ func (s *Synthesis) FindMDBUserLogDaily(req entity.UserLogDailyReq) (*entity.Use
 
 	// 执行查询
 	opts := options.Find()
-	opts.SetSkip(int64(skip))
-	opts.SetLimit(int64(req.Size))
+	opts.SetSkip(int64((page - 1) * pageSize))
+	opts.SetLimit(int64(pageSize))
 	opts.SetSort(bson.D{{"daily", -1}})
 
 	cursor, err := collection.Find(ctx, filter, opts)
@@ -197,6 +191,8 @@ func (s *Synthesis) FindMDBUserLogDaily(req entity.UserLogDailyReq) (*entity.Use
 
 // FindWithdrawal 根据请求查询提现记录
 func (s *Synthesis) FindWithdrawal(req entity.UserWithdrawalReq) (*entity.UserWithdrawalResp, *code.Result) {
+	page, pageSize := checkPageParam(req.Page, req.Size)
+
 	ctx, cancel := context.WithTimeout(context.Background(), 100*time.Second)
 	defer cancel()
 	collection := mdb.MDB.Collection(constant.CNameCashOutRecord)
@@ -242,8 +238,8 @@ func (s *Synthesis) FindWithdrawal(req entity.UserWithdrawalReq) (*entity.UserWi
 
 	// 设置分页选项
 	findOptions := options.Find()
-	findOptions.SetSkip(int64((req.Page - 1) * req.Size))
-	findOptions.SetLimit(int64(req.Size))
+	findOptions.SetSkip(int64((page - 1) * pageSize))
+	findOptions.SetLimit(int64(pageSize))
 	findOptions.SetSort(bson.D{{"createAt", -1}})
 
 	// 获取总数total
@@ -658,6 +654,8 @@ func (s *Synthesis) InsertRecord(param model.UserOperationLog) {
 }
 
 func (s *Synthesis) RecordList(req entity.RecordListReq) (*entity.RecordListResp, *code.Result) {
+	page, pageSize := checkPageParam(req.Page, req.Size)
+
 	record := new(model.UserOperationLog)
 	collection := mdb.MDB.Collection(record.TableName())
 
@@ -689,8 +687,8 @@ func (s *Synthesis) RecordList(req entity.RecordListReq) (*entity.RecordListResp
 
 	// 设置分页选项
 	findOptions := options.Find()
-	findOptions.SetSkip(int64((req.Page - 1) * req.Size))
-	findOptions.SetLimit(int64(req.Size))
+	findOptions.SetSkip(int64((page - 1) * pageSize))
+	findOptions.SetLimit(int64(pageSize))
 	findOptions.SetSort(bson.D{{"created_at", -1}})
 
 	// 获取总数total

+ 1 - 8
game/game_cluster/nodes/webadmin/service/whitelist.go

@@ -95,14 +95,7 @@ func (w *Whitelist) GetAll(req entity.WhitelistListReq) (*entity.WhitelistListRe
 	defer cancel()
 
 	// 解析分页参数
-	page := req.Page
-	pageSize := req.Size
-	if page == 0 {
-		page = 1
-	}
-	if pageSize == 0 {
-		pageSize = 10
-	}
+	page, pageSize := checkPageParam(req.Page, req.Size)
 
 	// 设置分页选项
 	skip := (page - 1) * pageSize