diff --git a/modules/config/service/task.go b/modules/config/service/task.go index aee82d4ae..c81ee03c7 100644 --- a/modules/config/service/task.go +++ b/modules/config/service/task.go @@ -24,16 +24,16 @@ func NewTaskService() *TaskService { } } func (s *TaskService) Get(id, os int) *model.TaskConfig { - var item []model.TaskConfig - dbm_enable(s.Model).Where("task_id", id).Scan(&item) var res *model.TaskConfig - for _, v := range item { - if v.OutState == os { - res = &v + dbm_enable(s.Model).Where("task_id", id).Where("out_state", os).Scan(res) + // var res *model.TaskConfig + // for _, v := range item { + // if v.OutState == os { + // res = &v - } + // } - } + // } return res @@ -44,6 +44,25 @@ func (s *TaskService) GetDaily() []model.TaskConfig { return item +} +func (s *TaskService) GetWeek() []model.TaskConfig { + var item []model.TaskConfig + dbm_enable(s.Model).Where("task_type", 2).Scan(&item) + + return item + +} +func (s *TaskService) IsDaily(id, os int) bool { + var item *model.TaskConfig + dbm_enable(s.Model).Where("task_id", id).Where("out_state", os).Scan(item) + if item == nil { + return false + } + if item.TaskType == 1 { + return true + } + return false + } func (s *TaskService) IsAcceptable(taskid uint32) (out *model.TaskConfig) { @@ -57,4 +76,3 @@ func (s *TaskService) IsAcceptable(taskid uint32) (out *model.TaskConfig) { return } - \ No newline at end of file diff --git a/modules/player/model/info.go b/modules/player/model/info.go index 2430f9afe..2b6e6f00a 100644 --- a/modules/player/model/info.go +++ b/modules/player/model/info.go @@ -13,9 +13,10 @@ const TableNamePlayerInfo = "player_info" type Player struct { *cool.Model - PlayerID uint64 `gorm:"not null;uniqueIndex;index:idx_pet_by_player_id;comment:'所属玩家ID'" json:"player_id"` - LastResetTime *gtime.Time `struc:"skip" json:"last_reset_time"` // 重置时间,比如电池和每日任务 - Data PlayerInfo `gorm:"type:jsonb;not null;comment:'全部数据'" json:"data"` + PlayerID uint64 `gorm:"not null;uniqueIndex;index:idx_pet_by_player_id;comment:'所属玩家ID'" json:"player_id"` + LastResetTime *gtime.Time `struc:"skip" json:"last_reset_time"` // 重置时间,比如电池和每日任务 + WeekLastResetTime *gtime.Time `struc:"skip" json:"last_week_reset_time"` + Data PlayerInfo `gorm:"type:jsonb;not null;comment:'全部数据'" json:"data"` } type Pos struct { diff --git a/modules/player/service/info.go b/modules/player/service/info.go index cf522c577..f663311e9 100644 --- a/modules/player/service/info.go +++ b/modules/player/service/info.go @@ -109,16 +109,24 @@ func (s *InfoService) SetLogin() *model.PlayerInfo { } - for i := 0; i < 50; i++ { //每日任务区段 - tt.Data.DailyResArr[i] = 0 //重置每日任务 + // for i := 0; i < 50; i++ { //每日任务区段 + // tt.Data.DailyResArr[i] = 0 //重置每日任务 + + // } + // //defer t.Service.Talk_Reset() + // _, err := s.dbm_fix(s.Model).Save(tt) + // if err != nil { + // panic(err) + // } + + } + if !IsWEEK(tt.WeekLastResetTime) { + tt.WeekLastResetTime = gtime.Now() + for _, v := range service.NewTaskService().GetWeek() { + + tt.Data.SetTask(int(v.TaskId), model.Unaccepted) } - //defer t.Service.Talk_Reset() - _, err := s.dbm_fix(s.Model).Save(tt) - if err != nil { - panic(err) - } - } ret := tt.Data diff --git a/modules/player/service/task.go b/modules/player/service/task.go index d609f4d17..8e4932dbb 100644 --- a/modules/player/service/task.go +++ b/modules/player/service/task.go @@ -51,6 +51,21 @@ func IsToday(t1 *gtime.Time) bool { t.Month() == now.Month() && t.Day() == now.Day() } +func IsWEEK(t1 *gtime.Time) bool { + if t1 == nil { + return false + } + t := t1.Time + + // 获取当前时间 + now := time.Now() + _, nweek := now.ISOWeek() + _, tweek := now.ISOWeek() + // 比较年、月、日是否相同 + return t.Year() == now.Year() && + tweek == nweek + +} type TaskService struct { BaseService