Files
likedream/internal/common/db/db_init.go
T
sugarBecomer 49f4475991 🐛 干掉global id
2025-11-10 22:53:05 +08:00

218 lines
5.4 KiB
Go

package db
import (
"context"
"likedream-goframe/internal/common/cst"
"likedream-goframe/internal/ent/sysmenu"
"likedream-goframe/internal/ent/sysrole"
"likedream-goframe/internal/ent/sysuser"
"likedream-goframe/internal/utils"
"github.com/gogf/gf/v2/os/gctx"
"github.com/shopspring/decimal"
)
func CheckHasData() bool {
count, err := Global.Debug().SysUser.Query().Count(context.Background())
utils.OkOrPanic(err, func(err error) error {
return err
})
return count > 0
}
func GenerateData() {
// 创建用户
generateUser()
// 创建角色
generateRoles()
// 创建菜单
generateMenus()
// 关联角色
relationRoles()
// 关联菜单
relationMenus()
}
// 生成用户
func generateUser() {
ctx := gctx.New()
Global.Debug().SysUser.Create().
SetUsername("admin").
SetPassword(utils.PasswordBcryptHash("123456")).
SetEmail("admin@qq.com").
SetBlock(false).
SetBalance(decimal.NewFromInt(100000)).
SetInviteCode("likedream").
SetVerify(true).
ExecX(ctx)
}
// 生成角色
func generateRoles() {
ctx := gctx.New()
Global.Debug().SysRole.Create().SetName("管理员").SetLabel(cst.KeyRoleAdmin).SetDescription("超级管理员角色").SetOrder(1).ExecX(ctx)
Global.Debug().SysRole.Create().SetName("代理").SetLabel(cst.KeyRoleAgent).SetDescription("代理角色").SetOrder(2).ExecX(ctx)
Global.Debug().SysRole.Create().SetName("普通用户").SetLabel(cst.KeyRoleUser).SetDescription("普通用户角色").SetOrder(3).ExecX(ctx)
}
// 生成菜单
func generateMenus() {
ctx := gctx.New()
sysM := Global.Debug().SysMenu.Create().
SetName("系统管理").
SetLabel("system").
SetType(sysmenu.TypeGroup).
SetPermission("system:group").
SetRoute("/system").
SetOrder(1).
SaveX(ctx)
userM := Global.Debug().SysMenu.Create().
SetName("用户管理").
SetLabel("user").
SetType(sysmenu.TypeMenu).
SetPermission("system:user").
SetRoute("/system/user").
SetComponent("/system/user/index").
SetOrder(1).
SetParent(sysM).
SaveX(ctx)
// 新增 编辑 删除按钮
Global.Debug().SysMenu.Create().
SetName("新增").
SetLabel("add").
SetType(sysmenu.TypeButton).
SetPermission("system:user:add").
SetOrder(1).
SetParent(userM).
SaveX(ctx)
Global.Debug().SysMenu.Create().
SetName("编辑").
SetLabel("edit").
SetType(sysmenu.TypeButton).
SetPermission("system:user:edit").
SetOrder(2).
SetParent(userM).
SaveX(ctx)
// 删除按钮
Global.Debug().SysMenu.Create().
SetName("删除").
SetLabel("delete").
SetType(sysmenu.TypeButton).
SetPermission("system:user:delete").
SetOrder(3).
SetParent(userM).
SaveX(ctx)
// 列表
Global.Debug().SysMenu.Create().
SetName("列表").
SetLabel("list").
SetType(sysmenu.TypeButton).
SetPermission("system:user:list").
SetOrder(4).
SetParent(userM).
SaveX(ctx)
roleM := Global.Debug().SysMenu.Create().
SetName("角色管理").
SetLabel("role").
SetType(sysmenu.TypeMenu).
SetPermission("system:role").
SetRoute("/system/role").
SetComponent("/system/role/index").
SetOrder(2).
SetParent(sysM).
SaveX(ctx)
// 新增 编辑 删除按钮
Global.Debug().SysMenu.Create().
SetName("新增").
SetLabel("add").
SetType(sysmenu.TypeButton).
SetPermission("system:role:add").
SetOrder(1).
SetParent(roleM).
SaveX(ctx)
Global.Debug().SysMenu.Create().
SetName("编辑").
SetLabel("edit").
SetType(sysmenu.TypeButton).
SetPermission("system:role:edit").
SetOrder(2).
SetParent(roleM).
SaveX(ctx)
// 删除按钮
Global.Debug().SysMenu.Create().
SetName("删除").
SetLabel("delete").
SetType(sysmenu.TypeButton).
SetPermission("system:role:delete").
SetOrder(3).
SetParent(roleM).
SaveX(ctx)
Global.Debug().SysMenu.Create().
SetName("列表").
SetLabel("list").
SetType(sysmenu.TypeButton).
SetPermission("system:role:list").
SetOrder(4).
SetParent(roleM).
SaveX(ctx)
menuM := Global.Debug().SysMenu.Create().
SetName("菜单管理").
SetLabel("menu").
SetType(sysmenu.TypeMenu).
SetPermission("system:menu").
SetRoute("/system/menu").
SetComponent("/system/menu/index").
SetOrder(2).
SetParent(sysM).
SaveX(ctx)
// 新增 编辑 删除按钮
Global.Debug().SysMenu.Create().
SetName("新增").
SetLabel("add").
SetType(sysmenu.TypeButton).
SetPermission("system:menu:add").
SetOrder(1).
SetParent(menuM).
SaveX(ctx)
Global.Debug().SysMenu.Create().
SetName("编辑").
SetLabel("edit").
SetType(sysmenu.TypeButton).
SetPermission("system:menu:edit").
SetOrder(2).
SetParent(menuM).
SaveX(ctx)
// 删除按钮
Global.Debug().SysMenu.Create().
SetName("删除").
SetLabel("delete").
SetType(sysmenu.TypeButton).
SetPermission("system:menu:delete").
SetOrder(3).
SetParent(menuM).
SaveX(ctx)
Global.Debug().SysMenu.Create().
SetName("列表").
SetLabel("list").
SetType(sysmenu.TypeButton).
SetPermission("system:menu:list").
SetOrder(4).
SetParent(menuM).
SaveX(ctx)
}
// 关联角色
func relationRoles() {
ctx := gctx.New()
admin := Global.Debug().SysUser.Query().Where(sysuser.UsernameEQ("admin")).OnlyX(ctx)
role := Global.Debug().SysRole.Query().Where(sysrole.LabelEQ(cst.KeyRoleAdmin)).AllX(ctx)
Global.Debug().SysUser.UpdateOne(admin).AddRoles(role...).ExecX(ctx)
}
// 关联菜单
func relationMenus() {
ctx := gctx.New()
adminRole := Global.Debug().SysRole.Query().Where(sysrole.LabelEQ(cst.KeyRoleAdmin)).OnlyX(ctx)
Global.Debug().SysRole.UpdateOne(adminRole).AddMenus(Global.Debug().SysMenu.Query().AllX(ctx)...).ExecX(ctx)
}