configs.go 2.04 KB
package ht_cardholder

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

// Init 初始化
func Init() {

	NewRegistryConfigs()

	TryUpdateConfigs()

	//DumpConfigs()
}

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

// LoadConfigs 读取mysql配置
func LoadConfigs() {
	// 读取最后修改时间
	configsUpdate := make(map[int64]CardActivityUpdateConfig)
	{
		conf := make([]CardActivityUpdateConfig, 0)
		sql := fmt.Sprintf("select id,update_time from %s", configTable)
		err := umysql.FindSql(constd.MYSQL_MERGECONFIG, sql, &conf)
		if err != nil {
			lxalilog.Errors(err, sql, configGameId)
			return
		}
		for _, config := range conf {
			configsUpdate[config.Id] = config
		}
		fmt.Println(configsUpdate)
	}
	// 如果条目不存在 从活动列表中删除
	for k, _ := range Registry.CardActivityConfigRaws {
		_, ok := configsUpdate[k]
		if !ok {
			delete(Registry.CardActivityConfigRaws, k)
			delete(Registry.CardActivityConfig, k)
		}
	}
	for k, confUpdate := range configsUpdate {
		needUpdate := false
		confOld, ok := Registry.CardActivityConfigRaws[k]
		// 如果条目不存在 或者 修改时间不一致 需要更新
		if !ok {
			needUpdate = true
		} else {
			if confOld.UpdateTime != confUpdate.UpdateTime {
				needUpdate = true
			}
		}
		// 更新数据
		if needUpdate {
			logs.Debug("__________________尝试更新活动条目ID:", k)
			confNew := CardActivityConfigRaw{}
			sql := fmt.Sprintf("select * from %s where id=%d limit 1", configTable, k)
			err := umysql.FindOneSql(constd.MYSQL_MERGECONFIG, sql, &confNew)
			if err != nil {
				lxalilog.Errors(err, sql, configGameId, k)
				continue
			}
			logs.Debug("__________________更新活动条目ID:", confNew.Id)
			Registry.CardActivityConfigRaws[confNew.Id] = confNew
			Registry.Decode(confNew)
		}
	}

}

func DumpConfigs() {

	fmt.Println(CardConfigs)
	fmt.Println(CardholderConfigs)
	fmt.Println(NormalCardStarSequences)
	fmt.Println(CardSequenceConfigs)
}