feat(common): 升级 gf 框架版本至 v2.8.0 并优化模型时间字段

- 将 `github.com/gogf/gf/contrib/drivers/pgsql/v2` 和 redis 依赖从 v2.6.3 升级到 v2.8.0
- 使用 `*gtime.Time` 替代标准库 `time.Time` 以支持更灵活的时间处理
- 移除 Model 结构体中 CreateTime、UpdateTime 等字段的默认初始化逻辑
- 注释掉已弃用的 GDBM 函数,推荐使用 DBM
- 在 DBM 中添加 OnConflict("id") 配置以增强写入安全性
- 调整部分代码结构与调用方式以适配新版框架行为
```
This commit is contained in:
2025-11-17 12:59:46 +08:00
parent 4e5886dbf9
commit a95e6b8491
16 changed files with 51 additions and 61 deletions

View File

@@ -22,8 +22,7 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/gogf/gf/v2 v2.8.0 h1:CjxhbMiE7oqf6K8ZtGuKt3dQEwK4vL6LhiI+dI7tJGU=
github.com/gogf/gf/v2 v2.8.0/go.mod h1:Qu8nimKt9aupJQcdUL85tWF4Mfxocz97zUt8UC4abVI=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 h1:4/hN5RUoecvl+RmJRE2YxKWtnnQls6rQjjW5oV7qg2U=
github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg=

View File

@@ -18,6 +18,8 @@ func (s *DoneService) Exec(data model.EnumMilestone, id []uint32, fn func(*model
if !ook { //不需要保存
return
}
tt.PlayerID = uint64(s.userid)
_, err := m.Save(tt)
if err != nil {
panic(err)

View File

@@ -54,7 +54,7 @@ func (s *InfoService) Reg(nick string, color uint32) {
func (s *InfoService) Person(userid uint32) *model.PlayerInfo {
m := cool.GDBM(s.Model).Where("player_id", userid)
m := cool.DBM(s.Model).Where("player_id", userid)
var tt model.PlayerEX
err := m.Scan(&tt)
if err != nil {

View File

@@ -84,8 +84,6 @@ func (s *LoginService) SetServerID(OnlineID uint16, Port uint16) error {
tttt.Port = Port
tttt.OnlineID = OnlineID
//t.Quit(int32(tttt.Port))
//m.Data(&model.ServerList{OnlineID: OnlineID, Port: Port}).Where("online_id", OnlineID).Update()
m.Save(tttt)
return nil

View File

@@ -3,44 +3,41 @@ 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
// 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使用反射获取
// 获取反射值对象
// m1 := cool.DBM(s.Model).Where("player_id", userid)
// m1.Scan(&player)
// // 方法2使用反射获取
// // 获取反射值对象
ttt := player
// 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)
}
// //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
}
// ttt.SetData(string(tmep))
// m1.Save(player)
// return false
// }
// 获取任务信息
func (s *TaskService) Exec(id uint32, t func(*model.TaskEX) bool) {
var gg model.TaskEX
m1 := cool.GDBM(s.Model).
Where("player_id", s.userid).
Where("task_id", id)
m1 := s.GModel(s.Model).Where("task_id", id)
m1.Scan(&gg)
tre := t(&gg)
if !tre { //不需要更新