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