diff --git a/logic/controller/item_buy.go b/logic/controller/item_buy.go index 6074318fe..2226a3790 100644 --- a/logic/controller/item_buy.go +++ b/logic/controller/item_buy.go @@ -99,8 +99,8 @@ func (h Controller) BuyGoldItem(data *item.C2S_GOLD_BUY_PRODUCT, player *player. } config := service.NewTalkConfigService().GetCache(int(data.ProductID)) if config != nil { - _, is := player.Service.Talk.Cheak(0, int(data.ProductID)) - if !is { + _, ok := player.Service.Talk.Cheak(0, int(data.ProductID)) + if !ok { return nil, errorcode.ErrorCodes.ErrExceedStock } } @@ -115,7 +115,7 @@ func (h Controller) BuyGoldItem(data *item.C2S_GOLD_BUY_PRODUCT, player *player. // } var usegold uint64 - var addSuccess bool + switch data.Type { case 0: if pro.SeerdouPrice == 0 { @@ -139,28 +139,30 @@ func (h Controller) BuyGoldItem(data *item.C2S_GOLD_BUY_PRODUCT, player *player. } - addSuccess = player.ItemAdd(pro.ProductID, data.Count) - if addSuccess { + switch data.Type { + case 0: - switch data.Type { - case 0: + if player.ItemAdd(pro.ProductID, data.Count) { player.Info.Coins -= int64(usegold) - - case 1: - r := player.Service.Talk.Update(int(pro.ProductID), int(data.Count)) - if !r { - return nil, errorcode.ErrorCodes.ErrGoldBeanSingleLimit - } - player.User.UpdateGold(player.Info.UserID, -int64(usegold)) - //购买成功,执行记录 - } - player.SendPackCmd(1105, item.GoldOnlineRemainOutboundInfo{ - Coin: player.Info.Coins, - GoldNumber: uint32(player.User.GetGold(uint(player.Info.UserID))), - }) + case 1: + r := player.Service.Talk.Update(int(pro.ProductID), int(data.Count)) + if !r { + return nil, errorcode.ErrorCodes.ErrGoldBeanSingleLimit + } + + if player.ItemAdd(pro.ProductID, data.Count) { + player.User.UpdateGold(player.Info.UserID, -int64(usegold)) + } + + //购买成功,执行记录 + } + player.SendPackCmd(1105, item.GoldOnlineRemainOutboundInfo{ + Coin: player.Info.Coins, + GoldNumber: uint32(player.User.GetGold(uint(player.Info.UserID))), + }) return nil, -1 } diff --git a/modules/config/model/user_talk.go b/modules/config/model/user_talk.go index e249be288..9c19b35a2 100644 --- a/modules/config/model/user_talk.go +++ b/modules/config/model/user_talk.go @@ -15,6 +15,8 @@ type MineralCollectionConfig struct { // MapID 矿产所在地图ID MapID uint32 `gorm:"column:map_id;not null;index:idx_mineral_collection_config_map_id;comment:矿产所在地图ID" json:"map_id"` //uint32 `gorm:"not null;default:0;comment:'限购类型( 0-每日限购 1-每周限购 2-每月限购)'" json:"quota_type" description:"限购类型"` + Limit uint32 `gorm:"column:limit;default:0;comment:限制数量" json:"limit"` + Type uint32 `gorm:"column:type;not null;index:idx_mineral_collection_config_type;comment:类型" json:"type"` // DailyCollectCount 每日可采集次数 diff --git a/modules/player/service/talk.go b/modules/player/service/talk.go index 0e5a6b735..155c9ce27 100644 --- a/modules/player/service/talk.go +++ b/modules/player/service/talk.go @@ -46,7 +46,7 @@ func (s *TalkService) Cheak(mapid uint32, flag int) (int, bool) { if c == nil { return 0, false //没在地图 } - switch c.Type { + switch c.Limit { case 0: if !utils.IsToday(talks.LastResetTime) {