diff --git a/internal/service/application/interface.go b/internal/service/application/interface.go index d4037fb..fd1abe3 100644 --- a/internal/service/application/interface.go +++ b/internal/service/application/interface.go @@ -13,4 +13,7 @@ type ApplicationService interface { Search(ctx context.Context, query *appModel.Query) (rsp appModel.List, err error) Menus(ctx context.Context, info *appModel.MenusReq) (rsp []appModel.Menu, err error) Modify(ctx context.Context, info *appModel.ApplicationInfo) error + CreateMenu(ctx context.Context, info *appModel.CreateMenuReq) error + ModifyMenu(ctx context.Context, info *appModel.ModifyMenuReq) error + DeleteMenu(ctx context.Context, info *appModel.DelMenuReq) error } diff --git a/internal/service/user/user.go b/internal/service/user/user.go index 0b20d47..86ad253 100644 --- a/internal/service/user/user.go +++ b/internal/service/user/user.go @@ -2,10 +2,13 @@ package user import ( "busniess-user-center/config" + appModel "busniess-user-center/internal/models/application" "busniess-user-center/internal/models/base" + orgModel "busniess-user-center/internal/models/organization" "busniess-user-center/internal/models/role" userModel "busniess-user-center/internal/models/user" "busniess-user-center/internal/repo" + "busniess-user-center/internal/service/application" "busniess-user-center/pkg/redis" contextUtil "busniess-user-center/pkg/utils/context" stringUtil "busniess-user-center/pkg/utils/string" @@ -38,6 +41,7 @@ type userService struct { tokenRefresher *token.TokenRefresher roleRepo repo.RoleRepo orgRepo repo.OrganizationRepo + appService application.ApplicationService } func NewUserService(i *do.Injector) (UserService, error) { @@ -49,6 +53,7 @@ func NewUserService(i *do.Injector) (UserService, error) { tokenRefresher: do.MustInvoke[*token.TokenRefresher](i), roleRepo: do.MustInvoke[repo.RoleRepo](i), orgRepo: do.MustInvoke[repo.OrganizationRepo](i), + appService: do.MustInvoke[application.ApplicationService](i), }, nil } @@ -293,8 +298,19 @@ func (u *userService) GetUser(ctx context.Context, req *userModel.GetUserReq) (u user = convertUser(rUser) aRoles := removeRepeatRole(uRoles, oRoles) + // 获取菜单 + user.Roles = make([]role.Role, 0, len(aRoles)) copier.Copy(&user.Roles, aRoles) + user.Orgs = make([]orgModel.Organization, 0, len(orgs)) + copier.Copy(&user.Orgs, orgs) + + appInfo, err := u.appService.GetApp(ctx, &appModel.GetAppReq{Code: req.AppCode}) + if err != nil { + return + } + + user.Menus = appModel.MenuTree{Menus: appInfo.Menus} return } diff --git a/server/application/application.go b/server/application/application.go index e5ff34e..cad27ab 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -36,6 +36,7 @@ func RegisterRoute(api *gin.RouterGroup) { api.GET("/search", ginUtil.Wrap(server.Search)) api.GET("/application", ginUtil.Wrap(server.Get)) api.POST("/modify", ginUtil.WrapNoRsp(server.Modify)) + // api.POST("/get_menu", ginUtil.WrapNoRsp(server.Modify)) } func (u *ApplicationServer) Create(ctx context.Context, req *appModel.CreateReq) (err error) { @@ -63,3 +64,15 @@ func (u *ApplicationServer) DelApp(ctx context.Context, req *appModel.DeleteAppR func (u *ApplicationServer) Modify(ctx context.Context, info *appModel.ApplicationInfo) error { return u.applicationService.Modify(ctx, info) } + +func (u *ApplicationServer) CreateMenu(ctx context.Context, info *appModel.CreateMenuReq) error { + return u.applicationService.CreateMenu(ctx, info) +} + +func (u *ApplicationServer) ModifyMenu(ctx context.Context, info *appModel.ModifyMenuReq) error { + return u.applicationService.ModifyMenu(ctx, info) +} + +func (u *ApplicationServer) DeleteMenu(ctx context.Context, info *appModel.DelMenuReq) error { + return u.applicationService.DeleteMenu(ctx, info) +}