Files
bl/modules/config/model/map_pit.go
昔念 8a072bd028
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
feat(config): 修改地图坑位配置的数据结构

- 将MapPit结构体中的MapID字段从数组类型[]int32改为单个int32类型
- 更新数据库标签,移除数组类型定义,添加非空约束和索引
- 修改JSON标签注释为"所属地图ID"
- 在服务层的查询操作中添加map_id字段的相等查询支持
```
2026-02-24 19:20:38 +08:00

61 lines
1.9 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 model
import (
"blazing/cool"
)
const (
TableNameMapPit = "config_map_pit" // 地图坑位配置表(记录坑位归属、类型、属性、关联刷新规则等)
)
type Event struct {
//携带精灵数组Event
Sprites []int32 `gorm:"type:int[];comment:'携带精灵数组'" json:"sprites"`
//触发开始时间Event
StartTime string `gorm:"type:varchar(100);default:'';comment:'触发开始时间'" json:"start_time"`
//触发结束时间Event
EndTime string `gorm:"type:varchar(100);default:'';comment:'触发结束时间'" json:"end_time"`
//触发天气Event
Weather []int32 `gorm:"type:int[];comment:'触发天气'" json:"weather"`
}
// MapPit 地图坑位核心配置模型参照MonsterRefresh实现风格
type MapPit struct {
*BaseConfig
*Event
// 复用通用基础配置ID/创建时间/更新时间等)
MapID int32 `gorm:"not null;index;comment:'所属地图ID'" json:"map_id" description:"地图ID"`
RefreshID []int `gorm:"type:int[];comment:'精灵ID列表'" json:"refresh_id"`
Pos []int `gorm:"type:int[];comment:'坑位位置'" json:"pos"`
//最小等级
MinLevel int `gorm:"type:int;default:0;comment:'最小等级'" json:"min_level"`
//最大等级
MaxLevel int `gorm:"type:int;default:0;comment:'最大等级'" json:"max_level"`
//是否可捕捉MapPit
IsCapture int `gorm:"type:int;default:0;comment:'是否可捕捉'" json:"is_capture"`
}
// TableName 指定MapPit对应的数据库表名遵循原模型规范
func (*MapPit) TableName() string {
return TableNameMapPit
}
// GroupName 指定表所属的分组(保持和原模型一致)
func (*MapPit) GroupName() string {
return "default"
}
// NewMapPit 创建一个新的MapPit实例初始化通用BaseConfig
func NewMapPit() *MapPit {
return &MapPit{
BaseConfig: NewBaseConfig(),
Event: &Event{},
}
}
// init 初始化表结构(程序启动时自动创建/同步表)
func init() {
cool.CreateTable(&MapPit{})
}