diff --git a/models/roomrank.go b/models/roomrank.go index 3d65dc4..4209e65 100644 --- a/models/roomrank.go +++ b/models/roomrank.go @@ -14,6 +14,7 @@ type RspRoomRankGetConfig struct { // RoomRankInfo 房间排行信息 type RoomRankInfo struct { + RoomUid int64 `form:"room_uid" json:"room_uid"` // 房间唯一ID } // ReqRoomRankInfo 请求 房间排行信息 diff --git a/service/cardholder/handle.go b/service/cardholder/handle.go index 384787c..71896fe 100644 --- a/service/cardholder/handle.go +++ b/service/cardholder/handle.go @@ -14,9 +14,10 @@ import ( func HandleGetConfig(req *models.ReqCardHolderGetConfig) (code string, rsp models.RspCardHolderGetConfig) { rsp = models.RspCardHolderGetConfig{} code = code_msg.RECODE_OK + gameId := req.GameID // 尝试更新配置 - config, _ := configs.GetCardActivityConfig(req.GameID) + config, _ := configs.GetCardActivityConfig(gameId) rsp.ActivityId = config.Id rsp.PrepareTime = config.PreviewTime rsp.StartTime = config.StartTime @@ -32,9 +33,11 @@ func HandleGetConfig(req *models.ReqCardHolderGetConfig) (code string, rsp model func HandleInfo(req *models.ReqCardHolderInfo) (code string, rsp models.RspCardHolderInfo) { rsp = models.RspCardHolderInfo{} code = code_msg.RECODE_OK + gameId := req.GameID + playerUid := req.UID // 尝试更新配置 - config, hasConfig := configs.GetCardActivityConfig(req.GameID) + config, hasConfig := configs.GetCardActivityConfig(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR return @@ -48,7 +51,7 @@ func HandleInfo(req *models.ReqCardHolderInfo) (code string, rsp models.RspCardH } // 读取游戏数据 - player := LoadPlayer(req.GameID, req.UID, config) + player := LoadPlayer(gameId, playerUid, config) rsp.CardHolderInfo = GetInfo(player, config) @@ -62,9 +65,11 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH AwardAlbum: make(map[int]string), } code = code_msg.RECODE_OK + gameId := req.GameID + playerUid := req.UID // 尝试更新配置 - config, hasConfig := configs.GetCardActivityConfig(req.GameID) + config, hasConfig := configs.GetCardActivityConfig(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR return @@ -85,7 +90,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH } // 读取游戏数据 - player := LoadPlayer(req.GameID, req.UID, config) + player := LoadPlayer(gameId, playerUid, config) // 检查游戏数据 轮次等 code = CheckGameData(player, config) if code != code_msg.RECODE_OK { @@ -98,7 +103,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH allNewCards := make([]int, 0) for _, idCardholder := range req.Ids { confCardholder, _ := config.CardholderConfig[strconv.Itoa(idCardholder)] - newCards := DoOpen(req.GameID, + newCards := DoOpen(gameId, player, config, confCardholder, sequenceId, cohort, @@ -110,7 +115,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH } rsp.NewCards = append(rsp.NewCards, newCards) } - awardAlbum, awardRound := DoOpenCheckAward(req.GameID, + awardAlbum, awardRound := DoOpenCheckAward(gameId, player, config, sequenceId, cohort, allNewCards, @@ -122,7 +127,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH CalculateStarCount(player, config) // 存档 - SavePlayer(req.GameID, player) + SavePlayer(gameId, player) // 返回信息 rsp.CardHolderInfo = GetInfo(player, config) @@ -137,9 +142,11 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model AwardAlbum: make(map[int]string), } code = code_msg.RECODE_OK + gameId := req.GameID + playerUid := req.UID // 尝试更新配置 - config, hasConfig := configs.GetCardActivityConfig(req.GameID) + config, hasConfig := configs.GetCardActivityConfig(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR return @@ -158,7 +165,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model } // 读取游戏数据 - player := LoadPlayer(req.GameID, req.UID, config) + player := LoadPlayer(gameId, playerUid, config) // 检查游戏数据 轮次等 code = CheckGameData(player, config) if code != code_msg.RECODE_OK { @@ -204,7 +211,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model openMode := 1 sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) for i := 0; i < cardholderCount; i++ { - newCards := DoOpen(req.GameID, + newCards := DoOpen(gameId, player, config, confCardholder, sequenceId, cohort, @@ -213,7 +220,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model rsp.NewCards = append(rsp.NewCards, i3) } } - awardAlbum, awardRound := DoOpenCheckAward(req.GameID, + awardAlbum, awardRound := DoOpenCheckAward(gameId, player, config, sequenceId, cohort, rsp.NewCards, @@ -225,7 +232,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model CalculateStarCount(player, config) // 存档 - SavePlayer(req.GameID, player) + SavePlayer(gameId, player) utslice.Shuffle(rsp.NewCards) @@ -243,9 +250,11 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m AutoExchangeHolder: make([]int, 0), } code = code_msg.RECODE_OK + gameId := req.GameID + playerUid := req.UID // 尝试更新配置 - config, hasConfig := configs.GetCardActivityConfig(req.GameID) + config, hasConfig := configs.GetCardActivityConfig(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR return @@ -258,7 +267,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m } // 读取游戏数据 - player := LoadPlayer(req.GameID, req.UID, config) + player := LoadPlayer(gameId, playerUid, config) // 检查游戏数据 轮次等 code = CheckGameData(player, config) if code != code_msg.RECODE_OK { @@ -284,7 +293,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m player.Details.LastStarCount = 0 player.Details.AutoExchangeHolder = make([]int, 0) // 存档 - SavePlayer(req.GameID, player) + SavePlayer(gameId, player) utslice.Shuffle(rsp.NewCards) diff --git a/service/cardholder/player.go b/service/cardholder/player.go index 761812d..bcc7db5 100644 --- a/service/cardholder/player.go +++ b/service/cardholder/player.go @@ -18,13 +18,13 @@ func SavePlayer(gameId string, d *DataCardHolder) { } } -func _LoadPlayer(gameId string, uid int64) (d *DataCardHolder) { - d = NewDataCardHolder(uid) +func _LoadPlayer(gameId string, playerUid int64) (d *DataCardHolder) { + d = NewDataCardHolder(playerUid) has, err := svmysql.First(d, gameId) if has { d.Decode() } else { - d.Init(uid) + d.Init(playerUid) err = svmysql.Create(d, gameId) if err != nil { lxalilog.Errors(err, "cardholder._LoadPlayer Create error", gameId, d.Uid, d.ActivityId) @@ -35,9 +35,9 @@ func _LoadPlayer(gameId string, uid int64) (d *DataCardHolder) { } // LoadPlayer 获取数据 外部接口 -func LoadPlayer(gameId string, uid int64, config *configs.CardActivityConfig) (d *DataCardHolder) { +func LoadPlayer(gameId string, playerUid int64, config *configs.CardActivityConfig) (d *DataCardHolder) { configId := config.Id - d = _LoadPlayer(gameId, uid) + d = _LoadPlayer(gameId, playerUid) // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 if configId != 0 && configId != d.ActivityId { diff --git a/service/roomrank/handle.go b/service/roomrank/handle.go index 31128d0..06fcd1d 100644 --- a/service/roomrank/handle.go +++ b/service/roomrank/handle.go @@ -10,9 +10,10 @@ import ( func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models.RspRoomRankGetConfig) { rsp = models.RspRoomRankGetConfig{} code = code_msg.RECODE_OK + gameId := req.GameID // 尝试更新配置 - config, _ := configs.GetRoomRankConfig(req.GameID) + config, _ := configs.GetRoomRankConfig(gameId) rsp.ActivityId = config.Id rsp.Config = config.Client @@ -24,9 +25,11 @@ func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models. func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRankInfo) { rsp = models.RspRoomRankInfo{} code = code_msg.RECODE_OK + gameId := req.GameID + playerUid := req.UID // 尝试更新配置 - config, hasConfig := configs.GetRoomRankConfig(req.GameID) + config, hasConfig := configs.GetRoomRankConfig(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR return @@ -41,7 +44,14 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan //} // 读取游戏数据 - player := LoadPlayer(req.GameID, req.UID, config) + player := LoadPlayer(gameId, playerUid, config) + + // todo 检查是否有领取的结算奖励 + + //hasRoom := player.RoomUid != 0 + //if hasRoom { + // room, has := LoadRoom(gameId, player.RoomUid,) + //} rsp.RoomRankInfo = GetInfo(player, config) diff --git a/service/roomrank/player.go b/service/roomrank/player.go index 6aed144..5e52aab 100644 --- a/service/roomrank/player.go +++ b/service/roomrank/player.go @@ -19,12 +19,12 @@ func SavePlayer(gameId string, d *DataRoomRankPlayer) { } } -func _LoadPlayer(gameId string, uid int64) (d *DataRoomRankPlayer) { - d = NewDataRoomRankPlayer(uid) +func _LoadPlayer(gameId string, playerUid int64) (d *DataRoomRankPlayer) { + d = NewDataRoomRankPlayer(playerUid) has, err := svmysql.First(d, gameId) if has { } else { - d.Init(uid) + d.Init(playerUid) err = svmysql.Create(d, gameId) if err != nil { lxalilog.Errors(err, "roomrank._LoadPlayer Create error", gameId, d.Uid, d.ActivityId) @@ -35,10 +35,10 @@ func _LoadPlayer(gameId string, uid int64) (d *DataRoomRankPlayer) { } // LoadPlayer 获取数据 外部接口 -func LoadPlayer(gameId string, uid int64, config *configs.RoomRankConfig) (d *DataRoomRankPlayer) { +func LoadPlayer(gameId string, playerUid int64, config *configs.RoomRankConfig) (d *DataRoomRankPlayer) { configId := config.Id - d = _LoadPlayer(gameId, uid) - // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 + d = _LoadPlayer(gameId, playerUid) + // todo 这里要重写 这个活动根据玩家领奖来切换 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 if configId != 0 && configId != d.ActivityId { diff --git a/util/utmisc/goroutine.go b/util/utmisc/goroutine.go new file mode 100644 index 0000000..1bdcb56 --- /dev/null +++ b/util/utmisc/goroutine.go @@ -0,0 +1,15 @@ +package utmisc + +import ( + "fmt" + "runtime" +) + +// GetGoroutineID 获取携程ID +func GetGoroutineID() int { + var buf [64]byte + runtime.Stack(buf[:], false) + var id int + fmt.Sscanf(string(buf[:]), "goroutine %d", &id) + return id +} -- libgit2 0.21.0