diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java index 144f38ef..378f43a3 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java @@ -458,4 +458,16 @@ public class AppUserController extends ControllerBase { emailService.sendEmail(request.getEmail(), subject, content); return ApiResult.success(); } + + /** + * 授权角色 + * @param request 请求参数 + */ + @PostMapping("authorizeRole") + @MethodInfoMark(value = "授权角色", menuName = "账号管理") + @ApiMark(moduleName = "账号管理", apiName = "授权角色") + public ApiResult authorizeRole(@Valid @RequestBody AuthorizeRoleRequest request) { + appUserService.authorizeRole(request); + return ApiResult.success(); + } } \ No newline at end of file diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DictionaryController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DictionaryController.java index 64b55464..74744a7b 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DictionaryController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DictionaryController.java @@ -22,6 +22,7 @@ import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.EecExcelUtil; import com.nflg.mobilebroken.common.util.PageUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.DictionaryItem; import com.nflg.mobilebroken.repository.entity.DictionaryItemTranslate; import com.nflg.mobilebroken.repository.entity.Language; import com.nflg.mobilebroken.repository.service.IDictionaryItemService; @@ -37,6 +38,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.IOException; @@ -212,4 +214,15 @@ public class DictionaryController extends ControllerBase { throw new NflgException(STATE.BusinessError, "文件处理失败:" + e.getMessage()); } } + + /** + * 根据字典编码获取字典值列表 + * @param dictionaryCode 字典编码 + * @return 字典值列表 + */ + @GetMapping("getListByDictionaryCode") + @ApiMark(moduleName = "字典管理", apiName = "根据字典编码获取字典值列表",isPublic = true) + public ApiResult> getListByDictionaryCode(@Valid @RequestParam @NotBlank String dictionaryCode){ + return ApiResult.success(dictionaryItemService.getListByDictionaryCode(dictionaryCode)); + } } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java index f19d4b0c..ebf3c10d 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java @@ -1,22 +1,24 @@ package com.nflg.mobilebroken.admin.controller; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.nflg.mobilebroken.admin.annotation.ApiMark; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.AdminMenuButtonVO; import com.nflg.mobilebroken.common.pojo.vo.ApiVO; import com.nflg.mobilebroken.common.pojo.vo.MenuVO; -import com.nflg.mobilebroken.repository.service.IAdminApiService; -import com.nflg.mobilebroken.repository.service.IAdminMenuButtonApiMapService; -import com.nflg.mobilebroken.repository.service.IAdminMenuButtonService; -import com.nflg.mobilebroken.repository.service.IAdminMenuService; +import com.nflg.mobilebroken.repository.entity.DictionaryItem; +import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; +import java.util.Objects; /** * 菜单相关接口 @@ -39,6 +41,9 @@ public class MenuController extends ControllerBase { @Resource private IAdminMenuButtonApiMapService adminMenuButtonApiMapService; + @Resource + private IDictionaryItemService dictionaryItemService; + /** * 搜索菜单 * @param request 请求信息 @@ -46,7 +51,22 @@ public class MenuController extends ControllerBase { @PostMapping("searchMenu") @ApiMark(moduleName = "菜单管理", apiName = "搜索菜单") public ApiResult> searchMenu(@Valid @RequestBody MenuSearchRequest request) { - return ApiResult.success(adminMenuService.search(request)); + List items=dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SERVICE); + IPage page=adminMenuService.search(request); + bindMenuService(page.getRecords(),items); + return ApiResult.success(page); + } + + private void bindMenuService(List datas,List items){ + if (CollectionUtil.isNotEmpty(datas)){ + datas.forEach(m -> { + if (Objects.nonNull(m.getServiceDescId())){ + DictionaryItem item=items.stream().filter(i -> i.getId().equals(m.getServiceDescId())).findFirst().get(); + m.setServiceDesc(item.getValue()); + } + bindMenuService(m.getChildren(),items); + }); + } } /** diff --git a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java index 01e0ecc7..84662262 100644 --- a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java +++ b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AdminController.java @@ -88,7 +88,7 @@ public class AdminController extends ControllerBase { @GetMapping("getPermissionMenus") public ApiResult> getPermissionMenus() { VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); - return ApiResult.success(adminRoleService.getMenusByRoleCodes(AdminUserUtil.getUserId())); + return ApiResult.success(adminRoleService.getMenusByRoleCodes("admin",AdminUserUtil.getUserId(), "admin")); } /** diff --git a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java index ed1b9a00..f0003466 100644 --- a/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java +++ b/nflg-mobilebroken-auth/src/main/java/com/nflg/mobilebroken/auth/controller/AppController.java @@ -8,11 +8,15 @@ import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.constant.UserState; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.vo.AppLoginVO; +import com.nflg.mobilebroken.common.pojo.vo.MenuVO; +import com.nflg.mobilebroken.common.util.AppUserUtil; +import com.nflg.mobilebroken.common.util.SaTokenAdminUtil; import com.nflg.mobilebroken.common.util.SaTokenAppUtil; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.AppUser; import com.nflg.mobilebroken.repository.service.IAdminUserService; +import com.nflg.mobilebroken.repository.service.IAdminRoleService; import com.nflg.mobilebroken.repository.service.IAppUserService; import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import org.springframework.web.bind.annotation.GetMapping; @@ -22,6 +26,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.chrono.ChronoLocalDate; +import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -42,6 +47,9 @@ public class AppController extends ControllerBase { @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; + @Resource + private IAdminRoleService adminRoleService; + /** * 用户端登录 * @param userName 用户名 @@ -105,4 +113,14 @@ public class AppController extends ControllerBase { // StpUtil.logout(); // return ApiResult.success(); //} + + /** + * 获取权限菜单 + * @return 权限列表 + */ + @GetMapping("getPermissionMenus") + public ApiResult> getPermissionMenus() { + VUtils.trueThrow(!SaTokenAdminUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); + return ApiResult.success(adminRoleService.getMenusByRoleCodes("app",AppUserUtil.getUserId(), "app")); + } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java index 2cc5bfed..93dd096b 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java @@ -126,4 +126,5 @@ public class Constant { public static final String DICTIONARY_AD_TYPE ="AdvertisementType"; public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition"; + public static final String DICTIONARY_SERVICE = "SystemService"; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/MenuAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/MenuAddRequest.java index 64920f1a..3ac9bd30 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/MenuAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/MenuAddRequest.java @@ -34,4 +34,8 @@ public class MenuAddRequest { // 是否显示 @NotNull private boolean show; + + //服务标识,字典项ID + @NotNull + private Integer serviceDescId; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java index 6212819f..9dfe0818 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java @@ -6,10 +6,7 @@ import lombok.experimental.Accessors; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Data @@ -106,6 +103,9 @@ public class AppUserForAdminVO { //职位id private Integer titleId; + //所属角色 + private Collection roles; + //下级账号 private List children=new ArrayList<>(); diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/MenuVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/MenuVO.java index 77ef952e..2309c4dc 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/MenuVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/MenuVO.java @@ -46,6 +46,12 @@ public class MenuVO { // 修改时间 private LocalDateTime updateTime; + //服务标识,字典项ID + private Integer serviceDescId; + + //服务标识,字典项名称 + private String serviceDesc; + //下级菜单 private List children = new ArrayList<>(); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMenu.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMenu.java index 21ec5b7f..09a48488 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMenu.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminMenu.java @@ -66,6 +66,11 @@ public class AdminMenu implements Serializable { */ private Integer sort; + /** + * 服务标识,字典项ID + */ + private Integer serviceDescId; + /** * 创建人 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUserRoleMap.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUserRoleMap.java index 10b25a02..26a02e80 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUserRoleMap.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/AdminUserRoleMap.java @@ -3,11 +3,12 @@ package com.nflg.mobilebroken.repository.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import java.io.Serializable; + /** *

* @@ -36,4 +37,9 @@ public class AdminUserRoleMap implements Serializable { * 用户id */ private Integer userId; + + /** + * 来源平台 + */ + private String platform; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java index 4e2f7c65..826223e5 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminRoleMapper.java @@ -23,7 +23,7 @@ public interface AdminRoleMapper extends BaseMapper { List getUrlsByRoleCodes(List roleCodes); - List getMenusByRoleCodes(Integer userId); + List getMenusByRoleCodes(String from,Integer userId,Integer serviceId); IPage search(RoleSearchRequest request, Page page); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemMapper.java index 86827f18..6072d447 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DictionaryItemMapper.java @@ -23,4 +23,6 @@ public interface DictionaryItemMapper extends BaseMapper { String getName(String dictionaryCode, String itemCode); List getListByDictionaryCode(String code); + + DictionaryItem getByCode(String dictionaryCode, String dictionaryItemCode); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java index ed449402..9e00a871 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminRoleService.java @@ -31,7 +31,7 @@ public interface IAdminRoleService extends IService { List getUrlsByRoleCodes(List roleCodes); - List getMenusByRoleCodes(Integer userId); + List getMenusByRoleCodes(String from,Integer userId,String serviceName); IPage search(RoleSearchRequest request); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppUserService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppUserService.java index 9c7f56d9..a9fa674c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppUserService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppUserService.java @@ -10,6 +10,7 @@ import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO; import com.nflg.mobilebroken.common.pojo.vo.CompanyVO; import com.nflg.mobilebroken.repository.entity.AppUser; +import javax.validation.Valid; import java.util.List; /** @@ -63,4 +64,6 @@ public interface IAppUserService extends IService { void deleteAppUser(Integer id); List getSimpleAreas(Integer userId); + + void authorizeRole(@Valid AuthorizeRoleRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemService.java index 32907cad..68d1be13 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDictionaryItemService.java @@ -25,4 +25,6 @@ public interface IDictionaryItemService extends IService { Integer getId(String dictionaryName, String dictionaryItemName); List getListByDictionaryCode(String code); + + DictionaryItem getByCode(String dictionaryCode, String DictionaryItemCode); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java index 6b246667..3036158c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java @@ -74,6 +74,7 @@ public class AdminMenuServiceImpl extends ServiceImpl getMenusByRoleCodes(Integer userId) { - List menus=baseMapper.getMenusByRoleCodes(userId); + public List getMenusByRoleCodes(String from,Integer userId,String serviceName) { + DictionaryItem service = dictionaryItemService.getByCode(Constant.DICTIONARY_SERVICE, serviceName); + VUtils.trueThrowBusinessError(Objects.isNull(service)).throwMessage("无效的服务:"+serviceName); + List menus=baseMapper.getMenusByRoleCodes(from,userId,service.getId()); for (int i = 0; i < menus.size(); i++) { MenuVO menu = menus.get(i); bindParent(menu, menus); diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java index 5a1b362d..a10ae63b 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java @@ -176,10 +176,12 @@ public class AdminUserServiceImpl extends ServiceImpl() - .eq(AdminUserRoleMap::getUserId, request.getUserId())); + .eq(AdminUserRoleMap::getUserId, request.getUserId()) + .eq(AdminUserRoleMap::getPlatform, "admin")); if (CollectionUtil.isNotEmpty(request.getRoleIds())) { adminUserRoleMapService.saveBatch(request.getRoleIds().stream().map(roleId -> new AdminUserRoleMap() .setRoleId(roleId) + .setPlatform("admin") .setUserId(request.getUserId())) .collect(Collectors.toList())); } @@ -365,6 +367,7 @@ public class AdminUserServiceImpl extends ServiceImpl getRoles(Integer userId) { Collection roleIds = adminUserRoleMapService.lambdaQuery() .eq(AdminUserRoleMap::getUserId, userId) + .eq(AdminUserRoleMap::getPlatform, "admin") .list() .stream() .map(AdminUserRoleMap::getRoleId) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java index e8e51adc..51ba864a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java @@ -10,10 +10,7 @@ import com.nflg.mobilebroken.common.constant.*; import com.nflg.mobilebroken.common.exception.NflgException; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.*; -import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO; -import com.nflg.mobilebroken.common.pojo.vo.AppUserVO; -import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO; -import com.nflg.mobilebroken.common.pojo.vo.CompanyVO; +import com.nflg.mobilebroken.common.pojo.vo.*; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.common.util.PageUtil; @@ -63,6 +60,12 @@ public class AppUserServiceImpl extends ServiceImpl impl @Resource private ITBaseAreaService adminAreaService; + @Resource + private IAdminUserRoleMapService adminUserRoleMapService; + + @Resource + private IAdminRoleService roleService; + @Resource private RedisTemplate redisTemplate; @@ -288,6 +291,20 @@ public class AppUserServiceImpl extends ServiceImpl impl } } + @Override + public void authorizeRole(AuthorizeRoleRequest request) { + adminUserRoleMapService.remove(new LambdaQueryWrapper() + .eq(AdminUserRoleMap::getUserId, request.getUserId()) + .eq(AdminUserRoleMap::getPlatform, "app")); + if (CollectionUtil.isNotEmpty(request.getRoleIds())) { + adminUserRoleMapService.saveBatch(request.getRoleIds().stream().map(roleId -> new AdminUserRoleMap() + .setRoleId(roleId) + .setPlatform("app") + .setUserId(request.getUserId())) + .collect(Collectors.toList())); + } + } + private void bindChildren1(AreaSimpleVO vo) { List datas = appAreaService.lambdaQuery().eq(AppArea::getParentId, vo.getId()).eq(AppArea::getEnable, true).list(); List vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getName())).collect(Collectors.toList()); @@ -377,9 +394,33 @@ public class AppUserServiceImpl extends ServiceImpl impl .skip((long) (request.getPage() - 1) * request.getPageSize()) .limit(request.getPageSize()) .collect(Collectors.toList()); + page.forEach(it->{ + if (it.getKey().startsWith("u-")) { + it.setRoles(getRoles(it.getId())); + } + }); return new PageData().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page); } + private Collection getRoles(Integer userId) { + Collection roleIds = adminUserRoleMapService.lambdaQuery() + .eq(AdminUserRoleMap::getUserId, userId) + .eq(AdminUserRoleMap::getPlatform, "app") + .list() + .stream() + .map(AdminUserRoleMap::getRoleId) + .collect(Collectors.toSet()); + if (CollectionUtil.isEmpty(roleIds)) { + return Collections.emptyList(); + } + return roleService.lambdaQuery() + .in(AdminRole::getId, roleIds) + .list() + .stream() + .map(r -> new RoleSimpleVO().setId(r.getId()).setName(r.getName())) + .collect(Collectors.toSet()); + } + public PageData searchAppUserForAdmin1(SearchAppUserForAdminRequest request) { Page page = lambdaQuery() .eq(AppUser::getIsDel, false) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java index 244ea2e9..949571f7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java @@ -135,4 +135,9 @@ public class DictionaryItemServiceImpl extends ServiceImpl getListByDictionaryCode(String code) { return baseMapper.getListByDictionaryCode(code); } + + @Override + public DictionaryItem getByCode(String dictionaryCode, String DictionaryItemCode) { + return baseMapper.getByCode(dictionaryCode, DictionaryItemCode); + } } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml index 8dfa7ba8..cb946d43 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminRoleMapper.xml @@ -30,7 +30,7 @@ INNER JOIN admin_role_menu_map rmm ON r.id=rmm.role_id INNER JOIN admin_menu m ON rmm.menu_id=m.id INNER JOIN admin_user_role_map urm ON urm.role_id=r.id - WHERE m.`enable`=1 AND r.`enable`=1 AND urm.user_id=#{userId} + WHERE m.`enable`=1 AND r.`enable`=1 AND urm.user_id=#{userId} AND m.service_desc_id=#{serviceId} AND urm.platform=#{from} + +