refactor(logic): 重构服务器启动逻辑与任务状态管理 - 移除了 `gcmd` 包在 controller 中的直接使用,改为通过参数传递端口和服务器类型 - 统一使用 `GetTask` 和 `SetTask` 方法替代直接访问 `TaskList` 数组,提升代码可维护性 - 修改了战斗逻辑中部分调试打印语句,并优化战斗循环结束日志输出 - 调整了新手玩家初始化流程,默认完成新手任务4 - 更新了数据库模型字段及结构定义,如增加 `max_ts` 字段、扩展 `TaskList` 长度等 - 改进了宠物添加逻辑,采用 SQL 方式确保捕捉时间唯一递增 - 清理了无用或注释掉的旧代码块
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"blazing/cool"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
)
|
|
|
|
type BaseSysPermsService struct {
|
|
}
|
|
|
|
func NewBaseSysPermsService() *BaseSysPermsService {
|
|
return &BaseSysPermsService{}
|
|
}
|
|
|
|
// permmenu 方法
|
|
func (c *BaseSysPermsService) Permmenu(ctx context.Context, roleIds []string) (res interface{}) {
|
|
type permmenu struct {
|
|
Perms []string `json:"perms"`
|
|
Menus gdb.Result `json:"menus"`
|
|
}
|
|
var (
|
|
baseSysMenuService = NewBaseSysMenuService()
|
|
admin = cool.GetAdmin(ctx)
|
|
)
|
|
|
|
res = &permmenu{
|
|
Perms: baseSysMenuService.GetPerms(roleIds),
|
|
Menus: baseSysMenuService.GetMenus(admin.RoleIds, admin.UserId == 10001),
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
// refreshPerms(userId)
|
|
func (c *BaseSysPermsService) RefreshPerms(ctx context.Context, userId uint) (err error) {
|
|
var (
|
|
baseSysUserRoleService = NewBaseSysRoleService()
|
|
baseSysMenuService = NewBaseSysMenuService()
|
|
baseSysDepartmentService = NewBaseSysDepartmentService()
|
|
roleIds = baseSysUserRoleService.GetByUser(userId)
|
|
perms = baseSysMenuService.GetPerms(roleIds)
|
|
)
|
|
cool.CacheManager.Set(ctx, "admin:perms:"+gconv.String(userId), perms, 0)
|
|
// 更新部门权限
|
|
departments := baseSysDepartmentService.GetByRoleIds(roleIds, userId == 10001)
|
|
cool.CacheManager.Set(ctx, "admin:department:"+gconv.String(userId), departments, 0)
|
|
|
|
return
|
|
}
|