99 lines
1.7 KiB
Go
99 lines
1.7 KiB
Go
package service
|
|
|
|
import (
|
|
"blazing/cool"
|
|
"blazing/modules/config/model"
|
|
|
|
"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)
|
|
|
|
// }
|
|
|
|
// }
|
|
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
|
|
}
|