Commit 2ed2e73dc2d448db2e99ead186d0de54bc89bd9e

Authored by 王家文
1 parent 9bceeb16
Exists in master and in 1 other branch dev-wjw

feat✨:排行活动增加了积分限制

service/roomrank/handle.go
... ... @@ -69,12 +69,16 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan
69 69 return
70 70 }
71 71  
72   - // 尝试找到旧房间 并获取原来的积分 这里主要是为了兼容之前版本没有积分要求的设置
73   - {
74   - _, hasOldRoom, scoreOld := TryGetOldRoomScore(gameId, req.TopType, player, config)
75   - if hasOldRoom {
76   - player.Score = scoreOld
  72 + needSavePlayer := false
  73 + defer func() {
  74 + if needSavePlayer {
  75 + SavePlayer(gameId, player)
77 76 }
  77 + }()
  78 + if player.ActivityId != config.Id {
  79 + player.ActivityId = config.Id
  80 + player.RoomUid = 0
  81 + needSavePlayer = true
78 82 }
79 83  
80 84 // 判断玩家积分
... ... @@ -90,6 +94,8 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan
90 94 code = code_msg.RECODE_MERGE_CONFIG_ERROR
91 95 return
92 96 }
  97 +
  98 + needSavePlayer = true
93 99 TryReSort(room, config)
94 100 SavePlayer(gameId, player)
95 101 SaveRoom(gameId, room)
... ... @@ -204,17 +210,22 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs
204 210 return
205 211 }
206 212  
207   - // 尝试找到旧房间 并获取原来的积分 这里主要是为了兼容之前版本没有积分要求的设置
208   - {
209   - _, hasOldRoom, scoreOld := TryGetOldRoomScore(gameId, req.TopType, player, config)
210   - if hasOldRoom {
211   - player.Score = scoreOld
  213 + needSavePlayer := false
  214 + defer func() {
  215 + if needSavePlayer {
  216 + SavePlayer(gameId, player)
212 217 }
  218 + }()
  219 + if player.ActivityId != config.Id {
  220 + player.ActivityId = config.Id
  221 + player.RoomUid = 0
  222 + needSavePlayer = true
213 223 }
214 224  
215 225 oldScore := player.Score
216 226 player.Score += req.AddScore
217 227 newScore := player.Score
  228 + needSavePlayer = true
218 229 // 记录日志
219 230 recordBase := NewRecordBase(player.Uid, req.TopType, config.Id)
220 231 SaveRecordAddScore(gameId, NewRecordAddScore(recordBase, req.AddScore, oldScore, newScore))
... ... @@ -228,15 +239,14 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs
228 239 // 尝试加入房间
229 240 room, hasRoom, firstJoin := TryGetRoom(gameId, req.TopType, player, config, playerLevel)
230 241  
231   - // 房间排行增加积分
232   - UpdatePlayerScore(room, player)
233   -
234 242 if !hasRoom {
235 243 code = code_msg.RECODE_MERGE_CONFIG_ERROR
236 244 return
237 245 }
  246 +
  247 + // 房间排行增加积分
  248 + UpdatePlayerScore(room, player)
238 249 TryReSort(room, config)
239   - SavePlayer(gameId, player)
240 250 SaveRoom(gameId, room)
241 251  
242 252 rsp.RoomRankInfo = GetInfoFromRoom(gameId, player, room, config)
... ...
service/roomrank/room.go
... ... @@ -86,34 +86,10 @@ func FindRoom(gameId string, topType int, activityId int64, roomConfigId int) (r
86 86 return
87 87 }
88 88  
89   -// TryGetOldRoomScore 尝试获取旧房间里的积分
90   -func TryGetOldRoomScore(gameId string, topType int, player *Player, config *confroomrank.ActivityConfig) (room *Room, hasOldRoom bool, scoreOld int64) {
91   - hasOldRoom = false
92   - if player.ActivityId != config.Id {
93   - player.ActivityId = config.Id
94   - player.RoomUid = 0
95   - return
96   - }
97   - // 查找玩家所在的房间
98   - room, hasOldRoom = LoadRoom(gameId, topType, config.Id, player.RoomUid)
99   - for i := 0; i < len(room.Details.Players); i++ {
100   - p := room.Details.Players[i]
101   - if player.Uid == p.Uid {
102   - scoreOld = p.Score
103   - break
104   - }
105   - }
106   - return
107   -}
108   -
109 89 // TryGetRoom 尝试获取房间
110 90 func TryGetRoom(gameId string, topType int, player *Player, config *confroomrank.ActivityConfig, playerLevel int) (room *Room, hasRoom bool, firstJoin bool) {
111 91 hasRoom = false
112 92 firstJoin = false
113   - if player.ActivityId != config.Id {
114   - player.ActivityId = config.Id
115   - player.RoomUid = 0
116   - }
117 93 // 查找玩家所在的房间
118 94 room, hasRoom = LoadRoom(gameId, topType, config.Id, player.RoomUid)
119 95 if hasRoom {
... ...