refactor(config): 移除怪物刷新相关代码并优化地图坑位配置 移除 modules/config/controller/admin/monster_refresh.go 中的 TaskInfoController 及其相关路由注册逻辑 移除 modules/config/model/map_monster.go 中的 MonsterRefresh 模型定义及相关常量、方法 重构 modules/config/model/map_pit.go 中的 MapPit 结
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/config/service"
|
||||
)
|
||||
|
||||
type TaskInfoController struct {
|
||||
*cool.Controller
|
||||
}
|
||||
|
||||
func init() {
|
||||
var task_info_controller = &TaskInfoController{
|
||||
&cool.Controller{
|
||||
Prefix: "/admin/monster/refresh",
|
||||
Api: []string{"Add", "Delete", "Update", "Info", "List", "Page"},
|
||||
Service: service.NewMonsterService(),
|
||||
},
|
||||
}
|
||||
// 注册路由
|
||||
cool.RegisterController(task_info_controller)
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
)
|
||||
|
||||
const (
|
||||
TableNameMonsterRefresh = "config_monster_refresh" // 怪物刷新规则表(地图-精灵等级-刷新脚本配置)
|
||||
)
|
||||
|
||||
// MonsterRefresh 怪物刷新规则模型(对应前端配置的地图/精灵/等级/脚本配置)
|
||||
type MonsterRefresh struct {
|
||||
*BaseConfig
|
||||
|
||||
MapID int32 `gorm:"not null;comment:'地图ID'" json:"map_id"`
|
||||
|
||||
PitID1 []int32 `gorm:"type:int[];not null;comment:'坑位1绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_1"`
|
||||
PitID2 []int32 `gorm:"type:int[];not null;comment:'坑位2绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_2"`
|
||||
PitID3 []int32 `gorm:"type:int[];not null;comment:'坑位3绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_3"`
|
||||
PitID4 []int32 `gorm:"type:int[];not null;comment:'坑位4绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_4"`
|
||||
PitID5 []int32 `gorm:"type:int[];not null;comment:'坑位5绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_5"`
|
||||
PitID6 []int32 `gorm:"type:int[];not null;comment:'坑位6绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_6"`
|
||||
PitID7 []int32 `gorm:"type:int[];not null;comment:'坑位7绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_7"`
|
||||
PitID8 []int32 `gorm:"type:int[];not null;comment:'坑位8绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_8"`
|
||||
PitID9 []int32 `gorm:"type:int[];not null;comment:'坑位9绑定的坑位ID列表(多绑,循环刷)'" json:"pit_id_9"`
|
||||
}
|
||||
|
||||
type MonsterRefreshEX struct {
|
||||
MonsterRefresh
|
||||
MonsterID []uint32 `json:"monster_id"`
|
||||
ShinyID []uint32 `json:"shiny_id"`
|
||||
// 扩展:便于批量处理9个坑位
|
||||
PitIDs [9][]uint32 `json:"pit_ids"` // 整合所有坑位ID,前端/业务层批量处理用
|
||||
}
|
||||
|
||||
// TableName 指定MonsterRefresh对应的数据库表名
|
||||
func (*MonsterRefresh) TableName() string {
|
||||
return TableNameMonsterRefresh
|
||||
}
|
||||
|
||||
// GroupName 指定表所属的分组(保持和参考示例一致)
|
||||
func (*MonsterRefresh) GroupName() string {
|
||||
return "default"
|
||||
}
|
||||
|
||||
// NewMonsterRefresh 创建一个新的MonsterRefresh实例(初始化通用Model)
|
||||
func NewMonsterRefresh() *MonsterRefresh {
|
||||
return &MonsterRefresh{
|
||||
BaseConfig: NewBaseConfig(),
|
||||
}
|
||||
}
|
||||
|
||||
// init 初始化表结构(程序启动时自动创建/同步表)
|
||||
func init() {
|
||||
cool.CreateTable(&MonsterRefresh{})
|
||||
}
|
||||
@@ -21,13 +21,13 @@ type Event struct {
|
||||
|
||||
// MapPit 地图坑位核心配置模型(参照MonsterRefresh实现风格)
|
||||
type MapPit struct {
|
||||
*cool.Model // 保留通用Model(ID/创建时间/更新时间等)
|
||||
|
||||
Remark string `gorm:"type:varchar(255);default:'';comment:'性别配置备注(如:默认性别规则)'" json:"remark"` // 调整注释 // 复用通用基础配置(ID/创建时间/更新时间等)
|
||||
MapID []int32 `gorm:"type:int[];comment:'绑定地图地图ID'" json:"map_id"`
|
||||
*BaseConfig
|
||||
*Event
|
||||
// 复用通用基础配置(ID/创建时间/更新时间等)
|
||||
MapID []int32 `gorm:"type:int[];comment:'绑定地图地图ID'" json:"map_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"`
|
||||
//最大等级
|
||||
@@ -49,7 +49,7 @@ func (*MapPit) GroupName() string {
|
||||
// NewMapPit 创建一个新的MapPit实例(初始化通用BaseConfig)
|
||||
func NewMapPit() *MapPit {
|
||||
return &MapPit{
|
||||
Model: cool.NewModel(),
|
||||
BaseConfig: NewBaseConfig(),
|
||||
Event: &Event{},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,98 +1,95 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/config/model"
|
||||
// import (
|
||||
// "blazing/cool"
|
||||
// "blazing/modules/config/model"
|
||||
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
// "fmt"
|
||||
// "strconv"
|
||||
// "time"
|
||||
|
||||
"github.com/dop251/goja"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
)
|
||||
|
||||
type MonsterService struct {
|
||||
*cool.Service
|
||||
}
|
||||
|
||||
func NewMonsterService() *MonsterService {
|
||||
return &MonsterService{
|
||||
&cool.Service{
|
||||
Model: model.NewMonsterRefresh(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MonsterService) ModifyAfter(ctx g.Ctx, method string, param g.MapStrAny) (err error) {
|
||||
|
||||
gconv.String(param["map_id"])
|
||||
cool.DBM(s.Model).Cache((gdb.CacheOption{
|
||||
Duration: -1,
|
||||
Name: model.TableNameMonsterRefresh + gconv.String(param["map_id"]),
|
||||
Force: false,
|
||||
}))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MonsterService) GetId(mapid uint32) []model.MonsterRefresh {
|
||||
|
||||
m := cool.DBM(s.Model).Where("map_id", mapid).Cache(
|
||||
gdb.CacheOption{
|
||||
Duration: time.Hour,
|
||||
Name: model.TableNameMonsterRefresh + strconv.Itoa(int(mapid)),
|
||||
Force: false,
|
||||
},
|
||||
)
|
||||
var tt []model.MonsterRefresh
|
||||
m.Scan(&tt)
|
||||
|
||||
// for _, v := range tt {
|
||||
|
||||
// if v.MapID == int32(mapid) {
|
||||
// return uint32(v.MonsterID)
|
||||
// "github.com/dop251/goja"
|
||||
// "github.com/gogf/gf/v2/database/gdb"
|
||||
// "github.com/gogf/gf/v2/frame/g"
|
||||
// "github.com/gogf/gf/v2/util/gconv"
|
||||
// )
|
||||
|
||||
// type MonsterService struct {
|
||||
// *cool.Service
|
||||
// }
|
||||
|
||||
// func NewMonsterService() *MonsterService {
|
||||
// return &MonsterService{
|
||||
// &cool.Service{
|
||||
// Model: model.NewMonsterRefresh(),
|
||||
// },
|
||||
// }
|
||||
// }
|
||||
return tt
|
||||
|
||||
}
|
||||
func Test_kick() {
|
||||
const SCRIPT = `
|
||||
function shouldRefresh(userId, day, dayOfWeek, hour, minute) {
|
||||
return true;
|
||||
// func (s *MonsterService) ModifyAfter(ctx g.Ctx, method string, param g.MapStrAny) (err error) {
|
||||
|
||||
// gconv.String(param["map_id"])
|
||||
// cool.DBM(s.Model).Cache((gdb.CacheOption{
|
||||
// Duration: -1,
|
||||
// Name: model.TableNameMonsterRefresh + gconv.String(param["map_id"]),
|
||||
// Force: false,
|
||||
// }))
|
||||
|
||||
// return nil
|
||||
// }
|
||||
|
||||
// func (s *MonsterService) GetId(mapid uint32) []model.MonsterRefresh {
|
||||
|
||||
}
|
||||
`
|
||||
t, _ := goja.Compile("test.js", SCRIPT, false)
|
||||
vm := goja.New()
|
||||
_, err := vm.RunProgram(t)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
sum, ok := goja.AssertFunction(vm.Get("shouldRefresh"))
|
||||
if !ok {
|
||||
panic("Not a function")
|
||||
}
|
||||
// m := cool.DBM(s.Model).Where("map_id", mapid).Cache(
|
||||
// gdb.CacheOption{
|
||||
// Duration: time.Hour,
|
||||
// Name: model.TableNameMonsterRefresh + strconv.Itoa(int(mapid)),
|
||||
// Force: false,
|
||||
// },
|
||||
// )
|
||||
// var tt []model.MonsterRefresh
|
||||
// m.Scan(&tt)
|
||||
|
||||
res, err := sum(
|
||||
goja.Undefined(),
|
||||
vm.ToValue(1),
|
||||
vm.ToValue(time.Now().Day()),
|
||||
vm.ToValue(time.Now().Weekday()),
|
||||
vm.ToValue(time.Now().Hour()),
|
||||
vm.ToValue(time.Now().Minute()),
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Println(res)
|
||||
// Output: 42
|
||||
}
|
||||
// // for _, v := range tt {
|
||||
|
||||
// // if v.MapID == int32(mapid) {
|
||||
// // return uint32(v.MonsterID)
|
||||
|
||||
// // }
|
||||
|
||||
// // }
|
||||
// return tt
|
||||
|
||||
// }
|
||||
// func Test_kick() {
|
||||
// const SCRIPT = `
|
||||
// function shouldRefresh(userId, day, dayOfWeek, hour, minute) {
|
||||
// return true;
|
||||
|
||||
// }
|
||||
// `
|
||||
// t, _ := goja.Compile("test.js", SCRIPT, false)
|
||||
// vm := goja.New()
|
||||
// _, err := vm.RunProgram(t)
|
||||
// if err != nil {
|
||||
// panic(err)
|
||||
// }
|
||||
// sum, ok := goja.AssertFunction(vm.Get("shouldRefresh"))
|
||||
// if !ok {
|
||||
// panic("Not a function")
|
||||
// }
|
||||
|
||||
// res, err := sum(
|
||||
// goja.Undefined(),
|
||||
// vm.ToValue(1),
|
||||
// vm.ToValue(time.Now().Day()),
|
||||
// vm.ToValue(time.Now().Weekday()),
|
||||
// vm.ToValue(time.Now().Hour()),
|
||||
// vm.ToValue(time.Now().Minute()),
|
||||
// )
|
||||
// if err != nil {
|
||||
// panic(err)
|
||||
// }
|
||||
// fmt.Println(res)
|
||||
// // Output: 42
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user