218 lines
5.4 KiB
Go
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)
|
|
}
|