feat: 支持每周任务重置和查询
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user