feat(item): 添加物品相关功能并优化任务和宠物逻辑

- 新增物品检查和添加功能
- 优化任务重置和完成逻辑
- 改进宠物信息获取和展示
- 调整玩家登录和保存机制
This commit is contained in:
2025-09-11 01:07:00 +08:00
parent e0ec9ee1ec
commit 53df18c1e1
12 changed files with 240 additions and 78 deletions

View File

@@ -12,20 +12,24 @@ type Item struct {
PlayerID uint64 `gorm:"not null;index:idx_player_bag_item_by_player_id;comment:'所属玩家ID'" json:"player_id"`
Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"`
}
type ItemE struct {
ID int32 `gorm:"not null;comment:'道具唯一编号'" json:"item_id"`
Count int32 `gorm:"not null;default:0;comment:'拥有数量 '" json:"count"`
Max int32 `gorm:"not null;default:0;comment:'最大数量 '" json:"max"`
Total int32 `gorm:"not null;default:0;comment:'使用次数'" json:"total"`
type SingleItemInfo struct {
// 物品Id
ItemId uint32 `json:"itemId"`
// 物品数量,
ItemCnt uint32 `json:"itemCnt"`
// 固定值360000
LeftTime uint32 `json:"leftTime"`
// 固定值0
ItemLevel uint32 `json:"itemLevel"`
}
// TableName PlayerBagItem's table name
func (*ItemE) TableName() string {
func (*Item) TableName() string {
return TableNamePlayerBagItem
}
// GroupName PlayerBagItem's table group
func (*ItemE) GroupName() string {
func (*Item) GroupName() string {
return "default"
}

View File

@@ -6,12 +6,12 @@ import (
"encoding/json"
)
func (s *UserService) ItemExec(t func([]model.ItemE) []model.ItemE) {
func (s *UserService) ItemExec(t func([]model.SingleItemInfo) []model.SingleItemInfo) {
//todo待测试
var player model.Item
m1 := cool.DBM(s.reg.Model).Where("player_id", s.userid)
m1.Scan(&player)
var tt []model.ItemE
var tt []model.SingleItemInfo
json.Unmarshal([]byte(player.Data), &tt)
t(tt)
tmep, _ := json.Marshal(tt)
@@ -19,3 +19,46 @@ func (s *UserService) ItemExec(t func([]model.ItemE) []model.ItemE) {
m1.Save(player)
}
func (s *UserService) ItemCheak() []model.SingleItemInfo {
//todo待测试
var player model.Item
m1 := cool.DBM(s.item.Model).Where("player_id", s.userid)
var rer []model.SingleItemInfo
m1.Scan(&player)
json.Unmarshal([]byte(player.Data), &rer)
//return gjson.Parse(player.Data)
return rer
}
func (s *UserService) ItemAdd(t []model.SingleItemInfo) {
//todo待测试
var player model.Item
m1 := cool.DBM(s.item.Model).Where("player_id", s.userid)
var rer []model.SingleItemInfo
m1.Scan(&player)
json.Unmarshal([]byte(player.Data), &rer)
player.PlayerID = uint64(s.userid)
if len(rer) == 0 {
fff, _ := json.Marshal(append(rer, t...))
player.Data = string(fff)
_, err := m1.Insert(player)
if err != nil {
panic(err)
}
return
}
fff, _ := json.Marshal(append(rer, t...))
player.Data = string(fff)
_, err := m1.Update(player)
if err != nil {
panic(err)
}
//return gjson.Parse(player.Data)
}

View File

@@ -82,6 +82,15 @@ func (s *UserService) TaskSet(id uint32, ret model.TaskInfo) {
//gg.TaskID = id
cool.DBM(s.task.Model).Where("player_id", s.userid).Where("task_id", id).Update(gg)
}
func (s *UserService) TaskReset() {
var gg model.Task
tt, _ := json.Marshal(&model.TaskInfo{})
gg.Data = string(tt)
//gg.TaskID = id
cool.DBM(s.task.Model).Where("player_id", s.userid).Update(gg)
}
func (s *UserService) TaskADD(id uint32, ret model.TaskInfo) {
var gg model.Task