package service import ( "blazing/cool" "blazing/modules/blazing/model" ) type TalkService struct { BaseService } func NewTalkService(id uint32) *TalkService { return &TalkService{ BaseService: BaseService{userid: id, Service: &cool.Service{Model: model.NewTalk()}, }, } } //实现挖矿次数确认 func (s *TalkService) Cheak(mapid uint32, flag int) (int, bool) { m1 := s.GModel(s.Model) var talks *model.Talk m1.Where("talk_id", flag).Scan(&talks) if talks == nil { talks = model.NewTalk() talks.PlayerID = uint64(s.userid) talks.TalkID = uint32(flag) s.GModel(s.Model).Data(talks).FieldsEx("id").Insert() return 0, true //如果表里没有记载数据,那么就可以直接挖矿 } //因为这个是挖一次更新一次,而且是实时更新的,如果更新日期是今天,那么就可以确认不用再重置,否则就需要重置挖矿记录 if !IsToday(talks.UpdateTime) { talks.Count = 0 m1.Save(talks) return int(talks.Count), true } //maps := service.DictInfoServiceS.DataRemark("mapid") if len(TalkConfigServiceS.GetCache(flag)) == 0 { return 0, false } if uint32(mapid) != TalkConfigServiceS.GetCache(flag)[0].MapID { return 0, false //没在地图 } if talks.Count >= TalkConfigServiceS.GetCache(flag)[0].DailyCollectCount { return 0, false } return int(talks.Count), true //int(config.MaxDailyCnt - talks.Count) } func (s *TalkService) Update(flag int) { m1 := s.GModel(s.Model) var talks model.Talk m1.Where("talk_id", flag).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) // } // }