From e6f7db6cca31e0aee8fa86d49f436bb38f8ca38e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 5 Feb 2026 19:00:32 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9E=B6=E6=9E=84=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91list=E8=AE=BE=E7=BD=AE=E5=AE=B9=E9=87=8F=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=8A=A8=E6=80=81=E6=89=A9=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/activity/activity_cfg.go | 26 +- src/server/conf/base/base_cfg.go | 32 ++- src/server/conf/card/card_cfg.go | 94 ++++--- src/server/conf/catnip/catnip_cfg.go | 23 +- src/server/conf/champship/champship_cfg.go | 10 +- src/server/conf/charge/charge_cfg.go | 66 ++++- src/server/conf/collect/collect_cfg.go | 5 + src/server/conf/daily_task/daily_task_cfg.go | 37 ++- src/server/conf/decorate/decorate_cfg.go | 2 +- src/server/conf/item/Item_cfg.go | 4 +- src/server/conf/merge_data/merge_data_cfg.go | 58 ++-- .../conf/start_merge/start_merge_cfg.go | 2 +- src/server/game/GameLogic.go | 1 - src/server/game/gm_handler.go | 2 +- src/server/game/log_mgr.go | 260 ------------------ src/server/game/mod/activity/activity.go | 6 +- src/server/game/mod/activity/activity_gift.go | 2 +- src/server/game/mod/race/race.go | 2 +- .../game/mod/seven_login/seven_login_func.go | 6 +- src/server/game/player_data.go | 5 +- src/server/game/register_network_func.go | 15 +- src/server/game/server_mod.go | 7 - src/server/gamedata/config_struct.go | 45 --- src/server/gamedata/reader.go | 212 +++++++------- src/server/gamedata/util.go | 15 - src/server/go.mod | 11 +- src/server/go.sum | 24 -- src/server/middleware/kafka/kafka.go | 23 -- 28 files changed, 373 insertions(+), 622 deletions(-) delete mode 100644 src/server/game/log_mgr.go delete mode 100644 src/server/gamedata/config_struct.go delete mode 100644 src/server/gamedata/util.go delete mode 100644 src/server/middleware/kafka/kafka.go diff --git a/src/server/conf/activity/activity_cfg.go b/src/server/conf/activity/activity_cfg.go index b6edf150..9625334e 100644 --- a/src/server/conf/activity/activity_cfg.go +++ b/src/server/conf/activity/activity_cfg.go @@ -23,7 +23,8 @@ func init() { func GetActivityGiftId(chargeId int) int { data, err := gamedata.GetData(CFG_ACTIVITY_GIFT) if err != nil { - log.Debug("GetActivityGift err:%v", err) + log.Debug("GetActivityGiftId err:%v", err) + return 0 } for _, v := range data { ChargeId := gamedata.GetIntValue(v, "ChargeId") @@ -34,10 +35,11 @@ func GetActivityGiftId(chargeId int) int { return 0 } -func GetAcitivityGiftItems(chargeId int) []*item.Item { +func GetActivityGiftItems(chargeId int) []*item.Item { data, err := gamedata.GetData(CFG_ACTIVITY_GIFT) if err != nil { - log.Debug("GetAcitivityGiftItems err:%v", err) + log.Debug("GetActivityGiftItems err:%v", err) + return nil } for _, v := range data { ChargeId := gamedata.GetIntValue(v, "ChargeId") @@ -53,9 +55,10 @@ func GetActivityList() []*gamedata.ActivityData { data, err := gamedata.GetData(CFG_ACTIVITY) if err != nil { log.Debug("GetActivityList err:%v", err) + return nil } Now := GoUtil.Now() - var List []*gamedata.ActivityData + List := make([]*gamedata.ActivityData, 0, len(data)) for k, v := range data { StartTimeStr := gamedata.GetStringValue(v, "StartTime") @@ -63,7 +66,11 @@ func GetActivityList() []*gamedata.ActivityData { StartTime := GoUtil.ParseTime(StartTimeStr) EndTime := GoUtil.ParseTime(EndTimeStr) if Now >= StartTime && Now <= EndTime { - Id, _ := strconv.Atoi(k) + Id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetActivityList parse id err:%v, key:%s", err, k) + continue + } Type := gamedata.GetIntValue(v, "Type") Name := gamedata.GetStringValue(v, "Name") Title := gamedata.GetStringValue(v, "Title") @@ -84,10 +91,11 @@ func GetActivityList() []*gamedata.ActivityData { return List } -func GetAcitivityRewardItems(ActId int) []*item.Item { +func GetActivityRewardItems(ActId int) []*item.Item { data, err := gamedata.GetData(CFG_ACTIVITY_GIFT) if err != nil { - log.Debug("GetAcitivityGiftItems err:%v", err) + log.Debug("GetActivityRewardItems err:%v", err) + return nil } for _, v := range data { ChargeId := gamedata.GetIntValue(v, "ChargeId") @@ -104,8 +112,10 @@ func GetActivityTitle(ActId int) (string, string) { data, err := gamedata.GetDataByIntKey(CFG_ACTIVITY, ActId) if err != nil { log.Debug("GetActivityTitle err:%v", err) + return "", "" } - return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title")), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title")) + title := gamedata.GetStringValue(data, "Title") + return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, title), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, title) } func GetActivityRecycleMail(ActId int) (string, string, string) { diff --git a/src/server/conf/base/base_cfg.go b/src/server/conf/base/base_cfg.go index d3b796bb..1a520299 100644 --- a/src/server/conf/base/base_cfg.go +++ b/src/server/conf/base/base_cfg.go @@ -12,8 +12,9 @@ const ( ) const ( - ENERGY_SHOP_MUL = "energy_shop_mul" - ENERGY_CFG = "BaseEnergy" + ENERGY_SHOP_MUL = "energy_shop_mul" + ENERGY_CFG = "BaseEnergy" + MAX_ENERGY_LEVEL = 999 // 最大能量等级上限 ) func init() { @@ -27,17 +28,28 @@ func GetEnergyByMul(T int) float64 { log.Debug("GetEnergyByMul err:%v", err) return 0 } - d := data["Value"].(map[string]interface{}) - if len(d) == 0 { + + valueData, ok := data["Value"] + if !ok { + log.Debug("GetEnergyByMul: Value field not found") return 0 } + + d, ok := valueData.(map[string]interface{}) + if !ok || len(d) == 0 { + log.Debug("GetEnergyByMul: Value is not a valid map") + return 0 + } + T = min(T, len(d)) T1 := strconv.Itoa(T) if v, ok := d[T1]; ok { - return v.(float64) - } else { - return 0 + if floatVal, ok := v.(float64); ok { + return floatVal + } + log.Debug("GetEnergyByMul: value is not float64, key=%s", T1) } + return 0 } func GetFriendReplyReward() []*item.Item { @@ -51,13 +63,14 @@ func GetFriendReplyReward() []*item.Item { func GetMaxEnergyMul(Lv int, Energy int) int { Mul := 0 - for i := 1; i < 999; i++ { + for i := 1; i <= MAX_ENERGY_LEVEL; i++ { data, err := gamedata.GetDataByIntKey(ENERGY_CFG, i) if err != nil { break } UnlockLv := gamedata.GetIntValue(data, "UnlockLv") - if Lv < UnlockLv || Energy < gamedata.GetIntValue(data, "NeedEnergy") { + needEnergy := gamedata.GetIntValue(data, "NeedEnergy") + if Lv < UnlockLv || Energy < needEnergy { break } Mul = i - 1 @@ -68,6 +81,7 @@ func GetMaxEnergyMul(Lv int, Energy int) int { func GetLimitEnergyMul(Lv int) int { data, err := gamedata.GetDataByIntKey(ENERGY_CFG, Lv+1) if err != nil { + log.Debug("GetLimitEnergyMul err:%v, Lv=%d", err, Lv) return 0 } return gamedata.GetIntValue(data, "Limit") diff --git a/src/server/conf/card/card_cfg.go b/src/server/conf/card/card_cfg.go index a3f221db..661d1ed9 100644 --- a/src/server/conf/card/card_cfg.go +++ b/src/server/conf/card/card_cfg.go @@ -28,14 +28,19 @@ func init() { func GetAllCollectReward() []*item.Item { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "all_collect_reward") if err != nil { - log.Debug("GetAllCollectReward data not found") + log.Debug("GetAllCollectReward err:%v", err) + return nil } - return item.ParseItem(data["Value"]) + if value, ok := data["Value"]; ok { + return item.ParseItem(value) + } + return nil } func GetStarById(Id int) int { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id) if err != nil { - log.Debug("GetStarById data not found") + log.Debug("GetStarById err:%v, Id=%d", err, Id) + return 0 } return gamedata.GetIntValue(data, "Star") } @@ -43,7 +48,8 @@ func GetStarById(Id int) int { func GetRoundById(Id int) int { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id) if err != nil { - log.Debug("GetRoundById data not found") + log.Debug("GetRoundById err:%v, Id=%d", err, Id) + return 0 } return gamedata.GetIntValue(data, "Round") } @@ -51,31 +57,31 @@ func GetRoundById(Id int) int { // 获取开启卡包获得的卡牌数量 func GetPackRewardCnt(Star int) int { data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) - if err != nil { - log.Debug("GetPackRewardCnt data not found") + log.Debug("GetPackRewardCnt err:%v, Star=%d", err, Star) + return 0 } - return gamedata.GetIntValue(data, "RewardCnt") } -// 获取开启开包比得x星卡 +// 获取开启开包必得x星卡 func GetPackMustHave(Star int) int { data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) if err != nil { - log.Debug("GetPackMustHave data not found") + log.Debug("GetPackMustHave err:%v, Star=%d", err, Star) + return 0 } - return gamedata.GetIntValue(data, "MustHave") } // 根据星级获取卡牌列表 func GetCardListByStar(Round, Star, IsGold int) []int { - var CardList []int data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { - log.Debug("GetCardListByStar data not found") + log.Debug("GetCardListByStar err:%v", err) + return nil } + CardList := make([]int, 0, len(data)/10) for k, v := range data { Extra := gamedata.GetIntValue(v, "Round") if Round < Extra { @@ -84,7 +90,11 @@ func GetCardListByStar(Round, Star, IsGold int) []int { vStar := gamedata.GetIntValue(v, "Star") isGold := gamedata.GetIntValue(v, "IsGold") if vStar == Star && IsGold == isGold { - id, _ := strconv.Atoi(k) + id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetCardListByStar parse id err:%v, key=%s", err, k) + continue + } CardList = append(CardList, id) } } @@ -93,15 +103,15 @@ func GetCardListByStar(Round, Star, IsGold int) []int { // 获取随机卡牌 func GetRandListByStar(Star int) map[int]int { - var randList []int data, err := gamedata.GetDataByIntKey(CARD_PACK_CFG_NAME, Star) if err != nil { - log.Debug("GetRandListByStar data not found") + log.Debug("GetRandListByStar err:%v, Star=%d", err, Star) + return nil } r1 := gamedata.GetStringValue(data, "RandRate") r2 := strings.Split(r1, ",") - randList = GoUtil.SliceStringToInt(r2) - r := make(map[int]int) + randList := GoUtil.SliceStringToInt(r2) + r := make(map[int]int, len(randList)) for k, v := range randList { r[k+1] = v } @@ -125,7 +135,8 @@ func GetCollectReward(Color int) ([]*item.Item, int) { func GetExchangeCfg(Id int) (int, []*item.Item) { data, err := gamedata.GetDataByIntKey(CARD_EXCHANGE_CFG, Id) if err != nil { - log.Debug("GetExchangeCfg data not found") + log.Debug("GetExchangeCfg err:%v, Id=%d", err, Id) + return 0, nil } CostStar := gamedata.GetIntValue(data, "CostStar") itemList := gamedata.GetItemList(data, "Item") @@ -136,14 +147,18 @@ func GetExchangeCfg(Id int) (int, []*item.Item) { func GetCardListByColor(Id int) []int { data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { - log.Debug("GetCardListByColor data not found") - return []int{} + log.Debug("GetCardListByColor err:%v, Id=%d", err, Id) + return nil } - var r []int + r := make([]int, 0, len(data)/5) for k, v := range data { color := gamedata.GetIntValue(v, "PictureAlbum") if color == Id { - k1, _ := strconv.Atoi(k) + k1, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetCardListByColor parse id err:%v, key=%s", err, k) + continue + } r = append(r, k1) } } @@ -154,16 +169,20 @@ func GetCardListByColor(Id int) []int { func GetAllCardId(Round int) []int { data, err := gamedata.GetData(CARD_DETAIL_CFG_NAME) if err != nil { - log.Debug("GetCardListByColor data not found") - return []int{} + log.Debug("GetAllCardId err:%v, Round=%d", err, Round) + return nil } - var r []int + r := make([]int, 0, len(data)) for k, v := range data { Extra := gamedata.GetIntValue(v, "Round") if Round < Extra { continue } - k1, _ := strconv.Atoi(k) + k1, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetAllCardId parse id err:%v, key=%s", err, k) + continue + } r = append(r, k1) } return r @@ -172,7 +191,8 @@ func GetAllCardId(Round int) []int { func CheckCardIsGold(Id int) bool { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, Id) if err != nil { - log.Debug("CheckCardIsGold data not found") + log.Debug("CheckCardIsGold err:%v, Id=%d", err, Id) + return false } return gamedata.GetIntValue(data, "IsGold") == 1 } @@ -180,7 +200,8 @@ func CheckCardIsGold(Id int) bool { func GetCardDuration() int64 { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "duration") if err != nil { - log.Debug("GetCardDuration data not found") + log.Debug("GetCardDuration err:%v", err) + return 0 } return int64(gamedata.GetIntValue(data, "Value")) } @@ -188,7 +209,8 @@ func GetCardDuration() int64 { func GetExTimes() int { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "exchange_times") if err != nil { - log.Debug("GetExTimes data not found") + log.Debug("GetExTimes err:%v", err) + return 0 } return gamedata.GetIntValue(data, "Value") } @@ -196,7 +218,8 @@ func GetExTimes() int { func GetReqTimes() int { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "request_times") if err != nil { - log.Debug("GetReqTimes data not found") + log.Debug("GetReqTimes err:%v", err) + return 0 } return gamedata.GetIntValue(data, "Value") } @@ -204,7 +227,8 @@ func GetReqTimes() int { func GetItemIdByCardId(CardId int) int { data, err := gamedata.GetDataByIntKey(CARD_DETAIL_CFG_NAME, CardId) if err != nil { - log.Debug("GetItemIdByCardId data not found") + log.Debug("GetItemIdByCardId err:%v, CardId=%d", err, CardId) + return 0 } return gamedata.GetIntValue(data, "ItemId") } @@ -212,7 +236,11 @@ func GetItemIdByCardId(CardId int) int { func GetSeasonFirstReward() []*item.Item { data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "season_first") if err != nil { - log.Debug("GetSeasonFirstReward data not found") + log.Debug("GetSeasonFirstReward err:%v", err) + return nil } - return item.ParseItem(data["Value"]) + if value, ok := data["Value"]; ok { + return item.ParseItem(value) + } + return nil } diff --git a/src/server/conf/catnip/catnip_cfg.go b/src/server/conf/catnip/catnip_cfg.go index d60b89d3..05b02770 100644 --- a/src/server/conf/catnip/catnip_cfg.go +++ b/src/server/conf/catnip/catnip_cfg.go @@ -4,6 +4,7 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -29,6 +30,7 @@ func init() { func GetGameNum(Id int) int { data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) if err != nil { + log.Debug("GetGameNum err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "PassNum") @@ -38,6 +40,7 @@ func GetGameMaxProgress(Id int) int { TemplateId := GetTemplateId(Id) data, err := gamedata.GetData(CATNIP_GAME_CFG_NAME) if err != nil { + log.Debug("GetGameMaxProgress err:%v, Id=%d", err, Id) return 0 } MaxProgress := 0 @@ -53,10 +56,11 @@ func GetGameMaxProgress(Id int) int { func GetJackpotItem(Mul int) (int, []*item.Item, int, int) { data, err := gamedata.GetData(CATNIP_JACKPOT_CFG_NAME) if err != nil { + log.Debug("GetJackpotItem err:%v, Mul=%d", err, Mul) return 0, nil, 0, 0 } JackpotType := GetJackpotType(Mul) - r := make(map[int]int) + r := make(map[int]int, len(data)) for k, v := range data { if gamedata.GetIntValue(v, "Type") == JackpotType { r[GoUtil.Int(k)] = 1 @@ -68,6 +72,7 @@ func GetJackpotItem(Mul int) (int, []*item.Item, int, int) { } itemData, err := gamedata.GetDataByIntKey(CATNIP_JACKPOT_CFG_NAME, Id) if err != nil { + log.Debug("GetJackpotItem get itemData err:%v, Id=%d", err, Id) return 0, nil, 0, 0 } return Id, gamedata.GetItemList(itemData, "Items"), gamedata.GetIntValue(itemData, "Growth"), gamedata.GetIntValue(itemData, "FriendItems") @@ -76,6 +81,7 @@ func GetJackpotItem(Mul int) (int, []*item.Item, int, int) { func GetJackpotType(Mul int) int { data, err := gamedata.GetDataByIntKey(CATNIP_MULTIPLIER_CFG_NAME, Mul) if err != nil { + log.Debug("GetJackpotType err:%v, Mul=%d", err, Mul) return 0 } R := map[int]int{ @@ -89,6 +95,7 @@ func GetJackpotType(Mul int) int { func GetTemplateId(Id int) int { data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) if err != nil { + log.Debug("GetTemplateId err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Template") @@ -98,15 +105,16 @@ func GetProgressReward(Id int, Rewards []int, Progress int) ([]*item.Item, []int TemplateId := GetTemplateId(Id) data, err := gamedata.GetData(CATNIP_GAME_CFG_NAME) if err != nil { + log.Debug("GetProgressReward err:%v, Id=%d", err, Id) return nil, nil } - Items := []*item.Item{} - Ids := []int{} + Items := make([]*item.Item, 0, len(data)) + Ids := make([]int, 0, len(data)) for k, v := range data { - Id := GoUtil.Int(k) - if !GoUtil.InArray(Id, Rewards) && gamedata.GetIntValue(v, "Need") < Progress && gamedata.GetIntValue(v, "Template") == TemplateId { + rewardId := GoUtil.Int(k) + if !GoUtil.InArray(rewardId, Rewards) && gamedata.GetIntValue(v, "Need") < Progress && gamedata.GetIntValue(v, "Template") == TemplateId { Items = append(Items, gamedata.GetItemList(v, "Items")...) - Ids = append(Ids, GoUtil.Int(k)) + Ids = append(Ids, rewardId) } } return Items, Ids @@ -116,6 +124,7 @@ func GetProgressNum(Id int) int { TemplateId := GetTemplateId(Id) data, err := gamedata.GetData(CATNIP_GAME_CFG_NAME) if err != nil { + log.Debug("GetProgressNum err:%v, Id=%d", err, Id) return 0 } Num := 0 @@ -130,6 +139,7 @@ func GetProgressNum(Id int) int { func GetItemCost(Id, Mul int) []*item.Item { data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) if err != nil { + log.Debug("GetItemCost err:%v, Id=%d", err, Id) return nil } return item.MutilItem(gamedata.GetItemList(data, "ItemCost"), Mul) @@ -138,6 +148,7 @@ func GetItemCost(Id, Mul int) []*item.Item { func GetGrandReward(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) if err != nil { + log.Debug("GetGrandReward err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "Reward") diff --git a/src/server/conf/champship/champship_cfg.go b/src/server/conf/champship/champship_cfg.go index 47211d3f..8e5a8902 100644 --- a/src/server/conf/champship/champship_cfg.go +++ b/src/server/conf/champship/champship_cfg.go @@ -4,6 +4,7 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -23,6 +24,7 @@ func init() { func GetGroupId(N int) int { data, err := gamedata.GetData(CFG_CHAMPSHIP_GROUP) if err != nil { + log.Debug("GetGroupId err:%v, N=%d", err, N) return 0 } for k, v := range data { @@ -36,6 +38,7 @@ func GetGroupId(N int) int { func GetChessScore(ChessLv int) int { data, err := gamedata.GetDataByIntKey(CFG_CHAMPSHIP_SCORE, ChessLv) if err != nil { + log.Debug("GetChessScore err:%v, ChessLv=%d", err, ChessLv) return 0 } return gamedata.GetIntValue(data, "Score") @@ -44,9 +47,10 @@ func GetChessScore(ChessLv int) int { func GetReward(Reward, Score int) (int, []*item.Item) { data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT) if err != nil { + log.Debug("GetReward err:%v, Reward=%d, Score=%d", err, Reward, Score) return Reward, nil } - r := make([]*item.Item, 0) + r := make([]*item.Item, 0, len(data)) NewReward := Reward for k, v := range data { Id := GoUtil.Int(k) @@ -65,6 +69,7 @@ func GetReward(Reward, Score int) (int, []*item.Item) { func GetRewardItems(Reward int) ([]*item.Item, int) { data, err := gamedata.GetDataByIntKey(CFG_CHAMPSHIP_JACKPOT, Reward) if err != nil { + log.Debug("GetRewardItems err:%v, Reward=%d", err, Reward) return nil, 0 } return gamedata.GetItemList(data, "Items"), gamedata.GetIntValue(data, "Score") @@ -73,6 +78,7 @@ func GetRewardItems(Reward int) ([]*item.Item, int) { func GetRewardTotalScore(Reward int) int { data, err := gamedata.GetDataByIntKey(CFG_CHAMPSHIP_JACKPOT, Reward) if err != nil { + log.Debug("GetRewardTotalScore err:%v, Reward=%d", err, Reward) return 0 } return gamedata.GetIntValue(data, "Total") @@ -81,6 +87,7 @@ func GetRewardTotalScore(Reward int) int { func GetRankReward(Rank int) []*item.Item { data, err := gamedata.GetData(CFG_CHAMPSHIP_RANK) if err != nil { + log.Debug("GetRankReward err:%v, Rank=%d", err, Rank) return nil } for _, v := range data { @@ -94,6 +101,7 @@ func GetRankReward(Rank int) []*item.Item { func GetMaxRewardId() int { data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT) if err != nil { + log.Debug("GetMaxRewardId err:%v", err) return 0 } MaxId := 0 diff --git a/src/server/conf/charge/charge_cfg.go b/src/server/conf/charge/charge_cfg.go index 5dbfb109..1751895d 100644 --- a/src/server/conf/charge/charge_cfg.go +++ b/src/server/conf/charge/charge_cfg.go @@ -4,6 +4,7 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" "sort" "strings" ) @@ -37,6 +38,7 @@ func init() { func GetADReward(ChargeId int) ([]*item.Item, int) { data, err := gamedata.GetData(CFG_CHARGE_AD) if err != nil { + log.Debug("GetADReward err:%v, ChargeId=%d", err, ChargeId) return nil, 0 } for _, v := range data { @@ -50,6 +52,7 @@ func GetADReward(ChargeId int) ([]*item.Item, int) { func GetWeeklyDiscountDay() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "weekly_discount_day") if err != nil { + log.Debug("GetWeeklyDiscountDay err:%v", err) return -1 } return gamedata.GetIntValue(data, "Value") @@ -58,6 +61,7 @@ func GetWeeklyDiscountDay() int { func GetMoneyCharge(ChargeId int) float64 { data, err := gamedata.GetDataByIntKey(CFG_CHARGE, ChargeId) if err != nil { + log.Debug("GetMoneyCharge err:%v, ChargeId=%d", err, ChargeId) return 0 } return gamedata.GetFloatValue(data, "Money") @@ -66,6 +70,7 @@ func GetMoneyCharge(ChargeId int) float64 { func GetDiamondShopReward(ChargeId int) []*item.Item { data, err := gamedata.GetData(CFG_DIAMOND_SHOP) if err != nil { + log.Debug("GetDiamondShopReward err:%v, ChargeId=%d", err, ChargeId) return nil } for _, v := range data { @@ -79,6 +84,7 @@ func GetDiamondShopReward(ChargeId int) []*item.Item { func GetEnergyShopId(ChargeId int) int { data, err := gamedata.GetData(CFG_ENERGY_SHOP) if err != nil { + log.Debug("GetEnergyShopId err:%v, ChargeId=%d", err, ChargeId) return 0 } for k, v := range data { @@ -92,11 +98,24 @@ func GetEnergyShopId(ChargeId int) int { func GetWeeklyInfo(Pos int) (int, int) { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "weekly_chess_shop") if err != nil { + log.Debug("GetWeeklyInfo err:%v, Pos=%d", err, Pos) + return 0, 0 + } + valueData, ok := data["Value"] + if !ok { + log.Debug("GetWeeklyInfo: Value field not found") + return 0, 0 + } + r, ok := valueData.([]interface{}) + if !ok { + log.Debug("GetWeeklyInfo: Value is not []interface{}") return 0, 0 } - r := data["Value"].([]interface{}) for _, v := range r { - v1 := v.(map[string]interface{}) + v1, ok := v.(map[string]interface{}) + if !ok { + continue + } Id := GoUtil.Int(v1["Id"]) if Id == Pos { return GoUtil.Int(v1["Discount"]), GoUtil.Int(v1["Limit"]) @@ -108,12 +127,25 @@ func GetWeeklyInfo(Pos int) (int, int) { func GetWeeklyInfoAll() map[int]gamedata.WeeklyDiscountInfo { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "weekly_chess_shop") if err != nil { + log.Debug("GetWeeklyInfoAll err:%v", err) return nil } - r := data["Value"].([]interface{}) - res := make(map[int]gamedata.WeeklyDiscountInfo) + valueData, ok := data["Value"] + if !ok { + log.Debug("GetWeeklyInfoAll: Value field not found") + return nil + } + r, ok := valueData.([]interface{}) + if !ok { + log.Debug("GetWeeklyInfoAll: Value is not []interface{}") + return nil + } + res := make(map[int]gamedata.WeeklyDiscountInfo, len(r)) for _, v := range r { - v1 := v.(map[string]interface{}) + v1, ok := v.(map[string]interface{}) + if !ok { + continue + } Id := GoUtil.Int(v1["Id"]) res[Id] = gamedata.WeeklyDiscountInfo{ Id: GoUtil.Int(v1["Id"]), @@ -127,6 +159,7 @@ func GetWeeklyInfoAll() map[int]gamedata.WeeklyDiscountInfo { func GetEnergyShopReward(ChargeId int, First bool) []*item.Item { data, err := gamedata.GetData(CFG_ENERGY_SHOP) if err != nil { + log.Debug("GetEnergyShopReward err:%v, ChargeId=%d", err, ChargeId) return nil } for _, v := range data { @@ -144,6 +177,7 @@ func GetEnergyShopReward(ChargeId int, First bool) []*item.Item { func GetSpecialShopReward(ChargeId int) []*item.Item { data, err := gamedata.GetData(CFG_SEPCIAL_SHOP) if err != nil { + log.Debug("GetSpecialShopReward err:%v, ChargeId=%d", err, ChargeId) return nil } for _, v := range data { @@ -157,6 +191,7 @@ func GetSpecialShopReward(ChargeId int) []*item.Item { func GetSpecialShopType(ChargeId int) int { data, err := gamedata.GetData(CFG_SEPCIAL_SHOP) if err != nil { + log.Debug("GetSpecialShopType err:%v, ChargeId=%d", err, ChargeId) return 0 } for _, v := range data { @@ -170,6 +205,7 @@ func GetSpecialShopType(ChargeId int) int { func GetFreeShopReward(ChargeId int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_FREE_SHOP, ChargeId) if err != nil { + log.Debug("GetFreeShopReward err:%v, ChargeId=%d", err, ChargeId) return nil } Item := gamedata.GetValue(data, "Items") @@ -183,6 +219,7 @@ func GetSpecialShopGrade(Money float64, Type int) int { } data, err := gamedata.GetData(CFG_SEPCIAL_SHOP) if err != nil { + log.Debug("GetSpecialShopGrade err:%v, Money=%.2f, Type=%d", err, Money, Type) return 0 } l := make([]grade, 0, len(data)) @@ -199,6 +236,10 @@ func GetSpecialShopGrade(Money float64, Type int) int { return l[i].money > l[j].money }) + if len(l) == 0 { + return 0 + } + for _, v := range l { if Money <= v.money { return v.id @@ -210,6 +251,7 @@ func GetSpecialShopGrade(Money float64, Type int) int { func GetUnlockShopLv() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "shop_unlock_lv") if err != nil { + log.Debug("GetUnlockShopLv err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -218,6 +260,7 @@ func GetUnlockShopLv() int { func GetSpecialShopCount() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "special_shop_count") if err != nil { + log.Debug("GetSpecialShopCount err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -226,6 +269,7 @@ func GetSpecialShopCount() int { func GetAdChargeId() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "ad_charge_id") if err != nil { + log.Debug("GetAdChargeId err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -234,6 +278,7 @@ func GetAdChargeId() int { func GetPiggyDuration() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "pig_duration") if err != nil { + log.Debug("GetPiggyDuration err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -242,6 +287,7 @@ func GetPiggyDuration() int { func GetPiggyMaxDia() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "pig_max_diamond") if err != nil { + log.Debug("GetPiggyMaxDia err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -250,6 +296,7 @@ func GetPiggyMaxDia() int { func GetPiggyRandDia() (int, int) { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "pig_diamond_rand") if err != nil { + log.Debug("GetPiggyRandDia err:%v", err) return 0, 0 } str := gamedata.GetStringValue(data, "Value") @@ -263,6 +310,7 @@ func GetPiggyRandDia() (int, int) { func GetPiggyBankChargeId() int { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "pig_charge_id") if err != nil { + log.Debug("GetPiggyBankChargeId err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -271,6 +319,7 @@ func GetPiggyBankChargeId() int { func GetGiftReward(ChargeId int) []*item.Item { data, err := gamedata.GetData(CFG_CHARGE_GIFT) if err != nil { + log.Debug("GetGiftReward err:%v, ChargeId=%d", err, ChargeId) return nil } for _, v := range data { @@ -284,6 +333,7 @@ func GetGiftReward(ChargeId int) []*item.Item { func GetGiftLimit(ChargeId int) int { data, err := gamedata.GetData(CFG_CHARGE_GIFT) if err != nil { + log.Debug("GetGiftLimit err:%v, ChargeId=%d", err, ChargeId) return 0 } for _, v := range data { @@ -296,6 +346,7 @@ func GetGiftLimit(ChargeId int) int { func GetGiftId(ChargeId int) int { data, err := gamedata.GetData(CFG_CHARGE_GIFT) if err != nil { + log.Debug("GetGiftId err:%v, ChargeId=%d", err, ChargeId) return 0 } for k, v := range data { @@ -309,6 +360,7 @@ func GetGiftId(ChargeId int) int { func GetChargeInfo(ChargeId int) (float64, string) { data, err := gamedata.GetDataByIntKey(CFG_CHARGE, ChargeId) if err != nil { + log.Debug("GetChargeInfo err:%v, ChargeId=%d", err, ChargeId) return 0, "" } return gamedata.GetFloatValue(data, "Money"), gamedata.GetStringValue(data, "Unit") @@ -317,6 +369,7 @@ func GetChargeInfo(ChargeId int) (float64, string) { func GetProduceName(ChargeId int) string { data, err := gamedata.GetDataByIntKey(CFG_CHARGE, ChargeId) if err != nil { + log.Debug("GetProduceName err:%v, ChargeId=%d", err, ChargeId) return "" } return gamedata.GetStringValue(data, "Remark") @@ -325,6 +378,7 @@ func GetProduceName(ChargeId int) string { func GetWishCount(ItemId int) int { data, err := gamedata.GetDataByIntKey(CFG_CHARGE_WISH, ItemId) if err != nil { + log.Debug("GetWishCount err:%v, ItemId=%d", err, ItemId) return 0 } return gamedata.GetIntValue(data, "Wish") @@ -333,6 +387,7 @@ func GetWishCount(ItemId int) int { func GetPetCoinShopReward(ChargeId int) []*item.Item { data, err := gamedata.GetData(CFG_CHARGE_PETCOIN) if err != nil { + log.Debug("GetPetCoinShopReward err:%v, ChargeId=%d", err, ChargeId) return nil } for _, v := range data { @@ -346,6 +401,7 @@ func GetPetCoinShopReward(ChargeId int) []*item.Item { func GetWeeklyDiscountStartEnd() (int64, int64) { data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "weekly_discount_time") if err != nil { + log.Debug("GetWeeklyDiscountStartEnd err:%v", err) return 0, 0 } str := gamedata.GetStringValue(data, "Value") diff --git a/src/server/conf/collect/collect_cfg.go b/src/server/conf/collect/collect_cfg.go index 2edc9532..0394fff4 100644 --- a/src/server/conf/collect/collect_cfg.go +++ b/src/server/conf/collect/collect_cfg.go @@ -4,6 +4,7 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -19,6 +20,7 @@ func init() { func GetJackpotId() []int { data, err := gamedata.GetData(CFG_COLLECT_JACKPOT) if err != nil { + log.Debug("GetJackpotId err:%v", err) return nil } ret := make([]int, 0, len(data)) @@ -31,6 +33,7 @@ func GetJackpotId() []int { func GetJackpotItems(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_COLLECT_JACKPOT, Id) if err != nil { + log.Debug("GetJackpotItems err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "Items") @@ -39,6 +42,7 @@ func GetJackpotItems(Id int) []*item.Item { func GetRewardNeed(Id int) int { data, err := gamedata.GetDataByIntKey(CFG_COLLECT, Id) if err != nil { + log.Debug("GetRewardNeed err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Need") @@ -47,6 +51,7 @@ func GetRewardNeed(Id int) int { func GetRewardType(Id int) int { data, err := gamedata.GetDataByIntKey(CFG_COLLECT, Id) if err != nil { + log.Debug("GetRewardType err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Type") diff --git a/src/server/conf/daily_task/daily_task_cfg.go b/src/server/conf/daily_task/daily_task_cfg.go index e9c44a4f..7348bf67 100644 --- a/src/server/conf/daily_task/daily_task_cfg.go +++ b/src/server/conf/daily_task/daily_task_cfg.go @@ -23,16 +23,20 @@ func init() { // 获取任务列表 func GetTaskList(Lv int) map[int]string { - r := make(map[int]string) data, err := gamedata.GetData(DAILY_TASK) if err != nil { - log.Debug("GetTaskList get data nil") - return r + log.Debug("GetTaskList err:%v, Lv=%d", err, Lv) + return nil } + r := make(map[int]string, len(data)) for k, v := range data { lv := gamedata.GetIntValue(v, "Lv") if Lv >= lv { - k1, _ := strconv.Atoi(k) + k1, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetTaskList parse id err:%v, key=%s", err, k) + continue + } r[k1] = gamedata.GetStringValue(v, "Task") } } @@ -42,12 +46,16 @@ func GetTaskList(Lv int) map[int]string { func GetTaskActiveId() []int { data, err := gamedata.GetData(DAILY_TASK_ACTIVE) if err != nil { - log.Debug("GetTaskActiveId get data nil") - return []int{} + log.Debug("GetTaskActiveId err:%v", err) + return nil } r := make([]int, 0, len(data)) for k := range data { - Id, _ := strconv.Atoi(k) + Id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetTaskActiveId parse id err:%v, key=%s", err, k) + continue + } r = append(r, Id) } return r @@ -56,7 +64,7 @@ func GetTaskActiveId() []int { func GetTaskActiveById(Id int) int { data, err := gamedata.GetDataByIntKey(DAILY_TASK_ACTIVE, Id) if err != nil { - log.Debug("GetTaskActiveById get data nil") + log.Debug("GetTaskActiveById err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Num") @@ -68,16 +76,19 @@ type Jackpot struct { } func GetTaskWeekJackpot() map[int]Jackpot { - r := make(map[int]Jackpot) - data, err := gamedata.GetData(DAILY_TASK_JACKPOT) if err != nil { - log.Debug("GetTaskWeekJackpot get data nil") - return r + log.Debug("GetTaskWeekJackpot err:%v", err) + return nil } + r := make(map[int]Jackpot, len(data)) for k, v := range data { - Id, _ := strconv.Atoi(k) + Id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetTaskWeekJackpot parse id err:%v, key=%s", err, k) + continue + } isCard := gamedata.GetIntValue(v, "CardPack") Item := item.ParseItem(gamedata.GetValue(v, "Items")) r[Id] = Jackpot{ diff --git a/src/server/conf/decorate/decorate_cfg.go b/src/server/conf/decorate/decorate_cfg.go index e4d2bcab..11766583 100644 --- a/src/server/conf/decorate/decorate_cfg.go +++ b/src/server/conf/decorate/decorate_cfg.go @@ -42,7 +42,7 @@ func GetAreaId(id int) int { log.Debug("DecorateCost GetAreaId id:%v not found", id) return 0 } - return gamedata.ParseInt(value["AreaId"]) + return gamedata.GetIntValue(value, "AreaId") } func GetNextAreaId(AreaId, SortId int) int { diff --git a/src/server/conf/item/Item_cfg.go b/src/server/conf/item/Item_cfg.go index 4ed5b607..c3f21ad6 100644 --- a/src/server/conf/item/Item_cfg.go +++ b/src/server/conf/item/Item_cfg.go @@ -21,7 +21,7 @@ func GetItemType(Id int) int { log.Debug("ItemCfg GetItemType Id:%v not found", Id) return 0 } - return gamedata.ParseInt(data["IType"]) + return gamedata.GetIntValue(data, "IType") } func GetItemEffect(Id int) int { @@ -30,7 +30,7 @@ func GetItemEffect(Id int) int { log.Debug("ItemCfg GetItemEffect Id:%v not found", Id) return 0 } - return gamedata.ParseInt(data["Effect"]) + return gamedata.GetIntValue(data, "Effect") } func GetItemEffectList(Id int) []int { diff --git a/src/server/conf/merge_data/merge_data_cfg.go b/src/server/conf/merge_data/merge_data_cfg.go index d5af0dba..7b728919 100644 --- a/src/server/conf/merge_data/merge_data_cfg.go +++ b/src/server/conf/merge_data/merge_data_cfg.go @@ -67,18 +67,18 @@ func GetOne(Id int) (*gamedata.MergeDataRecord, error) { return &gamedata.MergeDataRecord{}, errors.New("not found") } return &gamedata.MergeDataRecord{ - Id: gamedata.ParseInt(data["Id"]), - Lv: gamedata.ParseInt(data["Lv"]), - MaxLv: gamedata.ParseInt(data["MaxLv"]), - SellType: gamedata.ParseString(data["SellType"]), - SellNum: gamedata.ParseInt(data["SellNum"]), - SellDiamond: gamedata.ParseInt(data["SellDiamond"]), - Color: gamedata.ParseString(data["Color"]), - Star: gamedata.ParseInt(data["Star"]), - Type: gamedata.ParseString(data["Type"]), - Emit_Product: gamedata.ParseString(data["Emit_Product"]), - CoolTime: gamedata.ParseInt(data["CoolTime"]), - Emit_Type: gamedata.ParseString(data["Emit_Type"]), + Id: gamedata.GetIntValue(data, "Id"), + Lv: gamedata.GetIntValue(data, "Lv"), + MaxLv: gamedata.GetIntValue(data, "MaxLv"), + SellType: gamedata.GetStringValue(data, "SellType"), + SellNum: gamedata.GetIntValue(data, "SellNum"), + SellDiamond: gamedata.GetIntValue(data, "SellDiamond"), + Color: gamedata.GetStringValue(data, "Color"), + Star: gamedata.GetIntValue(data, "Star"), + Type: gamedata.GetStringValue(data, "Type"), + Emit_Product: gamedata.GetStringValue(data, "Emit_Product"), + CoolTime: gamedata.GetIntValue(data, "CoolTime"), + Emit_Type: gamedata.GetStringValue(data, "Emit_Type"), }, nil } @@ -89,7 +89,7 @@ func GetStarById(Id int) int { log.Debug("MergeDataCfg GetOne Id:%v not found", Id) return 0 } - return gamedata.ParseInt(data["Star"]) + return gamedata.GetIntValue(data, "Star") } func GetNameById(Id int) string { @@ -130,7 +130,7 @@ func GetLvById(Id int) int { //log.Debug("GetLvById GetOne Id:%v not found", Id) return 0 } - return gamedata.ParseInt(data["Lv"]) + return gamedata.GetIntValue(data, "Lv") } // 根据Id获取棋子最大等级 @@ -140,7 +140,7 @@ func GetMaxLvById(Id int) int { // log.Debug("GetMaxLvById GetOne Id:%v not found", Id) return 0 } - return gamedata.ParseInt(data["MaxLv"]) + return gamedata.GetIntValue(data, "MaxLv") } // 根据Id获取棋子最大等级 @@ -150,7 +150,7 @@ func GetMaxLvByColor(Color string) int { if err != nil { return 0 } - return gamedata.ParseInt(data["MaxLv"]) + return gamedata.GetIntValue(data, "MaxLv") } // 根据Id获取发射器最小等级 @@ -204,7 +204,7 @@ func GetTypeById(Id int) string { log.Debug("GetTypeById GetOne Id:%v not found", Id) return "" } - return gamedata.ParseString(data["Type"]) + return gamedata.GetStringValue(data, "Type") } // 根据Id获取棋子类型 @@ -214,7 +214,7 @@ func GetColorById(Id int) string { log.Debug("GetColorById GetOne Id:%v not found", Id) return "" } - return gamedata.ParseString(data["Color"]) + return gamedata.GetStringValue(data, "Color") } // 根据Id获取棋子类型 @@ -234,7 +234,8 @@ func GetEmitProduceType(Id int) []string { log.Debug("GetEmitProduceType GetOne Id:%v not found", Id) return []string{} } - return strings.Split(gamedata.ParseString(data["Emit_Product"]), ",") + + return strings.Split(gamedata.GetStringValue(data, "Emit_Product"), ",") } // 根据Id获取发射器产出类型 @@ -244,7 +245,8 @@ func GetEmitProduceChessType(Id int) []string { //log.Debug("GetEmitProduceChessType GetOne Id:%v not found", Id) return []string{} } - value := gamedata.ParseString(data["Product_Type"]) + + value := gamedata.GetStringValue(data, "Product_Type") if value == "" { return []string{} } @@ -258,7 +260,8 @@ func GetEmitId(Id int) string { // log.Debug("GetEmitId GetOne Id:%v not found", Id) return "" } - return gamedata.ParseString(data["Emit_ID"]) + + return gamedata.GetStringValue(data, "Emit_ID") } func GetAllId() []int { @@ -279,7 +282,8 @@ func GetEmitType(Id int) string { log.Debug("GetEmitType GetOne Id:%v not found", Id) return "" } - return gamedata.ParseString(data["Emit_Type"]) + + return gamedata.GetStringValue(data, "Emit_Type") } func GetEmitN(EmitSeries string) int { @@ -298,7 +302,8 @@ func GetConst(Key string) string { log.Debug("GetConst GetOne Id:%s not found", Key) return "" } - return gamedata.ParseString(data["Value"]) + + return gamedata.GetStringValue(data, "Value") } // 获取常量 @@ -308,7 +313,7 @@ func GetConstInt(Key string) int { log.Debug("GetConst GetOne Id:%s not found", Key) return 0 } - return gamedata.ParseInt(data["Value"]) + return gamedata.GetIntValue(data, "Value") } func GetExtraEmitId() map[string]struct{} { @@ -339,7 +344,8 @@ func GetSourceChestItem() []*item.Item { log.Debug("GetSourceChestItem GetOne not found") return nil } - Str := gamedata.ParseString(data["Value"]) + + Str := gamedata.GetStringValue(data, "Value") A1 := strings.Split(Str, "|") var r []*item.Item if len(A1) < 2 { @@ -363,7 +369,7 @@ func GetHighSourceChestItem() []*item.Item { log.Debug("GetHighSourceChestItem GetOne not found") return nil } - Str := gamedata.ParseString(data["Value"]) + Str := gamedata.GetStringValue(data, "Value") A1 := strings.Split(Str, "|") var r []*item.Item if len(A1) < 2 { diff --git a/src/server/conf/start_merge/start_merge_cfg.go b/src/server/conf/start_merge/start_merge_cfg.go index c301f5a3..252f5389 100644 --- a/src/server/conf/start_merge/start_merge_cfg.go +++ b/src/server/conf/start_merge/start_merge_cfg.go @@ -18,7 +18,7 @@ func GetStartChessList() []int { var ChessList []int for _, v := range data { v1 := v.(map[string]interface{}) - ChessList = append(ChessList, gamedata.ParseInt(v1["MergeId"])) + ChessList = append(ChessList, gamedata.GetIntValue(v1, "MergeId")) } return ChessList } diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 14a8cb78..ecfe93db 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -847,7 +847,6 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏 // #region 充值 - RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志 RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号 RegisterMsgProcessFunc("ReqShippingOrder", ReqShippingOrder) // 获取订单号 RegisterMsgProcessFunc("ReqChargeReceive", ReqChargeReceive) // 礼包回复邮件 diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 4550d31a..0cd1a614 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -134,7 +134,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.PlayMod.getSevenLoginMod().Active = num case "pay": ChargeId, _ := strconv.Atoi(arg[1]) - player.Kafka("pay", map[string]interface{}{ + player.TeLog("pay", map[string]interface{}{ "ProductId": ChargeId, "AppId": conf.Server.AppID, "Uid": player.M_DwUin, diff --git a/src/server/game/log_mgr.go b/src/server/game/log_mgr.go deleted file mode 100644 index 825bedfc..00000000 --- a/src/server/game/log_mgr.go +++ /dev/null @@ -1,260 +0,0 @@ -package game - -import ( - "encoding/json" - "runtime" - kafkaMiddleware "server/middleware/kafka" - "server/pkg/github.com/name5566/leaf/log" - "sync" - "sync/atomic" - "time" -) - -const ( - Login_log = 1 - LoginOut_log = 2 - Event_log = 3 -) -const ( - PLAYROOM_LOST = "playroom_lost" - // 增大缓冲:针对 ~1000 条/s,保留足够秒数的缓冲(可按需调整) - LOG_LENGTH = 100000 - WORKER_COUNT = 500 -) - -type LogMgr struct { - // 将切片改为带缓冲通道 - L chan *Log - Lock sync.Mutex - wg sync.WaitGroup - stopOnce sync.Once - closing bool -} - -type Log struct { - Uid int64 - AppId int - ServerId int - EventName string - Param map[string]interface{} - TimeStamp int64 -} - -func (L *LogMgr) InitManager() { - // 初始化通道 - L.L = make(chan *Log, LOG_LENGTH) - - // 动态协程池参数 - maxWorkers := WORKER_COUNT - if cpuWorkers := runtime.NumCPU() * 2; cpuWorkers > maxWorkers { - maxWorkers = cpuWorkers - } - minWorkers := 100 - idleTimeout := 500 * time.Millisecond - - var activeWorkers int32 - - // worker 启动函数 - spawnWorker := func() { - L.wg.Add(1) - atomic.AddInt32(&activeWorkers, 1) - go func() { - defer L.wg.Done() - defer atomic.AddInt32(&activeWorkers, -1) - - for { - // 首先阻塞等待一个任务(若 channel 关闭则退出) - v, ok := <-L.L - if !ok { - return - } - // 处理消息(与原来逻辑一致) - value, _ := json.Marshal(v) - if kafkaMiddleware.KafkaMod == nil { - // 尝试非阻塞重入,否则丢弃最旧再试一次 - select { - case L.L <- v: - default: - select { - case <-L.L: - default: - } - select { - case L.L <- v: - default: - } - } - time.Sleep(10 * time.Millisecond) - } else { - if err := kafkaMiddleware.SendMsg([]byte(v.EventName), value); err != nil { - log.Debug("kafka log send err:%s", err.Error()) - select { - case L.L <- v: - default: - select { - case <-L.L: - default: - } - select { - case L.L <- v: - default: - } - } - time.Sleep(10 * time.Millisecond) - } - } - - // 快速循环处理后续可用任务,若超时则退出该 worker(回收) - timer := time.NewTimer(idleTimeout) - for { - select { - case v, ok := <-L.L: - if !ok { - if !timer.Stop() { - <-timer.C - } - return - } - // 处理消息 - value, _ := json.Marshal(v) - if kafkaMiddleware.KafkaMod == nil { - select { - case L.L <- v: - default: - select { - case <-L.L: - default: - } - select { - case L.L <- v: - default: - } - } - time.Sleep(10 * time.Millisecond) - } else { - if err := kafkaMiddleware.SendMsg([]byte(v.EventName), value); err != nil { - log.Debug("kafka log send err:%s", err.Error()) - select { - case L.L <- v: - default: - select { - case <-L.L: - default: - } - select { - case L.L <- v: - default: - } - } - time.Sleep(10 * time.Millisecond) - } - } - // 重置定时器以继续快速处理 - if !timer.Stop() { - <-timer.C - } - timer.Reset(idleTimeout) - case <-timer.C: - timer.Stop() - // 空闲超时,退出该 worker - return - } - } - } - }() - } - - // 启动初始最小 worker 数量 - for i := 0; i < minWorkers; i++ { - spawnWorker() - } - - // 监督器:动态根据队列长度扩展 worker,但不超过 maxWorkers - go func() { - ticker := time.NewTicker(200 * time.Millisecond) - defer ticker.Stop() - for range ticker.C { - L.Lock.Lock() - closing := L.closing - L.Lock.Unlock() - if closing { - return - } - backlog := len(L.L) - active := int(atomic.LoadInt32(&activeWorkers)) - if backlog > active && active < maxWorkers { - toSpawn := backlog - active - remain := maxWorkers - active - if toSpawn > remain { - toSpawn = remain - } - for i := 0; i < toSpawn; i++ { - spawnWorker() - } - } - } - }() -} - -func (L *LogMgr) AddLog(logs *Log) { - return - // 复制结构体和 Param map,避免并发修改导致 json.Marshal 时 panic - copyLog := *logs - - // 安全地复制 map,使用 defer recover 防止并发迭代时的 panic - if logs.Param != nil { - func() { - defer func() { - if r := recover(); r != nil { - // 发生 panic 时使用空 map - log.Debug("AddLog: concurrent map read/write detected, using empty map") - copyLog.Param = make(map[string]interface{}) - } - }() - newParam := make(map[string]interface{}, len(logs.Param)) - for k, v := range logs.Param { - newParam[k] = v - } - copyLog.Param = newParam - }() - } - - // 如果已经开始关闭,直接丢弃 - L.Lock.Lock() - if L.closing { - L.Lock.Unlock() - return - } - // 非阻塞入队:若通道满则先丢弃最旧一条再入队,避免阻塞调用者 - select { - case L.L <- ©Log: - L.Lock.Unlock() - return - default: - // 丢弃最旧一条以腾出空间(若有) - select { - case <-L.L: - default: - } - // 再尝试入队一次 - select { - case L.L <- ©Log: - default: - // 放不下就直接丢弃 - } - L.Lock.Unlock() - } -} - -func (L *LogMgr) Close() { - L.stopOnce.Do(func() { - L.Lock.Lock() - // 标记为正在关闭,阻止后续入队 - L.closing = true - // 关闭通道,通知所有 worker 退出(workers 会消费完所有已入队的消息) - close(L.L) - L.Lock.Unlock() - // 等待所有 worker 处理完 - L.wg.Wait() - }) -} diff --git a/src/server/game/mod/activity/activity.go b/src/server/game/mod/activity/activity.go index 87e0dac0..d9a28039 100644 --- a/src/server/game/mod/activity/activity.go +++ b/src/server/game/mod/activity/activity.go @@ -70,10 +70,6 @@ func (a *Activity) getGIftVar(key int) *Gift { return Var.(*Gift) } -func (a *Activity) setGiftVar(key int, Var *Gift) { - a.SetVar(key, Var) -} - func (a *Activity) GetActivityStatus(data *gamedata.ActivityData) int { switch data.AType { case ACT_ATYPE_NORMAL: @@ -117,5 +113,5 @@ func (a *Activity) GetReward(ActId int) ([]*item.Item, error) { } Var.Reward = true Var.RewardTime = GoUtil.Now() - return activityCfg.GetAcitivityRewardItems(ActId), nil + return activityCfg.GetActivityRewardItems(ActId), nil } diff --git a/src/server/game/mod/activity/activity_gift.go b/src/server/game/mod/activity/activity_gift.go index 3d0c174b..1b173dd7 100644 --- a/src/server/game/mod/activity/activity_gift.go +++ b/src/server/game/mod/activity/activity_gift.go @@ -15,5 +15,5 @@ func (a *Activity) Fire(Id int) ([]*item.Item, error) { } Var.Buy = true Var.Time = GoUtil.Now() - return activityCfg.GetAcitivityGiftItems(Id), nil + return activityCfg.GetActivityGiftItems(Id), nil } diff --git a/src/server/game/mod/race/race.go b/src/server/game/mod/race/race.go index 2a5b1628..f1b3e3cf 100644 --- a/src/server/game/mod/race/race.go +++ b/src/server/game/mod/race/race.go @@ -108,7 +108,7 @@ func (r *RaceMod) GetReward() ([]*item.Item, error) { } func randOpponents(OpponentNum int) []*Opponent { - Opponent := make([]*Opponent, 0) + Opponent := make([]*Opponent, 0, OpponentNum-1) names := randnameCfg.GetRandNames(OpponentNum) for i := 1; i < OpponentNum; i++ { Opponent = append(Opponent, randOpponent(i, names[i])) diff --git a/src/server/game/mod/seven_login/seven_login_func.go b/src/server/game/mod/seven_login/seven_login_func.go index f86a0b6f..a861918a 100644 --- a/src/server/game/mod/seven_login/seven_login_func.go +++ b/src/server/game/mod/seven_login/seven_login_func.go @@ -50,7 +50,7 @@ func randReward(RewardData *gamedata.SevenLoginRewardData, LastType int, jackpot Item1 := []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Num))} // 奖励2 - NewJackpot := make([]*gamedata.SevenLoginJackpotData, 0) + NewJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot)) for _, v := range jackpot { if v.Diamond <= RemainDiamond && v.Type != LastType && v.Type != JACKPOT_CARD_TYPE { NewJackpot = append(NewJackpot, v) @@ -65,7 +65,7 @@ func randReward(RewardData *gamedata.SevenLoginRewardData, LastType int, jackpot RemainDiamond -= 5 } if GoUtil.InArray(RewardData.Id, CardPackIds) { - CardJackpot := make([]*gamedata.SevenLoginJackpotData, 0) + CardJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot)) for _, v := range jackpot { if v.Diamond <= RemainDiamond && v.Type == JACKPOT_CARD_TYPE { CardJackpot = append(CardJackpot, v) @@ -88,7 +88,7 @@ func randReward(RewardData *gamedata.SevenLoginRewardData, LastType int, jackpot Item3 := make([]*item.Item, 0) if RewardData.RewardNum == 3 { RemainDiamond += 5 - NewJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0) + NewJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot)) for _, v := range jackpot { if v.Diamond <= RemainDiamond && v.Type != LastType && v.Type != Item2Type { NewJackpot3 = append(NewJackpot3, v) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index ed699c53..1fe85f8c 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1081,10 +1081,6 @@ func (p *Player) TeLog(Type string, Param map[string]interface{}) { go ga.GAlogEvent(Type, BaseMod.Account, "", Param) } -func (p *Player) Kafka(Type string, Param map[string]interface{}) { - -} - // 初始化活动 func (p *Player) initAcitivity() { p.activity = make(map[int]*ActivityInfo) @@ -1198,6 +1194,7 @@ func (p *Player) GetIp() string { return p.GetAgent().RemoteAddr().String() } +// TODO func_exec_add 需要优化成令牌桶算法,目前的实现可能存在性能问题 func (p *Player) func_exec_add() error { now := time.Now().Unix() diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 3cfa631e..9cce5ad1 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2959,17 +2959,6 @@ func ReqCreateOrderSn(player *Player, buf []byte) error { // 订单发货 func ReqShippingOrder(player *Player, buf []byte) error { return nil - req := &msg.ReqShippingOrder{} - err := proto.Unmarshal(buf, req) - if err != nil { - return err - } - - go player.TriggerShippingOrder(req) - player.PushClientRes(&msg.ResShippingOrder{ - Code: msg.RES_CODE_SUCCESS, - }) - return nil } // 锦标赛 @@ -4122,7 +4111,7 @@ func ReqPlayroomFlip(player *Player, buf []byte) error { }) return err } - player.Kafka("playroom_flip", map[string]interface{}{ + player.TeLog("playroom_flip", map[string]interface{}{ "CardID": CardId, "Id": req.Id, }) @@ -4676,7 +4665,7 @@ func ReqKafkaLog(player *Player, buf []byte) error { if err != nil { return err } - player.Kafka(req.Event, map[string]interface{}{ + player.TeLog(req.Event, map[string]interface{}{ "From": "Client", "data": req.Data, }) diff --git a/src/server/game/server_mod.go b/src/server/game/server_mod.go index 69e0496f..cddcee79 100644 --- a/src/server/game/server_mod.go +++ b/src/server/game/server_mod.go @@ -1,7 +1,6 @@ package game import ( - "bytes" "context" "database/sql" "fmt" @@ -14,12 +13,6 @@ import ( "time" ) -var serverBufferPool = sync.Pool{ - New: func() interface{} { - return bytes.NewBuffer(make([]byte, 0, 24*1024*1024)) - }, -} - const ( FRIEND_MGR_KEY = "FRIEND_MGR" RANK_MGR_KEY = "RANK_MGR" diff --git a/src/server/gamedata/config_struct.go b/src/server/gamedata/config_struct.go deleted file mode 100644 index 14af12c0..00000000 --- a/src/server/gamedata/config_struct.go +++ /dev/null @@ -1,45 +0,0 @@ -package gamedata - -import ( - - // "io/ioutil" - - "server/pkg/github.com/name5566/leaf/recordfile" -) - -var G_AllConfigs = map[string]interface{}{} - -type ConfigData struct { - data map[string]interface{} -} - -func (cd *ConfigData) GetData() map[string]interface{} { - return cd.data -} - -func (cd *ConfigData) SetData(data map[string]interface{}) { - cd.data = data -} - -var G_AllConfigsData = map[string]*recordfile.RecordFile{} -var G_AllConfigsJsonData = map[string]*ConfigData{} - -func InitReadAllCfg() { - // 遍历 Map - for k, v := range G_AllConfigs { - rd := readRfNew(v, k) - G_AllConfigsData[k] = rd - } - -} - -func GetConfigByName(name string) *recordfile.RecordFile { - _, ok := G_AllConfigsData[name] - if ok { - return G_AllConfigsData[name] - } else { - rd := readRfNew(G_AllConfigs[name], name) - G_AllConfigsData[name] = rd - } - return G_AllConfigsData[name] -} diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index cbf505f7..6b8ff484 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -3,75 +3,61 @@ package gamedata import ( "encoding/json" "errors" - "fmt" "io" "os" "path/filepath" "strconv" + "sync" "server/conf" "server/game/mod/item" "server/pkg/github.com/name5566/leaf/log" - "server/pkg/github.com/name5566/leaf/recordfile" - - "github.com/fsnotify/fsnotify" ) -var watcher *fsnotify.Watcher -var ConfPath = "./gamedata/config/" +var ( + ConfPath = "./gamedata/config/" + G_AllConfigs = map[string]interface{}{} + G_AllConfigsJsonData = map[string]*ConfigData{} + configMutex sync.RWMutex // 全局配置锁 +) + +type ConfigData struct { + data map[string]interface{} + mu sync.RWMutex +} + +func (cd *ConfigData) GetData() map[string]interface{} { + cd.mu.RLock() + defer cd.mu.RUnlock() + return cd.data +} + +func (cd *ConfigData) SetData(data map[string]interface{}) { + cd.mu.Lock() + defer cd.mu.Unlock() + cd.data = data +} func init() { if conf.Server.GameConfPath != "" { ConfPath = conf.Server.GameConfPath } - watcher, _ = fsnotify.NewWatcher() - watcher.Add(ConfPath + "reload") - go func() { - for { - select { - case event, ok := <-watcher.Events: - if !ok { - return - } - if event.Op&fsnotify.Write == fsnotify.Write || event.Op&fsnotify.Create == fsnotify.Create || event.Op&fsnotify.Rename == fsnotify.Rename { - for k := range G_AllConfigsJsonData { - InitCfg(k) - log.Debug("配置已重新加载:%s", k) - } - - } - case err, ok := <-watcher.Errors: - if !ok { - return - } - fmt.Println("错误:", err) - } - } - }() - } func Reload() { + configMutex.RLock() + keys := make([]string, 0, len(G_AllConfigsJsonData)) for k := range G_AllConfigsJsonData { + keys = append(keys, k) + } + configMutex.RUnlock() + + for _, k := range keys { InitCfg(k) log.Debug("配置已重新加载:%s", k) } } -func readRfNew(st interface{}, ralativePath string) *recordfile.RecordFile { - rf, err := recordfile.New(st) - if err != nil { - log.Fatal("%v", err) - } - fn := ralativePath + ".txt" - err = rf.Read(ConfPath + fn) - if err != nil { - log.Fatal("%v: %v", fn, err) - } - - return rf -} - func InitCfg(cfgname string) { // 读取文件内容 filePath := ConfPath + cfgname + ".json" @@ -101,49 +87,54 @@ func InitCfg(cfgname string) { log.Debug("config name:%s,反序列化失败:%v", cfgname, err) return } + // 直接使用data,无需多余拷贝 rf := new(ConfigData) - convertedData := make(map[string]interface{}) - for k, v := range data { - convertedData[k] = v - } - rf.SetData(convertedData) + rf.SetData(data) + + // 使用锁保护全局map + configMutex.Lock() G_AllConfigsJsonData[cfgname] = rf + configMutex.Unlock() +} + +// 提取公共的 map 检查逻辑 +func getMapValue(a interface{}, key string) (interface{}, bool) { + if a == nil { + return nil, false + } + if m, ok := a.(map[string]interface{}); ok { + if v, ok := m[key]; ok { + return v, true + } + } + return nil, false } func GetValue(a interface{}, key string) interface{} { - if a == nil { - return nil - } - if v, ok := a.(map[string]interface{})[key]; ok { - return v - } - return nil + v, _ := getMapValue(a, key) + return v } func GetIntValue(a interface{}, key string) int { - if a == nil { + v, ok := getMapValue(a, key) + if !ok || v == nil { return 0 } - if v, ok := a.(map[string]interface{})[key]; ok { - if v == nil { - return 0 - } - return Int(v) - } - return 0 + return Int(v) } func GetIntSliceValue(a interface{}, key string) []int { - if a == nil { + v, ok := getMapValue(a, key) + if !ok || v == nil { return nil } - if v, ok := a.(map[string]interface{})[key]; ok { - if v == nil { - return nil - } - var r []int - for _, v := range v.([]interface{}) { - r = append(r, int(v.(float64))) + // 安全的类型断言,避免panic + if slice, ok := v.([]interface{}); ok { + r := make([]int, 0, len(slice)) // 预分配容量 + for _, item := range slice { + if num, ok := item.(float64); ok { + r = append(r, int(num)) + } } return r } @@ -151,68 +142,79 @@ func GetIntSliceValue(a interface{}, key string) []int { } func GetFloatValue(a interface{}, key string) float64 { - if a == nil { + v, ok := getMapValue(a, key) + if !ok || v == nil { return 0 } - if v, ok := a.(map[string]interface{})[key]; ok { - if v == nil { - return 0 - } - return v.(float64) + // 安全的类型断言 + if f, ok := v.(float64); ok { + return f } return 0 } func GetItemList(a interface{}, key string) []*item.Item { - if a == nil { + v, ok := getMapValue(a, key) + if !ok || v == nil { return nil } - if v, ok := a.(map[string]interface{})[key]; ok { - if v == nil { - return nil - } - return item.ParseItem(v) - } - return nil + return item.ParseItem(v) } func GetStringValue(a interface{}, key string) string { - if a == nil { + v, ok := getMapValue(a, key) + if !ok || v == nil { return "" } - if v, ok := a.(map[string]interface{})[key]; ok { - if v == nil { - return "" - } - return String(v) - } - return "" + return String(v) } func GetData(cfgname string) (map[string]interface{}, error) { - if v, ok := G_AllConfigsJsonData[cfgname]; ok { + configMutex.RLock() + v, ok := G_AllConfigsJsonData[cfgname] + configMutex.RUnlock() + + if ok { return v.GetData(), nil } - return make(map[string]interface{}), errors.New("not found") + return nil, errors.New("config not found: " + cfgname) } func GetDataByKey(cfgname, key string) (map[string]interface{}, error) { - if v, ok := G_AllConfigsJsonData[cfgname]; ok { - if v, ok := v.GetData()[key]; ok { - return v.(map[string]interface{}), nil + configMutex.RLock() + v, ok := G_AllConfigsJsonData[cfgname] + configMutex.RUnlock() + + if ok { + data := v.GetData() + if val, ok := data[key]; ok { + // 安全的类型断言 + if result, ok := val.(map[string]interface{}); ok { + return result, nil + } + return nil, errors.New("invalid data type for key: " + key) } } - return make(map[string]interface{}), errors.New("not found") + return nil, errors.New("config or key not found") } func GetDataByIntKey(cfgname string, key int) (map[string]interface{}, error) { keyStr := strconv.Itoa(key) - if v, ok := G_AllConfigsJsonData[cfgname]; ok { - if v, ok := v.GetData()[keyStr]; ok { - return v.(map[string]interface{}), nil + configMutex.RLock() + v, ok := G_AllConfigsJsonData[cfgname] + configMutex.RUnlock() + + if ok { + data := v.GetData() + if val, ok := data[keyStr]; ok { + // 安全的类型断言 + if result, ok := val.(map[string]interface{}); ok { + return result, nil + } + return nil, errors.New("invalid data type for key: " + keyStr) } } - return make(map[string]interface{}), errors.New("not found") + return nil, errors.New("config or key not found") } func Int(a interface{}) int { diff --git a/src/server/gamedata/util.go b/src/server/gamedata/util.go deleted file mode 100644 index 89fb11f0..00000000 --- a/src/server/gamedata/util.go +++ /dev/null @@ -1,15 +0,0 @@ -package gamedata - -func ParseInt(value interface{}) int { - if value == nil { - return 0 - } - return int(value.(float64)) -} - -func ParseString(value interface{}) string { - if value == nil { - return "" - } - return value.(string) -} diff --git a/src/server/go.mod b/src/server/go.mod index 5dd700d0..750a18f5 100644 --- a/src/server/go.mod +++ b/src/server/go.mod @@ -15,7 +15,6 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/redis/go-redis/v9 v9.6.1 github.com/robfig/cron/v3 v3.0.1 - github.com/segmentio/kafka-go v0.4.47 github.com/shirou/gopsutil v3.21.11+incompatible google.golang.org/protobuf v1.36.2 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 @@ -35,10 +34,8 @@ require ( github.com/clbanning/mxj/v2 v2.7.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.15.9 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect @@ -49,17 +46,13 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect ) -require ( - github.com/fsnotify/fsnotify v1.8.0 // direct - golang.org/x/sys v0.29.0 // indirect -) +require golang.org/x/sys v0.29.0 // indirect require ( filippo.io/edwards25519 v1.1.0 // indirect - github.com/ThinkingDataAnalytics/go-sdk/v2 v2.0.3 // github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/google/uuid v1.6.0 // indirect + github.com/google/uuid v1.6.0 github.com/tuyou/galog v0.0.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/src/server/go.sum b/src/server/go.sum index f3a9147f..ac81bed5 100644 --- a/src/server/go.sum +++ b/src/server/go.sum @@ -2,8 +2,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/ThinkingDataAnalytics/go-sdk/v2 v2.0.3 h1:+2h2cOKzZgP8DmtuvkmUhOs5WfyseFTc0KLNR3EU2eA= -github.com/ThinkingDataAnalytics/go-sdk/v2 v2.0.3/go.mod h1:uhiHUKG8fMwf4Ou3186EBBagFrBdAsAA5GHiLMWQN2A= github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 h1:eIf+iGJxdU4U9ypaUfbtOWCsZSbTb8AUHvyPrxu6mAA= github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do24zMOGGqYVWgw0s9NtiylnJglOeEB5UJo= github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc= @@ -95,8 +93,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cu github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= @@ -119,7 +115,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -132,8 +127,6 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -151,8 +144,6 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -160,8 +151,6 @@ github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0 github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= -github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -169,11 +158,8 @@ github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYl github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= @@ -183,12 +169,6 @@ github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZ github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY= github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY= github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE= -github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= -github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -290,15 +270,12 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -345,7 +322,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/src/server/middleware/kafka/kafka.go b/src/server/middleware/kafka/kafka.go deleted file mode 100644 index 12f0b103..00000000 --- a/src/server/middleware/kafka/kafka.go +++ /dev/null @@ -1,23 +0,0 @@ -package kafkaMiddleware - -import ( - "context" - - "github.com/segmentio/kafka-go" -) - -var KafkaMod *kafka.Writer - -func SendMsg(key, value []byte) error { - if KafkaMod == nil { - return nil - } - err := KafkaMod.WriteMessages(context.Background(), kafka.Message{ - Key: key, - Value: value, - }) - if err != nil { - //log.Debug("WriteMessages err: %v", err) - } - return err -}