From 9b5b544abe4b6648e06652863af29466fed6852b Mon Sep 17 00:00:00 2001 From: xiabin Date: Sun, 26 Jan 2025 15:40:08 +0800 Subject: [PATCH] fix --- .../internal/logic/app_user/app_user_set_user_logic.go | 9 ++++----- game_open_api/internal/logic/game/ranking_list_logic.go | 4 +++- .../internal/logic/game/ranking_set_score_logic.go | 5 +++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/game_open_api/internal/logic/app_user/app_user_set_user_logic.go b/game_open_api/internal/logic/app_user/app_user_set_user_logic.go index ebb468c..173d375 100644 --- a/game_open_api/internal/logic/app_user/app_user_set_user_logic.go +++ b/game_open_api/internal/logic/app_user/app_user_set_user_logic.go @@ -2,11 +2,9 @@ package app_user import ( "context" - "gitea.youtukeji.com.cn/xiabin/youtu_server/gorm-gen/dao/model" - "gorm.io/gen/field" - "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/svc" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/types" + "gitea.youtukeji.com.cn/xiabin/youtu_server/gorm-gen/dao/model" "github.com/zeromicro/go-zero/core/logx" ) @@ -31,11 +29,12 @@ func (l *AppUserSetUserLogic) AppUserSetUser(req *types.SetAppUserRequest) (resp if err != nil { return } - info, err := l.svcCtx.Query.AppUser.WithContext(l.ctx).Where(l.svcCtx.Query.AppUser.ID.Eq(at.UserId)).Updates(field.Attrs(&model.AppUser{ + au := l.svcCtx.Query.AppUser + info, err := au.WithContext(l.ctx).Where(au.ID.Eq(at.UserId)).Debug().Updates(&model.AppUser{ ID: at.UserId, Nickname: req.Nickname, Avatar: req.Avatar, - })) + }) switch { case err != nil: return diff --git a/game_open_api/internal/logic/game/ranking_list_logic.go b/game_open_api/internal/logic/game/ranking_list_logic.go index 0e57db2..5ce3aea 100644 --- a/game_open_api/internal/logic/game/ranking_list_logic.go +++ b/game_open_api/internal/logic/game/ranking_list_logic.go @@ -2,9 +2,11 @@ package game import ( "context" + "errors" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/logic/rankings" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/svc" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/types" + "gorm.io/gorm" "strconv" "github.com/zeromicro/go-zero/core/logx" @@ -70,7 +72,7 @@ func (l *RankingListLogic) RankingList(req *types.RankingListRequest) (resp *typ if !flag { tmp, err := l.svcCtx.Query.GameScore.GetUserRank(at.AppId, at.UserId, req.Type) - if err != nil { + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { return nil, err } userRank = types.RankingData(tmp) diff --git a/game_open_api/internal/logic/game/ranking_set_score_logic.go b/game_open_api/internal/logic/game/ranking_set_score_logic.go index 63d24a5..090a12a 100644 --- a/game_open_api/internal/logic/game/ranking_set_score_logic.go +++ b/game_open_api/internal/logic/game/ranking_set_score_logic.go @@ -6,6 +6,7 @@ import ( "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/logic/rankings" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/svc" "gitea.youtukeji.com.cn/xiabin/youtu_server/game_open_api/internal/types" + "gitea.youtukeji.com.cn/xiabin/youtu_server/gorm-gen/dao/model" "github.com/redis/go-redis/v9" "gorm.io/gorm" @@ -49,6 +50,10 @@ func (l *RankingSetScoreLogic) RankingSetScore(req *types.SetUserGameScoreReques return } + if oldScore == nil { + oldScore = new(model.GameScore) + } + // 判断是否需要更新(只保留最高分) if req.Score <= oldScore.Score { return