Files
bl/modules/blazing/service/task.go

67 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"blazing/cool"
"blazing/modules/blazing/model"
"encoding/json"
"time"
)
func Exec[T cool.UserModel, F any](userid uint32, s *cool.Service, processFunc func(F) F) bool {
//todo待测试
var player T
m1 := cool.DBM(s.Model).Where("player_id", userid)
m1.Scan(&player)
// 方法2使用反射获取
// 获取反射值对象
ttt := player
//fmt.Println(dataField.Interface().(string))
var tt F
err := json.Unmarshal([]byte(ttt.GetData()), &tt)
if err != nil {
panic(err)
}
tt1 := processFunc(tt)
tmep, err := json.Marshal(tt1)
if err != nil {
panic(err)
}
ttt.SetData(string(tmep))
m1.Save(player)
return false
}
// 获取任务信息
func (s *UserService) Task(id uint32, t func(*model.TaskEX) bool) {
var gg model.TaskEX
m1 := cool.DBM(s.task.Model).
Where("player_id", s.userid).
Where("task_id", id)
err := m1.Scan(&gg)
tre := t(&gg)
if !tre { //不需要更新
return
}
if err != nil {
m1.Insert(gg)
} else {
m1.Update(gg)
}
}
// IsToday 判断给定时间是否是今天
func IsToday(t time.Time) bool {
// 获取当前时间
now := time.Now()
// 比较年、月、日是否相同
return t.Year() == now.Year() &&
t.Month() == now.Month() &&
t.Day() == now.Day()
}