config-load.go 1.99 KB
package cardholder

import (
	"apigame/service/constd"
	"apigame/util/util-lx/lxalilog"
	"apigame/util/utmysql"
	"fmt"
	"github.com/astaxie/beego/logs"
)

// Init 初始化
func Init() {

	NewConfigs()

	TryUpdateConfigs()
}

// TryUpdateConfigs 尝试更新配置表
func TryUpdateConfigs() {
	LoadConfigs()
}

// LoadConfigs 读取mysql配置
func LoadConfigs() {
	for _, gameId := range constd.GameListCardHolder {
		LoadConfig(gameId)
	}
}

// TryUpdateConfig 尝试更新配置表
func TryUpdateConfig(gameId string) (config *CardActivityConfig, has bool) {
	LoadConfig(gameId)
	return GetConfig(gameId)
}

// 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)
		if err != nil {
			lxalilog.Errors(err, sql, gameId)
			return
		}
		for _, config := range conf {
			if config.Status != 0 {
				configOpen = config
				continue
			}
		}
		fmt.Println(configOpen)
	}
	// 没有开放的活动
	if configOpen.Id == 0 {
		return
	}
	// 判断是否需要更新
	needUpdate := false
	configOld, has := GetConfig(gameId)
	if has {
		if configOpen.Id != configOld.Raw.Id || configOpen.UpdateTime != configOld.Raw.UpdateTime {
			needUpdate = true
		}
	} else {
		needUpdate = true
	}
	// 更新数据
	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)
		if err != nil {
			lxalilog.Errors(err, sql, gameId, configOpen.Id)
			return
		}
		logs.Debug("__________________更新活动条目ID:", confNew.Id)
		ConfigDecode(gameId, &confNew)
	}
}