diff --git a/logic/controller/PET_FUSION.go b/logic/controller/PET_FUSION.go index 5897e85a..b3a66fcb 100644 --- a/logic/controller/PET_FUSION.go +++ b/logic/controller/PET_FUSION.go @@ -45,14 +45,14 @@ func (h Controller) PetFusion(data *pet.C2S_PetFusion, c *player.Player) (result natureId = int32(Auxpetinfo.Nature) } - resid := int(service.NewPetFusionService().Data(Mcatchpetinfo.ID, Auxpetinfo.ID, Mcatchpetinfo.Level+Auxpetinfo.Level)) + resid := int(service.PetFusionServiceS.Data(Mcatchpetinfo.ID, Auxpetinfo.ID, Mcatchpetinfo.Level+Auxpetinfo.Level)) if resid == 0 { //todo失败降低等级 return &pet.PetFusionInfo{}, 0 } - effect := int(service.NewPetFusionMaterialService().Data(data.Item1)) + effect := int(service.PetFusionMaterialServiceIns.Data(data.Item1)) dv1 := alpacadecimal.NewFromInt(2).Div(alpacadecimal.NewFromInt(3)).Mul(alpacadecimal.NewFromInt(int64(Mcatchpetinfo.Dv))) dv2 := alpacadecimal.NewFromInt(1).Div(alpacadecimal.NewFromInt(3)).Mul(alpacadecimal.NewFromInt(int64(Auxpetinfo.Dv))) dv := dv1.Add(dv2).Add(alpacadecimal.NewFromInt(1)).IntPart() diff --git a/logic/controller/fight_boss.go b/logic/controller/fight_boss.go index a0c0080e..6efb36d7 100644 --- a/logic/controller/fight_boss.go +++ b/logic/controller/fight_boss.go @@ -92,7 +92,7 @@ func (h Controller) PlayerFightBoss(data *fight.ChallengeBossInboundInfo, c *pla // eff := xmlres.EffectMAP[int(idx)] // args := strings.Split(eff.Args, " ") - EID, args := service.NewEffectService().Args(uint32(idx)) + EID, args := service.Effects.Args(uint32(idx)) mo.EffectInfo = append(mo.EffectInfo, model.PetEffectInfo{ Idx: idx, EID: gconv.Uint16(EID), diff --git a/modules/blazing/controller/admin/pet_fusion_material_controller.go b/modules/blazing/controller/admin/pet_fusion_material_controller.go index 0956f0aa..025c4102 100644 --- a/modules/blazing/controller/admin/pet_fusion_material_controller.go +++ b/modules/blazing/controller/admin/pet_fusion_material_controller.go @@ -16,7 +16,7 @@ func init() { &cool.Controller{ Prefix: "/admin/pet/fusionmaterial", // 路由前缀(主表路由+子表名,层级清晰) Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"}, // 支持的基础CRUD接口 - Service: service.NewPetFusionMaterialService(), // 绑定子表Service + Service: service.PetFusionMaterialServiceIns, // 绑定子表Service }, } // 注册控制器到框架 diff --git a/modules/blazing/model/talk.go b/modules/blazing/model/talk.go index 49d2f589..d7acc792 100644 --- a/modules/blazing/model/talk.go +++ b/modules/blazing/model/talk.go @@ -17,11 +17,8 @@ func NewTalk() *Talk { type Talk struct { *cool.Model PlayerID uint64 `gorm:"not null;index:idx_player_resource;comment:'所属玩家ID'" json:"player_id"` - Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"` //map[uint32]uint32 -} -type TalkEX struct { - Talk - Data map[uint32]uint32 `orm:"data" json:"data"` + TalkID uint32 `gorm:"not null;unique;comment:'资源ID'" json:"talk_id"` + Count uint32 `gorm:"not null;comment:'采集计数'" json:"count"` } // TableName 资源采集表名 diff --git a/modules/blazing/service/effect.go b/modules/blazing/service/effect.go index 97753f65..9ca74f59 100644 --- a/modules/blazing/service/effect.go +++ b/modules/blazing/service/effect.go @@ -36,3 +36,5 @@ func NewEffectService() *EffectService { }, } } + +var Effects = NewEffectService() diff --git a/modules/blazing/service/pet_fusion_material_service.go b/modules/blazing/service/pet_fusion_material_service.go index 724f5a55..484c7e54 100644 --- a/modules/blazing/service/pet_fusion_material_service.go +++ b/modules/blazing/service/pet_fusion_material_service.go @@ -20,6 +20,8 @@ type PetFusionMaterialService struct { *cool.Service // 嵌入通用Service(继承基础CRUD方法) } +var PetFusionMaterialServiceIns = NewPetFusionMaterialService() + // NewPetFusionMaterialService 创建PetFusionMaterialService实例 func NewPetFusionMaterialService() *PetFusionMaterialService { return &PetFusionMaterialService{ diff --git a/modules/blazing/service/pet_fusion_service.go b/modules/blazing/service/pet_fusion_service.go index a5249035..fe78dc40 100644 --- a/modules/blazing/service/pet_fusion_service.go +++ b/modules/blazing/service/pet_fusion_service.go @@ -18,6 +18,8 @@ type PetFusionService struct { *cool.Service // 嵌入通用Service(继承基础CRUD方法) } +var PetFusionServiceS = NewPetFusionService() + // NewPetFusionService 创建PetFusionService实例 func NewPetFusionService() *PetFusionService { return &PetFusionService{ diff --git a/modules/blazing/service/talk.go b/modules/blazing/service/talk.go index e1a72fb9..5d88d7a5 100644 --- a/modules/blazing/service/talk.go +++ b/modules/blazing/service/talk.go @@ -20,19 +20,53 @@ func NewTalkService(id uint32) *TalkService { } -// TalkCheck 获取玩家当前的Talk数据 -// todo 待实现xml解析判断是否溢出 -func (s *TalkService) Exec(t func(map[uint32]uint32) bool) { +//实现挖矿次数确认 + +func (s *TalkService) Cheak(flag int) bool { m1 := s.GModel(s.Model) - var talks model.TalkEX - m1.Scan(&talks) + var talks *model.Talk + m1.Where("talk_id", flag).Scan(&talks) + if talks == nil { + return true //如果表里没有记载数据,那么就可以直接挖矿 + } + //因为这个是挖一次更新一次,而且是实时更新的,如果更新日期是今天,那么就可以确认不用再重置,否则就需要重置挖矿记录 + if !IsToday(talks.UpdateTime) { - ok := t(talks.Data) - if ok { - talks.PlayerID = uint64(s.userid) + talks.Count = 0 m1.Save(talks) + return true } } +func (s *TalkService) Update(flag int) { + + m1 := s.GModel(s.Model) + + var talks model.Talk + m1.Scan(&talks) + + talks.PlayerID = uint64(s.userid) + talks.TalkID = uint32(flag) + talks.Count += 1 + m1.Save(talks) + +} + +// // TalkCheck 获取玩家当前的Talk数据 +// // todo 待实现xml解析判断是否溢出 +// func (s *TalkService) Exec(t func(map[uint32]uint32) bool) { + +// m1 := s.GModel(s.Model) + +// var talks model.Talk +// m1.Scan(&talks) + +// ok := t(talks) +// if ok { +// talks.PlayerID = uint64(s.userid) +// m1.Save(talks) +// } + +// }