Commit 74be11b7cf3581c153edf5b62205fbde88136c14
1 parent
c8ff5337
Exists in
master
and in
1 other branch
feat✨:房间排行活动基本框架
Showing
17 changed files
with
368 additions
and
29 deletions
Show diff stats
| @@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
| 1 | +package configs | ||
| 2 | + | ||
| 3 | +// Decode 解析配置原始数据 | ||
| 4 | +func (c *RoomRankConfig) Decode(gameId string, configRaw *RoomRankConfigRaw) { | ||
| 5 | + c.GameId = gameId | ||
| 6 | + c.Raw = configRaw | ||
| 7 | + | ||
| 8 | + c.Id = configRaw.Id | ||
| 9 | + // 解析奖励 | ||
| 10 | + | ||
| 11 | + c.GenerateConfigClient() | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +// GenerateConfigClient 生成给客户端的配置 | ||
| 15 | +func (c *RoomRankConfig) GenerateConfigClient() { | ||
| 16 | + configClient := &RoomRankConfigClient{ | ||
| 17 | + Id: c.Id, | ||
| 18 | + } | ||
| 19 | + c.Client = configClient | ||
| 20 | +} |
| @@ -0,0 +1,59 @@ | @@ -0,0 +1,59 @@ | ||
| 1 | +package configs | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/service-common/svconst" | ||
| 5 | + "apigame/service-common/svmysql" | ||
| 6 | + "apigame/service-common/svredis" | ||
| 7 | + "fmt" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +// RoomRankConfig 房间排行活动配置 分析后数据 | ||
| 11 | +type RoomRankConfig struct { | ||
| 12 | + Raw *RoomRankConfigRaw `json:"-"` | ||
| 13 | + | ||
| 14 | + Id int64 // ID | ||
| 15 | + | ||
| 16 | + Client *RoomRankConfigClient | ||
| 17 | + GameId string // 所属游戏ID | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (c *RoomRankConfig) RedisInfo(gameId string) *svredis.RedisInfo { | ||
| 21 | + tableName := svconst.MYSQL_TABLE_S_ROOMRANK_CONFIG | ||
| 22 | + return &svredis.RedisInfo{ | ||
| 23 | + CacheKey: fmt.Sprintf("%s:%s:%s", svconst.REDIS_CACHEP_REFIX, tableName, gameId), | ||
| 24 | + CacheTime: 300, | ||
| 25 | + } | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// RoomRankConfigRaw 卡牌活动配置 原始数据 | ||
| 29 | +type RoomRankConfigRaw struct { | ||
| 30 | + Id int64 // ID | ||
| 31 | + OpenLevel int // 开启等级 | ||
| 32 | + PreviewTime int64 // 预告时间 | ||
| 33 | + StartTime int64 // 开始时间 | ||
| 34 | + EndTime int64 // 结束时间 | ||
| 35 | + Round int // 轮数 | ||
| 36 | + Awards string `json:"-"` // 奖励配置 | ||
| 37 | + AlbumConfig string `json:"-"` // 卡组配置 | ||
| 38 | + CardConfig string `json:"-"` // 卡牌配置 | ||
| 39 | + CardHolderConfig string `json:"-"` // 卡包开卡规则 | ||
| 40 | + NormalCardStarSequence string `json:"-"` // 卡片星级配置 | ||
| 41 | + CardSequenceConfig string `json:"-"` // 卡片星级对应卡牌配置 | ||
| 42 | + StarShopConfig string `json:"-"` // 星星商店配置 | ||
| 43 | + Ver string // 版本号 | ||
| 44 | + Status int // 状态 0=关闭 1=开启 | ||
| 45 | + UpdateTime int64 // 修改时间戳 | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +func (c *RoomRankConfigRaw) MysqlInfo(gameId string) *svmysql.MysqlInfo { | ||
| 49 | + tableName := svconst.MYSQL_TABLE_S_ROOMRANK_CONFIG | ||
| 50 | + return &svmysql.MysqlInfo{ | ||
| 51 | + DbMysql: svconst.DbConfig.Where("status = ?", 1), | ||
| 52 | + TableName: tableName + gameId, | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +// RoomRankConfigClient 卡牌活动配置 给客户端数据 | ||
| 57 | +type RoomRankConfigClient struct { | ||
| 58 | + Id int64 `form:"id" json:"id"` // ID | ||
| 59 | +} |
configs/init.go
| 1 | package configs | 1 | package configs |
| 2 | 2 | ||
| 3 | +import "apigame/service-common/svconst" | ||
| 4 | + | ||
| 3 | func Init() bool { | 5 | func Init() bool { |
| 4 | 6 | ||
| 5 | - gameId := "10149" | 7 | + for _, gameId := range svconst.GameList { |
| 8 | + _, _ = GetApiGameConfig(gameId) | ||
| 9 | + } | ||
| 10 | + | ||
| 11 | + for _, gameId := range svconst.GameListCardHolder { | ||
| 12 | + _, _ = GetCardActivityConfig(gameId) | ||
| 13 | + } | ||
| 6 | 14 | ||
| 7 | - _, _ = GetApiGameConfig(gameId) | ||
| 8 | - _, _ = GetCardActivityConfig(gameId) | 15 | + for _, gameId := range svconst.GameListRoomRank { |
| 16 | + _, _ = GetRoomRankConfig(gameId) | ||
| 17 | + } | ||
| 9 | 18 | ||
| 10 | return true | 19 | return true |
| 11 | } | 20 | } |
configs/registry.go
| @@ -52,3 +52,29 @@ func GetCardActivityConfig(gameId string) (conf *CardActivityConfig, has bool) { | @@ -52,3 +52,29 @@ func GetCardActivityConfig(gameId string) (conf *CardActivityConfig, has bool) { | ||
| 52 | 52 | ||
| 53 | return | 53 | return |
| 54 | } | 54 | } |
| 55 | + | ||
| 56 | +// GetRoomRankConfig 获取 房间排行活动配置 | ||
| 57 | +func GetRoomRankConfig(gameId string) (conf *RoomRankConfig, has bool) { | ||
| 58 | + var err error | ||
| 59 | + conf = new(RoomRankConfig) | ||
| 60 | + has = svredis.LoadData(gameId, conf) | ||
| 61 | + if has { | ||
| 62 | + fmt.Println("dwjw GetRoomRankConfig use cache") | ||
| 63 | + return | ||
| 64 | + } | ||
| 65 | + confRaw := new(RoomRankConfigRaw) | ||
| 66 | + has, err = svmysql.First(confRaw, gameId) | ||
| 67 | + if err != nil { | ||
| 68 | + return | ||
| 69 | + } | ||
| 70 | + if !has { | ||
| 71 | + return | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + conf.Decode(gameId, confRaw) | ||
| 75 | + | ||
| 76 | + fmt.Println("dwjw GetRoomRankConfig save cache") | ||
| 77 | + svredis.SaveData(gameId, conf) | ||
| 78 | + | ||
| 79 | + return | ||
| 80 | +} |
| @@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/models" | ||
| 5 | + "apigame/service/roomrank" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +// RoomRankController 绑定控制器 | ||
| 9 | +type RoomRankController struct { | ||
| 10 | + BaseController | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +// GetConfig 活动配置 | ||
| 14 | +func (c *RoomRankController) GetConfig() { | ||
| 15 | + req := new(models.ReqRoomRankGetConfig) | ||
| 16 | + if !c.GetPostData(req) { | ||
| 17 | + return | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + code, rsp := roomrank.HandleGetConfig(req) | ||
| 21 | + | ||
| 22 | + c.RetRspCodeData(code, rsp) | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +// Info 房间排行信息 | ||
| 26 | +func (c *RoomRankController) Info() { | ||
| 27 | + req := new(models.ReqRoomRankInfo) | ||
| 28 | + if !c.GetPostData(req) { | ||
| 29 | + return | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + code, rsp := roomrank.HandleInfo(req) | ||
| 33 | + | ||
| 34 | + c.RetRspCodeData(code, rsp) | ||
| 35 | +} |
main.go
| @@ -3,11 +3,11 @@ package main | @@ -3,11 +3,11 @@ package main | ||
| 3 | import ( | 3 | import ( |
| 4 | "apigame/configs" | 4 | "apigame/configs" |
| 5 | _ "apigame/routers" | 5 | _ "apigame/routers" |
| 6 | + "apigame/service" | ||
| 6 | "apigame/service-common/svconst" | 7 | "apigame/service-common/svconst" |
| 7 | "apigame/service-common/svlog" | 8 | "apigame/service-common/svlog" |
| 8 | "apigame/service-common/svmysql" | 9 | "apigame/service-common/svmysql" |
| 9 | "apigame/service-common/svredis" | 10 | "apigame/service-common/svredis" |
| 10 | - "apigame/service/cardholder" | ||
| 11 | "github.com/astaxie/beego" | 11 | "github.com/astaxie/beego" |
| 12 | "github.com/astaxie/beego/logs" | 12 | "github.com/astaxie/beego/logs" |
| 13 | "github.com/astaxie/beego/plugins/cors" | 13 | "github.com/astaxie/beego/plugins/cors" |
| @@ -63,7 +63,7 @@ func Init() bool { | @@ -63,7 +63,7 @@ func Init() bool { | ||
| 63 | return false | 63 | return false |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | - cardholder.Init() | 66 | + service.Init() |
| 67 | 67 | ||
| 68 | return true | 68 | return true |
| 69 | } | 69 | } |
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
| 1 | +package models | ||
| 2 | + | ||
| 3 | +// ReqRoomRankGetConfig 请求 活动配置 | ||
| 4 | +type ReqRoomRankGetConfig struct { | ||
| 5 | + BaseLoginInfo | ||
| 6 | + BaseSign | ||
| 7 | +} | ||
| 8 | + | ||
| 9 | +// RspRoomRankGetConfig 返回 活动配置 | ||
| 10 | +type RspRoomRankGetConfig struct { | ||
| 11 | + ActivityId int64 `form:"activity_id" json:"activity_id"` // 活动配置 0=无活动 | ||
| 12 | + Config any `form:"config" json:"config"` // 活动配置对象 | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +// RoomRankInfo 房间排行信息 | ||
| 16 | +type RoomRankInfo struct { | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +// ReqRoomRankInfo 请求 房间排行信息 | ||
| 20 | +type ReqRoomRankInfo struct { | ||
| 21 | + BaseLoginInfo | ||
| 22 | + BaseSign | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +// RspRoomRankInfo 返回 房间排行信息 | ||
| 26 | +type RspRoomRankInfo struct { | ||
| 27 | + RoomRankInfo | ||
| 28 | +} |
routers/router.go
| @@ -22,5 +22,11 @@ func init() { | @@ -22,5 +22,11 @@ func init() { | ||
| 22 | // 上期剩余星星自动兑换信息 | 22 | // 上期剩余星星自动兑换信息 |
| 23 | beego.Router(prefix+"/cardholder/autoexchangeinfo", &controllers.CardHolderController{}, "post:AutoExchangeInfo") | 23 | beego.Router(prefix+"/cardholder/autoexchangeinfo", &controllers.CardHolderController{}, "post:AutoExchangeInfo") |
| 24 | 24 | ||
| 25 | + // 房间排行活动 | ||
| 26 | + // 活动配置 | ||
| 27 | + beego.Router(prefix+"/roomrank/getconfig", &controllers.RoomRankController{}, "post:GetConfig") | ||
| 28 | + // 房间排行信息 | ||
| 29 | + beego.Router(prefix+"/roomrank/info", &controllers.RoomRankController{}, "post:Info") | ||
| 30 | + | ||
| 25 | beego.ErrorController(&controllers.ErrorController{}) | 31 | beego.ErrorController(&controllers.ErrorController{}) |
| 26 | } | 32 | } |
service-common/svconst/mysql.go
| @@ -13,9 +13,10 @@ const ( | @@ -13,9 +13,10 @@ const ( | ||
| 13 | 13 | ||
| 14 | MYSQL_TABLE_S_CARDHOLDER_CONFIG = "s_card_activity_" // 开卡包活动配置 | 14 | MYSQL_TABLE_S_CARDHOLDER_CONFIG = "s_card_activity_" // 开卡包活动配置 |
| 15 | MYSQL_TABLE_S_CARDHOLDER_DATA = "s_cardholder_data_" // 开卡包活动数据 | 15 | MYSQL_TABLE_S_CARDHOLDER_DATA = "s_cardholder_data_" // 开卡包活动数据 |
| 16 | - MYSQL_TABLE_S_CARDHOLDER_RECORD_GETNEW = "s_cardholder_record_getnew_" // 开卡包活动日志获得卡包 | ||
| 17 | MYSQL_TABLE_S_CARDHOLDER_RECORD_OPEN = "s_cardholder_record_open_" // 开卡包活动日志开卡包 | 16 | MYSQL_TABLE_S_CARDHOLDER_RECORD_OPEN = "s_cardholder_record_open_" // 开卡包活动日志开卡包 |
| 18 | MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDALBUM = "s_cardholder_record_rewardalbum_" // 开卡包活动日志领取卡组奖励 | 17 | MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDALBUM = "s_cardholder_record_rewardalbum_" // 开卡包活动日志领取卡组奖励 |
| 19 | MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDROUND = "s_cardholder_record_rewardround_" // 开卡包活动日志领取轮次奖励 | 18 | MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDROUND = "s_cardholder_record_rewardround_" // 开卡包活动日志领取轮次奖励 |
| 20 | 19 | ||
| 20 | + MYSQL_TABLE_S_ROOMRANK_CONFIG = "s_roomrank_activity_" // 房间排行活动配置 | ||
| 21 | + MYSQL_TABLE_S_ROOMRANK_DATA = "s_roomrank_data_" // 房间排行持久数据 | ||
| 21 | ) | 22 | ) |
service-common/svconst/vars.go
| @@ -9,5 +9,7 @@ var ( | @@ -9,5 +9,7 @@ var ( | ||
| 9 | DbCommon *gorm.DB | 9 | DbCommon *gorm.DB |
| 10 | DbConfig *gorm.DB | 10 | DbConfig *gorm.DB |
| 11 | 11 | ||
| 12 | + GameList = []string{"10149"} | ||
| 12 | GameListCardHolder = []string{"10149"} | 13 | GameListCardHolder = []string{"10149"} |
| 14 | + GameListRoomRank = []string{"10149"} | ||
| 13 | ) | 15 | ) |
service/cardholder/dto-game.go
| @@ -10,12 +10,14 @@ import ( | @@ -10,12 +10,14 @@ import ( | ||
| 10 | 10 | ||
| 11 | // DataCardHolder 卡牌活动持久数据 | 11 | // DataCardHolder 卡牌活动持久数据 |
| 12 | type DataCardHolder struct { | 12 | type DataCardHolder struct { |
| 13 | - Uid int64 `gorm:"column:uid;primaryKey;comment:玩家唯一ID"` | ||
| 14 | - ActivityId int64 `gorm:"comment:活动ID"` | 13 | + Uid int64 `gorm:"column:uid;primaryKey;comment:玩家唯一ID"` |
| 14 | + ActivityId int64 `gorm:"comment:活动ID"` | ||
| 15 | + | ||
| 15 | Details *DataCardHolderDetails `gorm:"-"` // 活动详情 | 16 | Details *DataCardHolderDetails `gorm:"-"` // 活动详情 |
| 16 | DetailsText string `gorm:"comment:活动详情封装"` | 17 | DetailsText string `gorm:"comment:活动详情封装"` |
| 17 | - CreateTime int64 `gorm:"comment:创建时间戳"` | ||
| 18 | - UpdateTime int64 `gorm:"comment:修改时间戳"` | 18 | + |
| 19 | + CreateTime int64 `gorm:"comment:创建时间戳"` | ||
| 20 | + UpdateTime int64 `gorm:"comment:修改时间戳"` | ||
| 19 | } | 21 | } |
| 20 | 22 | ||
| 21 | func (d *DataCardHolder) MysqlInfo(gameId string) *svmysql.MysqlInfo { | 23 | func (d *DataCardHolder) MysqlInfo(gameId string) *svmysql.MysqlInfo { |
service/cardholder/init.go
| @@ -1,19 +0,0 @@ | @@ -1,19 +0,0 @@ | ||
| 1 | -package cardholder | ||
| 2 | - | ||
| 3 | -import ( | ||
| 4 | - "apigame/service-common/svconst" | ||
| 5 | - "apigame/service-common/svmysql" | ||
| 6 | -) | ||
| 7 | - | ||
| 8 | -func Init() { | ||
| 9 | - | ||
| 10 | - // create table | ||
| 11 | - // 卡牌卡包 | ||
| 12 | - for _, gameId := range svconst.GameListCardHolder { | ||
| 13 | - svmysql.InitTable(new(DataCardHolder), gameId) | ||
| 14 | - svmysql.InitTable(new(RecordCardHolderOpen), gameId) | ||
| 15 | - svmysql.InitTable(new(RecordCardHolderRewardAlbum), gameId) | ||
| 16 | - svmysql.InitTable(new(RecordCardHolderRewardRound), gameId) | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | -} |
service/code-msg/code-msg.go
| @@ -48,6 +48,8 @@ const ( | @@ -48,6 +48,8 @@ const ( | ||
| 48 | RECODE_MERGE_CARDHOLDER_STARSHOPID_ERROR = "2105" | 48 | RECODE_MERGE_CARDHOLDER_STARSHOPID_ERROR = "2105" |
| 49 | RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR = "2106" | 49 | RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR = "2106" |
| 50 | RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR = "2107" | 50 | RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR = "2107" |
| 51 | + | ||
| 52 | + RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR = "2200" | ||
| 51 | ) | 53 | ) |
| 52 | 54 | ||
| 53 | var recodeText = map[string]string{ | 55 | var recodeText = map[string]string{ |
| @@ -96,6 +98,8 @@ var recodeText = map[string]string{ | @@ -96,6 +98,8 @@ var recodeText = map[string]string{ | ||
| 96 | RECODE_MERGE_CARDHOLDER_STARSHOPID_ERROR: "商店ID错误", | 98 | RECODE_MERGE_CARDHOLDER_STARSHOPID_ERROR: "商店ID错误", |
| 97 | RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR: "星星商店星星不足", | 99 | RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR: "星星商店星星不足", |
| 98 | RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR: "没有星星商店自动兑换信息", | 100 | RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR: "没有星星商店自动兑换信息", |
| 101 | + | ||
| 102 | + RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR: "活动未开放", | ||
| 99 | } | 103 | } |
| 100 | 104 | ||
| 101 | func RecodeText(code string) string { | 105 | func RecodeText(code string) string { |
| @@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/service-common/svconst" | ||
| 5 | + "apigame/service-common/svmysql" | ||
| 6 | + "apigame/service/cardholder" | ||
| 7 | + "apigame/service/roomrank" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +func Init() { | ||
| 11 | + | ||
| 12 | + // create table | ||
| 13 | + // 卡牌卡包 | ||
| 14 | + for _, gameId := range svconst.GameListCardHolder { | ||
| 15 | + svmysql.InitTable(new(cardholder.DataCardHolder), gameId) | ||
| 16 | + svmysql.InitTable(new(cardholder.RecordCardHolderOpen), gameId) | ||
| 17 | + svmysql.InitTable(new(cardholder.RecordCardHolderRewardAlbum), gameId) | ||
| 18 | + svmysql.InitTable(new(cardholder.RecordCardHolderRewardRound), gameId) | ||
| 19 | + } | ||
| 20 | + // 卡牌卡包 | ||
| 21 | + for _, gameId := range svconst.GameListRoomRank { | ||
| 22 | + svmysql.InitTable(new(roomrank.DataRoomRank), gameId) | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | +} |
| @@ -0,0 +1,42 @@ | @@ -0,0 +1,42 @@ | ||
| 1 | +package roomrank | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/service-common/svconst" | ||
| 5 | + "apigame/service-common/svmysql" | ||
| 6 | + "apigame/util/util-lx/lxtime" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +// DataRoomRank 房间排行持久数据 | ||
| 10 | +type DataRoomRank struct { | ||
| 11 | + Uid int64 `gorm:"column:uid;primaryKey;comment:玩家唯一ID"` | ||
| 12 | + ActivityId int64 `gorm:"comment:活动ID"` | ||
| 13 | + | ||
| 14 | + UserType int `gorm:"comment:用户类型"` // 0=新手用户 1=优质用户 2=普通用户 3=垃圾用户 | ||
| 15 | + UserScore int `gorm:"comment:用户评级分"` | ||
| 16 | + UserClass int `gorm:"comment:用户评级"` | ||
| 17 | + | ||
| 18 | + RoomUid int `gorm:"comment:所在房间唯一ID"` | ||
| 19 | + | ||
| 20 | + CreateTime int64 `gorm:"comment:创建时间戳"` | ||
| 21 | + UpdateTime int64 `gorm:"comment:修改时间戳"` | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (d *DataRoomRank) MysqlInfo(gameId string) *svmysql.MysqlInfo { | ||
| 25 | + tableName := svconst.MYSQL_TABLE_S_ROOMRANK_DATA | ||
| 26 | + return &svmysql.MysqlInfo{ | ||
| 27 | + DbMysql: svconst.DbCommon, | ||
| 28 | + TableName: tableName + gameId, | ||
| 29 | + } | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func NewDataRoomRank(uid int64) *DataRoomRank { | ||
| 33 | + d := &DataRoomRank{ | ||
| 34 | + Uid: uid, | ||
| 35 | + } | ||
| 36 | + return d | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +func (d *DataRoomRank) Init(uid int64) { | ||
| 40 | + d.Uid = uid | ||
| 41 | + d.CreateTime = lxtime.NowUninx() | ||
| 42 | +} |
| @@ -0,0 +1,49 @@ | @@ -0,0 +1,49 @@ | ||
| 1 | +package roomrank | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/configs" | ||
| 5 | + "apigame/models" | ||
| 6 | + "apigame/service/code-msg" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +// HandleGetConfig 活动配置 | ||
| 10 | +func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models.RspRoomRankGetConfig) { | ||
| 11 | + rsp = models.RspRoomRankGetConfig{} | ||
| 12 | + code = code_msg.RECODE_OK | ||
| 13 | + | ||
| 14 | + // 尝试更新配置 | ||
| 15 | + config, _ := configs.GetRoomRankConfig(req.GameID) | ||
| 16 | + rsp.ActivityId = config.Id | ||
| 17 | + | ||
| 18 | + rsp.Config = config.Client | ||
| 19 | + | ||
| 20 | + return | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +// HandleInfo 房间排行信息 | ||
| 24 | +func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRankInfo) { | ||
| 25 | + rsp = models.RspRoomRankInfo{} | ||
| 26 | + code = code_msg.RECODE_OK | ||
| 27 | + | ||
| 28 | + // 尝试更新配置 | ||
| 29 | + config, hasConfig := configs.GetRoomRankConfig(req.GameID) | ||
| 30 | + if !hasConfig { | ||
| 31 | + code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR | ||
| 32 | + return | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + // todo 检查是否在结算中 | ||
| 36 | + //// 判断预告时间 | ||
| 37 | + //sec := lxtime.NowUninx() | ||
| 38 | + //if sec < config.StartTime { | ||
| 39 | + // code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR | ||
| 40 | + // return | ||
| 41 | + //} | ||
| 42 | + | ||
| 43 | + // 读取游戏数据 | ||
| 44 | + gameData := LoadData(req.GameID, req.UID, config) | ||
| 45 | + | ||
| 46 | + rsp.RoomRankInfo = GetInfo(gameData, config) | ||
| 47 | + | ||
| 48 | + return | ||
| 49 | +} |
| @@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
| 1 | +package roomrank | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "apigame/configs" | ||
| 5 | + "apigame/models" | ||
| 6 | + "apigame/service-common/svmysql" | ||
| 7 | + "apigame/util/util-lx/lxtime" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +// SaveData 存储数据 | ||
| 11 | +func SaveData(gameId string, d *DataRoomRank) { | ||
| 12 | + d.UpdateTime = lxtime.NowUninx() | ||
| 13 | + | ||
| 14 | + _ = svmysql.Save(d, gameId) | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func _LoadData(gameId string, uid int64) (d *DataRoomRank) { | ||
| 18 | + d = NewDataRoomRank(uid) | ||
| 19 | + has, err := svmysql.First(d, gameId) | ||
| 20 | + if err != nil { | ||
| 21 | + return | ||
| 22 | + } | ||
| 23 | + if has { | ||
| 24 | + } else { | ||
| 25 | + d.Init(uid) | ||
| 26 | + _ = svmysql.Insert(d, gameId) | ||
| 27 | + } | ||
| 28 | + return | ||
| 29 | +} | ||
| 30 | + | ||
| 31 | +// LoadData 获取数据 外部接口 | ||
| 32 | +func LoadData(gameId string, uid int64, config *configs.RoomRankConfig) (d *DataRoomRank) { | ||
| 33 | + configId := config.Id | ||
| 34 | + d = _LoadData(gameId, uid) | ||
| 35 | + // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 | ||
| 36 | + if configId != 0 && | ||
| 37 | + configId != d.ActivityId { | ||
| 38 | + | ||
| 39 | + d.ActivityId = configId | ||
| 40 | + | ||
| 41 | + SaveData(gameId, d) | ||
| 42 | + } | ||
| 43 | + return | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +// GetInfo 活动信息 | ||
| 47 | +func GetInfo(gameData *DataRoomRank, conf *configs.RoomRankConfig) models.RoomRankInfo { | ||
| 48 | + info := models.RoomRankInfo{} | ||
| 49 | + return info | ||
| 50 | +} |