This commit is contained in:
2025-07-07 20:11:59 +08:00
parent ab0fdbc447
commit 06e3aa2eb3
2009 changed files with 193082 additions and 0 deletions

View File

@ -0,0 +1,117 @@
// ==========================================================================
// GFast自动生成controller操作代码。
// 生成日期2024-05-28 15:11:36
// 生成路径: internal/app/system/controller/app_roles.go
// 生成人gfast
// desc:app角色
// company:云南奇讯科技有限公司
// ==========================================================================
package controller
import (
"context"
"database/sql"
"errors"
"github.com/gogf/gf/v2/frame/g"
"github.com/tiger1103/gfast/v3/api/v1/system"
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
"github.com/tiger1103/gfast/v3/internal/app/system/model/do"
"github.com/tiger1103/gfast/v3/internal/app/system/model/entity"
"github.com/tiger1103/gfast/v3/internal/app/system/service"
"github.com/tiger1103/gfast/v3/library/liberr"
)
type appRolesController struct {
BaseController
}
var AppRoles = new(appRolesController)
// List 列表
func (c *appRolesController) List(ctx context.Context, req *system.AppRolesSearchReq) (res *system.AppRolesSearchRes, err error) {
res, err = service.AppRoles().List(ctx, req)
return
}
// Get 获取app角色
func (c *appRolesController) Get(ctx context.Context, req *system.AppRolesGetReq) (res *system.AppRolesGetRes, err error) {
res = new(system.AppRolesGetRes)
res.AppRolesInfoRes, err = service.AppRoles().GetByRoleId(ctx, req.RoleId)
return
}
// Add 添加app角色
func (c *appRolesController) Add(ctx context.Context, req *system.AppRolesAddReq) (res *system.AppRolesAddRes, err error) {
err = service.AppRoles().Add(ctx, req)
return
}
// Edit 修改app角色
func (c *appRolesController) Edit(ctx context.Context, req *system.AppRolesEditReq) (res *system.AppRolesEditRes, err error) {
err = service.AppRoles().Edit(ctx, req)
return
}
// Delete 删除app角色
func (c *appRolesController) Delete(ctx context.Context, req *system.AppRolesDeleteReq) (res *system.AppRolesDeleteRes, err error) {
err = service.AppRoles().Delete(ctx, req.RoleIds)
return
}
// AddMenu 添加角色时绑定菜单
func (c *appRolesController) AddMenu(ctx context.Context, req *system.AppRolesAddMenuReq) (*system.AppRolesAddMenuRes, error) {
err := g.Try(ctx, func(ctx context.Context) {
var roleID uint
// 判断角色名是否存在
var appRoles entity.AppRoles
if err := dao.AppRoles.Ctx(ctx).Where(dao.AppRoles.Columns().RoleName, req.RoleName).Scan(&appRoles); errors.Is(err, sql.ErrNoRows) {
roleId, err := dao.AppRoles.Ctx(ctx).Data(do.AppRoles{
RoleName: req.RoleName,
}).InsertAndGetId()
liberr.ErrIsNil(ctx, err, "添加角色失败")
roleID = uint(roleId)
} else {
roleID = appRoles.RoleId
}
if len(req.MenuIds) > 0 {
insertData := make([]do.AppRoleMenus, 0, len(req.MenuIds))
for _, menuId := range req.MenuIds {
insertData = append(insertData, do.AppRoleMenus{
RoleId: roleID,
MenuId: menuId,
})
}
// 删除原有的角色菜单
_, err := dao.AppRoleMenus.Ctx(ctx).Where("role_id", roleID).Delete()
liberr.ErrIsNil(ctx, err, "删除角色菜单失败")
_, err = dao.AppRoleMenus.Ctx(ctx).Where("role_id", roleID).Data(insertData).Insert()
liberr.ErrIsNil(ctx, err, "添加角色菜单失败")
}
})
return &system.AppRolesAddMenuRes{}, err
}
// 获取一个角色的菜单
func (c *appRolesController) GetRoleMenus(ctx context.Context, req *system.AppRolesGetMenuReq) (*system.AppRolesGetMenuRes, error) {
res := new(system.AppRolesGetMenuRes)
err := g.Try(ctx, func(ctx context.Context) {
err := dao.AppRoles.Ctx(ctx).WithAll().Where(dao.AppRoles.Columns().RoleId, req.RoleId).Scan(&res.List)
// SELECT m.menu_id, m.menu_name
// FROM app_menus m
// JOIN app_role_menus rm ON m.menu_id = rm.menu_id
// WHERE rm.role_id = 3;
dao.AppMenus.Ctx(ctx).As("m").Fields("m.menu_id, m.menu_name").
InnerJoin("app_role_menus rm", "m.menu_id = rm.menu_id").Where("rm.role_id", req.RoleId).Scan(&res.List.Menus)
liberr.ErrIsNil(ctx, err, "获取信息失败")
})
return res, err
}