// Code scaffolded by goctl. Safe to edit. // goctl 1.10.1 package role import ( "context" "fmt" "sundynix-micro-go/app/system/api/internal/svc" "sundynix-micro-go/app/system/api/internal/types" sysModel "sundynix-micro-go/app/system/model" "github.com/zeromicro/go-zero/core/logx" ) type CreateRoleLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewCreateRoleLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateRoleLogic { return &CreateRoleLogic{Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx} } func (l *CreateRoleLogic) CreateRole(req *types.RoleReq) error { role := sysModel.SundynixRole{Name: req.Name, Code: req.Code, Sort: req.Sort} if err := l.svcCtx.DB.Create(&role).Error; err != nil { return fmt.Errorf("创建角色失败") } // 关联菜单 if len(req.MenuIds) > 0 { for _, menuID := range req.MenuIds { l.svcCtx.DB.Create(&sysModel.SundynixRoleMenu{RoleID: role.ID, MenuID: menuID}) } } return nil }