feat(item): 添加物品相关功能并优化任务和宠物逻辑
- 新增物品检查和添加功能 - 优化任务重置和完成逻辑 - 改进宠物信息获取和展示 - 调整玩家登录和保存机制
This commit is contained in:
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user