diff --git a/dto/dto.go b/dto/dto.go index d830631..16a92b5 100644 --- a/dto/dto.go +++ b/dto/dto.go @@ -6,12 +6,12 @@ import ( "gorm.io/gorm" ) -func InitTable(db *gorm.DB, gameId string, tb IDtoData) { +func InitTable(db *gorm.DB, tb IDtoData, gameId string) { tableName := tb.GetTableName(gameId) utdto.InitTable(db, tb, tableName) } -func Insert(db *gorm.DB, gameId string, data IDtoData) (err error) { +func Insert(db *gorm.DB, data IDtoData, gameId string) (err error) { result := utdto.Insert(db, data, data.GetTableName(gameId)) err = result.Error if err != nil { @@ -21,7 +21,7 @@ func Insert(db *gorm.DB, gameId string, data IDtoData) (err error) { return } -func Update(db *gorm.DB, gameId string, data IDtoData) (err error) { +func Update(db *gorm.DB, data IDtoData, gameId string) (err error) { result := utdto.Update(db, data, data.GetTableName(gameId)) err = result.Error if err != nil { @@ -31,7 +31,7 @@ func Update(db *gorm.DB, gameId string, data IDtoData) (err error) { return } -func Save(db *gorm.DB, gameId string, data IDtoData) (err error) { +func Save(db *gorm.DB, data IDtoData, gameId string) (err error) { result := utdto.Save(db, data, data.GetTableName(gameId)) err = result.Error if err != nil { @@ -41,7 +41,7 @@ func Save(db *gorm.DB, gameId string, data IDtoData) (err error) { return } -func First(db *gorm.DB, gameId string, data IDtoData) (has bool, err error) { +func First(db *gorm.DB, data IDtoData, gameId string) (has bool, err error) { result := utdto.First(db, data, data.GetTableName(gameId)) has = result.RowsAffected != 0 err = result.Error @@ -51,3 +51,14 @@ func First(db *gorm.DB, gameId string, data IDtoData) (has bool, err error) { } return } + +func Find(db *gorm.DB, data any, tableName string) (has bool, err error) { + result := utdto.Find(db, data, tableName) + has = result.RowsAffected != 0 + err = result.Error + if err != nil { + lxalilog.Errors(err, tableName) + return + } + return +} diff --git a/dto/init-dto.go b/dto/init-dto.go index e7eeb63..33cfe80 100644 --- a/dto/init-dto.go +++ b/dto/init-dto.go @@ -30,10 +30,10 @@ func InitDto() { // create table // 卡牌卡包 for _, gameId := range constd.GameListCardHolder { - InitTable(DbCommon, gameId, new(CardHolderData)) - InitTable(DbCommon, gameId, new(CardHolderRecordOpen)) - InitTable(DbCommon, gameId, new(CardHolderRecordRewardAlbum)) - InitTable(DbCommon, gameId, new(CardHolderRecordRewardRound)) + InitTable(DbCommon, new(CardHolderData), gameId) + InitTable(DbCommon, new(CardHolderRecordOpen), gameId) + InitTable(DbCommon, new(CardHolderRecordRewardAlbum), gameId) + InitTable(DbCommon, new(CardHolderRecordRewardRound), gameId) } } diff --git a/dto/inits.go b/dto/inits.go index 6affc4d..5a2717a 100644 --- a/dto/inits.go +++ b/dto/inits.go @@ -63,7 +63,7 @@ func Inits() (err error) { fmt.Println(appname + " dbs::" + conn.Name + " init success") } - //initAlilog(appname) + initAlilog(appname) //// 初始化数数打点 //_ = thinkingdata.InitThinkData() diff --git a/service/cardholder/config-load.go b/service/cardholder/config-load.go index 23ef778..ba9c258 100644 --- a/service/cardholder/config-load.go +++ b/service/cardholder/config-load.go @@ -1,11 +1,9 @@ package cardholder import ( + "apigame/dto" "apigame/service/constd" - "apigame/util/util-lx/lxalilog" - "apigame/util/utmysql" "fmt" - "github.com/astaxie/beego/logs" ) // Init 初始化 @@ -36,15 +34,12 @@ func TryUpdateConfig(gameId string) (config *CardActivityConfig, has bool) { // LoadConfig 读取mysql配置 func LoadConfig(gameId string) { - configTableName := constd.MYSQL_TABLE_S_CARDHOLDER_CONFIG + gameId // 找到当前开放的活动 configOpen := CardActivityUpdateConfig{Id: 0} { conf := make([]CardActivityUpdateConfig, 0) - sql := fmt.Sprintf("select id,status,update_time from %s", configTableName) - err := utmysql.FindSql(constd.MYSQL_MERGECONFIG, sql, &conf) + _, err := dto.Find(dto.DbConfig, &conf, new(CardActivityUpdateConfig).GetTableName(gameId)) if err != nil { - lxalilog.Errors(err, sql, gameId) return } for _, config := range conf { @@ -61,8 +56,8 @@ func LoadConfig(gameId string) { } // 判断是否需要更新 needUpdate := false - configOld, has := GetConfig(gameId) - if has { + configOld, hasConfigOld := GetConfig(gameId) + if hasConfigOld { if configOpen.Id != configOld.Raw.Id || configOpen.UpdateTime != configOld.Raw.UpdateTime { needUpdate = true } @@ -71,15 +66,14 @@ func LoadConfig(gameId string) { } // 更新数据 if needUpdate { - logs.Debug("__________________尝试更新活动条目ID:", configOpen.Id) - confNew := CardActivityConfigRaw{} - sql := fmt.Sprintf("select * from %s where id=%d limit 1", configTableName, configOpen.Id) - _, err := utmysql.FindOneSql(constd.MYSQL_MERGECONFIG, sql, &confNew) + confNew := &CardActivityConfigRaw{} + hasConfNew, err := dto.First(dto.DbConfig, confNew, gameId) if err != nil { - lxalilog.Errors(err, sql, gameId, configOpen.Id) return } - logs.Debug("__________________更新活动条目ID:", confNew.Id) - ConfigDecode(gameId, &confNew) + if !hasConfNew { + return + } + ConfigDecode(gameId, confNew) } } diff --git a/service/cardholder/config.go b/service/cardholder/config.go index 9cb8aae..e04aa9b 100644 --- a/service/cardholder/config.go +++ b/service/cardholder/config.go @@ -53,6 +53,14 @@ type CardActivityConfigRaw struct { UpdateTime int64 // 修改时间戳 } +func (d *CardActivityConfigRaw) TableName() string { + return utdto.MYSQL_TABLE_TEMPLATE +} + +func (d *CardActivityConfigRaw) GetTableName(gameId string) string { + return constd.MYSQL_TABLE_S_CARDHOLDER_CONFIG + gameId +} + // AlbumConfig 卡组表 type AlbumConfig struct { SetId int `json:"set_id"` // 卡组名 diff --git a/service/cardholder/handle.go b/service/cardholder/handle.go index c1f28b4..f21c3e9 100644 --- a/service/cardholder/handle.go +++ b/service/cardholder/handle.go @@ -22,6 +22,7 @@ func HandleGetConfig(req *models.ReqCardHolderGetConfig) (code string, rsp model rsp.PrepareTime = config.Raw.PreviewTime rsp.StartTime = config.Raw.StartTime rsp.EndTime = config.Raw.EndTime + rsp.OpenLevel = config.Raw.OpenLevel rsp.Config = config.Client diff --git a/service/cardholder/logic.go b/service/cardholder/logic.go index 1ed30dc..4f1dc4c 100644 --- a/service/cardholder/logic.go +++ b/service/cardholder/logic.go @@ -13,12 +13,12 @@ func SaveData(gameId string, d *dto.CardHolderData) { d.UpdateTime = lxtime.NowUninx() d.Encode() - dto.Save(dto.DbCommon, gameId, d) + dto.Save(dto.DbCommon, d, gameId) } func _LoadData(gameId string, uid int64) (d *dto.CardHolderData) { d = dto.NewCardHolderData(uid) - has, err := dto.First(dto.DbCommon, gameId, d) + has, err := dto.First(dto.DbCommon, d, gameId) if err != nil { return } @@ -26,7 +26,7 @@ func _LoadData(gameId string, uid int64) (d *dto.CardHolderData) { d.Decode() } else { d.Init(uid) - dto.Insert(dto.DbCommon, gameId, d) + dto.Insert(dto.DbCommon, d, gameId) } return } diff --git a/util/utdto/action.go b/util/utdto/action.go deleted file mode 100644 index 2e6e79a..0000000 --- a/util/utdto/action.go +++ /dev/null @@ -1,2 +0,0 @@ -package utdto - diff --git a/util/utdto/base.go b/util/utdto/base.go index de02fa7..e2f247b 100644 --- a/util/utdto/base.go +++ b/util/utdto/base.go @@ -35,3 +35,10 @@ func First(db *gorm.DB, value any, tableName string) *gorm.DB { sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) return db.Raw(sql, stmt.Vars...).Scan(value) } + +func Find(db *gorm.DB, value any, tableName string) *gorm.DB { + stmt := db.Session(&gorm.Session{DryRun: true}).Find(value).Statement + stmtSQL := stmt.SQL.String() + sql := strings.Replace(stmtSQL, MYSQL_TABLE_TEMPLATE, tableName, -1) + return db.Raw(sql, stmt.Vars...).Scan(value) +} -- libgit2 0.21.0