From d667ebe412e41d3d29b79ea61deaa23d32c36194 Mon Sep 17 00:00:00 2001 From: hosinokamui Date: Fri, 20 Mar 2020 19:03:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/feign/EpmetUserFeignClient.java | 5 +-- .../tools/constant/ServiceConstant.java | 5 +++ .../main/java/com/epmet/dto/OperRoleDTO.java | 7 ++++ .../epmet/controller/OperMenuController.java | 14 ++++++-- .../epmet/controller/OperRoleController.java | 8 +++++ .../controller/OperRoleUserController.java | 24 +++++++++++++ .../com/epmet/entity/OperLanguageEntity.java | 2 +- .../java/com/epmet/entity/OperMenuEntity.java | 2 +- .../com/epmet/entity/OperResourceEntity.java | 2 +- .../java/com/epmet/entity/OperRoleEntity.java | 2 +- .../com/epmet/entity/OperRoleMenuEntity.java | 2 +- .../com/epmet/entity/OperRoleUserEntity.java | 2 +- .../com/epmet/feign/EpmetUserFeignClient.java | 2 +- .../epmet/service/OperRoleMenuService.java | 18 ++++++++++ .../epmet/service/OperRoleUserService.java | 20 +++++++++++ .../service/impl/OperRoleMenuServiceImpl.java | 33 +++++++++++++++++ .../service/impl/OperRoleServiceImpl.java | 7 ++++ .../service/impl/OperRoleUserServiceImpl.java | 34 ++++++++++++++++++ .../main/resources/mapper/OperRoleMenuDao.xml | 2 +- .../main/resources/mapper/OperRoleUserDao.xml | 2 +- .../main/java/com/epmet/dto/OperUserDTO.java | 7 ++++ .../epmet/controller/OperUserController.java | 8 +++-- .../epmet/feign/OperRoleUserFeignClient.java | 36 +++++++++++++++++++ .../OperRoleUserFeignClientFallBack.java | 28 +++++++++++++++ .../service/impl/OperUserServiceImpl.java | 12 +++++++ 25 files changed, 269 insertions(+), 15 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/feign/OperRoleUserFeignClient.java create mode 100644 epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/OperRoleUserFeignClientFallBack.java diff --git a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index 0610da1880..2b1813f0cc 100644 --- a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -10,13 +10,14 @@ import com.epmet.feign.fallback.EpmetUserFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * @Description * @Author yinzuomei * @Date 2020/3/16 14:48 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class, url="http://localhost:8087") public interface EpmetUserFeignClient { /** @@ -49,5 +50,5 @@ public interface EpmetUserFeignClient { * @Date 2020/3/16 16:14 **/ @PostMapping(value = "epmetuser/customeruser/selectLoginUserInfoByPassword", consumes = MediaType.APPLICATION_JSON_VALUE) - Result selectLoginUserInfoByPassword(PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO); + Result selectLoginUserInfoByPassword(@RequestBody PasswordLoginUserInfoFormDTO passwordLoginUserInfoFormDTO); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java index c358b530b3..666d2dd8fd 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java @@ -53,4 +53,9 @@ public interface ServiceConstant { * 政府端组织架构 */ String GOV_ORG_SERVER = "gov-org-server"; + + /** + * 运营端访问权限控制 + */ + String OPER_ACCESS_SERVER = "oper-access-server"; } diff --git a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/dto/OperRoleDTO.java b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/dto/OperRoleDTO.java index b8710f2c47..3a60a013cc 100644 --- a/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/dto/OperRoleDTO.java +++ b/epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/dto/OperRoleDTO.java @@ -19,6 +19,8 @@ package com.epmet.dto; import java.io.Serializable; import java.util.Date; +import java.util.List; + import lombok.Data; @@ -83,4 +85,9 @@ public class OperRoleDTO implements Serializable { */ private Date updatedTime; + /** + * 菜单ID列表 + */ + private List menuIdList; + } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java index 933f55f6e1..b8af4cade1 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java @@ -11,14 +11,12 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.OperMenuDTO; -import com.epmet.dto.form.UserInfoDto; import com.epmet.excel.OperMenuExcel; import com.epmet.service.OperMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -101,4 +99,16 @@ public class OperMenuController { return new Result>().ok(set); } + /** + * 角色菜单权限 + * @param tokenDto token + * @return + */ + @GetMapping("select") + public Result> select(@LoginUser TokenDto tokenDto){ + List list = operMenuService.getUserMenuList(tokenDto, null); + + return new Result>().ok(list); + } + } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleController.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleController.java index 614c15149c..fea496bcda 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleController.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleController.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.OperRoleDTO; import com.epmet.excel.OperRoleExcel; +import com.epmet.service.OperRoleMenuService; import com.epmet.service.OperRoleService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -50,6 +51,8 @@ public class OperRoleController { @Autowired private OperRoleService operRoleService; + @Autowired + private OperRoleMenuService operRoleMenuService; @GetMapping("page") public Result> page(@RequestParam Map params){ @@ -60,6 +63,11 @@ public class OperRoleController { @GetMapping("{id}") public Result get(@PathVariable("id") String id){ OperRoleDTO data = operRoleService.get(id); + + //查询角色对应的菜单 + List menuIdList = operRoleMenuService.getMenuIdList(id); + data.setMenuIdList(menuIdList); + return new Result().ok(data); } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java index ccc4c56920..d7e22682c2 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java @@ -91,4 +91,28 @@ public class OperRoleUserController { ExcelUtils.exportExcelToTarget(response, null, list, OperRoleUserExcel.class); } + /** + * 获取权限id列表 + * @param id 用户id + * @return List + * @author zhaoqifeng + */ + @GetMapping("getRoleIdList/{id}") + public Result>getRoleIdList(@PathVariable("id") String id) { + List list = operRoleUserService.getRoleIdList(id); + return new Result>().ok(list); + } + + /** + * 保存更新权限 + * @param userId 用户id + * @param roleIdList 权限列表 + * @author zhaoqifeng + */ + @PostMapping("saveOrUpdateRole") + public Result saveOrUpdate(@RequestParam("userId") String userId, @RequestBody List roleIdList) { + operRoleUserService.saveOrUpdate(userId, roleIdList); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperLanguageEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperLanguageEntity.java index 685c9fdd29..3e822d5665 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperLanguageEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperLanguageEntity.java @@ -21,7 +21,7 @@ import java.io.Serializable; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_language") +@TableName("oper_language") public class OperLanguageEntity implements Serializable { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperMenuEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperMenuEntity.java index dd5b161730..549246c970 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperMenuEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperMenuEntity.java @@ -25,7 +25,7 @@ import java.util.Date; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_menu") +@TableName("oper_menu") public class OperMenuEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperResourceEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperResourceEntity.java index 19d5718d0a..d10956ac72 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperResourceEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperResourceEntity.java @@ -25,7 +25,7 @@ import java.util.Date; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_resource") +@TableName("oper_resource") public class OperResourceEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleEntity.java index 18b34f123f..527bdcc387 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleEntity.java @@ -25,7 +25,7 @@ import java.util.Date; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_role") +@TableName("oper_role") public class OperRoleEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleMenuEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleMenuEntity.java index f467f8ace2..7d32968ef8 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleMenuEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleMenuEntity.java @@ -22,7 +22,7 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_role_menu") +@TableName("oper_role_menu") public class OperRoleMenuEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; /** diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleUserEntity.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleUserEntity.java index 4cf1925259..8eb9612417 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleUserEntity.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/entity/OperRoleUserEntity.java @@ -21,7 +21,7 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("sys_role_user") +@TableName("oper_role_user") public class OperRoleUserEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index c3f44bbc57..6711ba3eb2 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; * @dscription * @date 2020/3/19 9:32 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class, url="http://localhost:8087") public interface EpmetUserFeignClient { /** diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java index 20510c8edc..27ce22abed 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java @@ -92,4 +92,22 @@ public interface OperRoleMenuService extends BaseService { * @date 2020-03-18 */ void delete(String[] ids); + + /** + * 根据角色ID,获取菜单ID列表 + */ + List getMenuIdList(String roleId); + + /** + * 保存或修改 + * @param roleId 角色ID + * @param menuIdList 菜单ID列表 + */ + void saveOrUpdate(String roleId, List menuIdList); + + /** + * 根据角色id,删除角色菜单关系 + * @param roleId 角色id + */ + void deleteByRoleId(String roleId); } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java index f569984008..84c4945d6b 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java @@ -92,4 +92,24 @@ public interface OperRoleUserService extends BaseService { * @date 2020-03-18 */ void delete(String[] ids); + + /** + * 保存或修改 + * @param userId 用户ID + * @param roleIdList 角色ID列表 + */ + void saveOrUpdate(String userId, List roleIdList); + + /** + * 根据用户id,删除角色用户关系 + * @param userId 用户id + */ + void deleteByUserId(String userId); + + /** + * 角色ID列表 + * @param userId 用户ID + * @return List + */ + List getRoleIdList(String userId); } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java index 75c5d30419..cc0ded931e 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -101,4 +102,36 @@ public class OperRoleMenuServiceImpl extends BaseServiceImpl getMenuIdList(String roleId){ + return baseDao.getMenuIdList(roleId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveOrUpdate(String roleId, List menuIdList) { + //先删除角色菜单关系 + deleteByRoleId(roleId); + + //角色没有一个菜单权限的情况 + if(CollUtil.isEmpty(menuIdList)){ + return ; + } + + //保存角色菜单关系 + for(String menuId : menuIdList){ + OperRoleMenuEntity operRoleMenuEntity = new OperRoleMenuEntity(); + operRoleMenuEntity.setMenuId(menuId); + operRoleMenuEntity.setRoleId(roleId); + + //保存 + insert(operRoleMenuEntity); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteByRoleId(String roleId) { + baseDao.deleteByRoleId(roleId); + } } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleServiceImpl.java index 323400975c..4caaddd7fa 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleServiceImpl.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleServiceImpl.java @@ -27,6 +27,7 @@ import com.epmet.dao.OperRoleDao; import com.epmet.dto.OperRoleDTO; import com.epmet.entity.OperRoleEntity; import com.epmet.redis.OperRoleRedis; +import com.epmet.service.OperRoleMenuService; import com.epmet.service.OperRoleService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -48,6 +49,8 @@ public class OperRoleServiceImpl extends BaseServiceImpl page(Map params) { @@ -85,6 +88,8 @@ public class OperRoleServiceImpl extends BaseServiceImpl roleIdList) { + //先删除角色用户关系 + deleteByUserId(userId); + + //用户没有一个角色权限的情况 + if(CollUtil.isEmpty(roleIdList)){ + return ; + } + + //保存角色用户关系 + for(String roleId : roleIdList){ + OperRoleUserEntity operRoleUserEntity = new OperRoleUserEntity(); + operRoleUserEntity.setUserId(userId); + operRoleUserEntity.setRoleId(roleId); + + //保存 + insert(operRoleUserEntity); + } + } + + @Override + public void deleteByUserId(String userId) { + baseDao.deleteByUserId(userId); + } + + @Override + public List getRoleIdList(String userId) { + + return baseDao.getRoleIdList(userId); + } + } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleMenuDao.xml b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleMenuDao.xml index 601c1a7f2e..741caa006a 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleMenuDao.xml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleMenuDao.xml @@ -3,7 +3,7 @@ - select menu_id from oper_role_menu where role_id = #{value} diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml index c0415f8998..3dc215af73 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml @@ -14,7 +14,7 @@ delete from oper_role_user where user_id = #{value} - select role_id from oper_role_user where user_id = #{value} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/OperUserDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/OperUserDTO.java index 5fb5e97876..7470b30ef2 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/OperUserDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/OperUserDTO.java @@ -19,6 +19,8 @@ package com.epmet.dto; import java.io.Serializable; import java.util.Date; +import java.util.List; + import lombok.Data; @@ -123,4 +125,9 @@ public class OperUserDTO implements Serializable { */ private Date updatedTime; + /** + * 角色ID列表 + */ + private List roleIdList; + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java index b43cf0f74d..6bd4388bdc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java @@ -20,7 +20,6 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -30,10 +29,10 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.OperUserDTO; import com.epmet.excel.OperUserExcel; +import com.epmet.feign.OperRoleUserFeignClient; import com.epmet.service.OperUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -52,6 +51,8 @@ public class OperUserController { @Autowired private OperUserService operUserService; + @Autowired + private OperRoleUserFeignClient operRoleUserFeignClient; @GetMapping("page") public Result> page(@RequestParam Map params) { @@ -62,6 +63,9 @@ public class OperUserController { @GetMapping("{id}") public Result get(@PathVariable("id") String id) { OperUserDTO data = operUserService.get(id); + //用户角色列表 + Result> roleIdList = operRoleUserFeignClient.getRoleIdList(id); + data.setRoleIdList(roleIdList.getData()); return new Result().ok(data); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/OperRoleUserFeignClient.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/OperRoleUserFeignClient.java new file mode 100644 index 0000000000..8cc1763152 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/OperRoleUserFeignClient.java @@ -0,0 +1,36 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.fallback.OperRoleUserFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/20 17:19 + */ +@FeignClient(name = ServiceConstant.OPER_ACCESS_SERVER, fallback = OperRoleUserFeignClientFallBack.class, url = "http://localhost:8093") +public interface OperRoleUserFeignClient { + + /** + * 获取权限id列表 + * @param id 用户id + * @return List + * @author zhaoqifeng + */ + @GetMapping("/oper/access/operroleuser/getRoleIdList/{id}") + Result> getRoleIdList(@PathVariable("id") String id); + + /** + * 保存更新权限 + * @param userId 用户id + * @param roleIdList 权限列表 + * @author zhaoqifeng + */ + @PostMapping("/oper/access/operroleuser/saveOrUpdateRole") + Result saveOrUpdate(@RequestParam("userId") String userId, @RequestBody List roleIdList); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/OperRoleUserFeignClientFallBack.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/OperRoleUserFeignClientFallBack.java new file mode 100644 index 0000000000..024e011004 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/fallback/OperRoleUserFeignClientFallBack.java @@ -0,0 +1,28 @@ +package com.epmet.feign.fallback; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.OperRoleUserFeignClient; +import org.springframework.stereotype.Component; +import sun.misc.Contended; + +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/20 17:27 + */ +@Component +public class OperRoleUserFeignClientFallBack implements OperRoleUserFeignClient { + @Override + public Result> getRoleIdList(String id) { + return ModuleUtils.feignConError(ServiceConstant.OPER_ACCESS_SERVER, "getRoleIdList",id); + } + + @Override + public Result saveOrUpdate(String userId, List roleIdList) { + return ModuleUtils.feignConError(ServiceConstant.OPER_ACCESS_SERVER, "saveOrUpdate",userId); + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java index e2ad212783..b339ce9f03 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java @@ -20,12 +20,14 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.enums.SuperAdminEnum; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.OperUserDao; import com.epmet.dto.OperUserDTO; import com.epmet.entity.OperUserEntity; +import com.epmet.feign.OperRoleUserFeignClient; import com.epmet.redis.OperUserRedis; import com.epmet.service.OperUserService; import org.apache.commons.lang3.StringUtils; @@ -50,6 +52,8 @@ public class OperUserServiceImpl extends BaseServiceImpl page(Map params) { @@ -87,7 +91,12 @@ public class OperUserServiceImpl extends BaseServiceImpl Date: Sat, 21 Mar 2020 11:42:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=92=8C=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/feign/EpmetUserFeignClient.java | 2 +- .../controller/OperRoleUserController.java | 22 +++++++ .../java/com/epmet/dao/OperRoleMenuDao.java | 7 ++ .../java/com/epmet/dao/OperRoleUserDao.java | 12 ++++ .../com/epmet/feign/EpmetUserFeignClient.java | 2 +- .../epmet/service/OperRoleMenuService.java | 6 ++ .../epmet/service/OperRoleUserService.java | 18 +++++ .../service/impl/OperRoleMenuServiceImpl.java | 8 +++ .../service/impl/OperRoleServiceImpl.java | 7 ++ .../service/impl/OperRoleUserServiceImpl.java | 20 +++++- .../main/resources/mapper/OperRoleMenuDao.xml | 19 ++++-- .../main/resources/mapper/OperRoleUserDao.xml | 23 +++++-- .../dto/result/QueryOperUserResultDto.java | 65 +++++++++++++++++++ .../epmet/controller/OperUserController.java | 7 +- .../epmet/feign/OperRoleUserFeignClient.java | 10 ++- .../OperRoleUserFeignClientFallBack.java | 5 ++ .../service/impl/OperUserServiceImpl.java | 16 +++++ 17 files changed, 231 insertions(+), 18 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/QueryOperUserResultDto.java diff --git a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index 2b1813f0cc..0f2817d272 100644 --- a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody; * @Author yinzuomei * @Date 2020/3/16 14:48 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class, url="http://localhost:8087") +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class) public interface EpmetUserFeignClient { /** diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java index d7e22682c2..1581731ce2 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperRoleUserController.java @@ -115,4 +115,26 @@ public class OperRoleUserController { return new Result(); } + /** + * 根据用户id,删除角色用户关系 + * @param id 用户id + * @return Result + */ + @PostMapping("deleteByUserId") + public Result deleteByUserId(String id) { + operRoleUserService.deleteByUserId(id); + return new Result(); + } + + /** + * 根据用户ids,删除角色用户关系 + * @param ids 用户ids + * @return Result + */ + @PostMapping("deleteByUserIds") + public Result deleteByUserIds(@RequestBody String[] ids) { + operRoleUserService.deleteByUserIds(ids); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleMenuDao.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleMenuDao.java index 5e915925a4..005f9e44ac 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleMenuDao.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleMenuDao.java @@ -39,4 +39,11 @@ public interface OperRoleMenuDao extends BaseDao { * @param menuId 菜单id */ void deleteByMenuId(String menuId); + + + /** + * 根据角色ids,删除角色菜单关系 + * @param roleIds 角色ids + */ + void deleteByRoleIds(String[] roleIds); } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleUserDao.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleUserDao.java index 4741b5b91a..f33c5a241a 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleUserDao.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperRoleUserDao.java @@ -29,6 +29,18 @@ public interface OperRoleUserDao extends BaseDao { */ void deleteByRoleIds(String[] roleIds); + /** + * 根据用户ids,删除角色用户关系 + * @param userIds 用户ids + */ + void deleteByUserIds(String[] userIds); + + /** + * 根据角色id,删除角色用户关系 + * @param roleId 角色id + */ + void deleteByRoleId(String roleId); + /** * 根据用户id,删除角色用户关系 * @param userId 用户id diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index 6711ba3eb2..c3f44bbc57 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; * @dscription * @date 2020/3/19 9:32 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class, url="http://localhost:8087") +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class) public interface EpmetUserFeignClient { /** diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java index 27ce22abed..50d3e452ac 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleMenuService.java @@ -110,4 +110,10 @@ public interface OperRoleMenuService extends BaseService { * @param roleId 角色id */ void deleteByRoleId(String roleId); + + /** + * 根据角色ids,删除角色菜单关系 + * @param roleIds + */ + void deleteByRoleIds(String[] roleIds); } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java index 84c4945d6b..c2e323528c 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperRoleUserService.java @@ -100,6 +100,12 @@ public interface OperRoleUserService extends BaseService { */ void saveOrUpdate(String userId, List roleIdList); + /** + * 根据角色id,删除角色用户关系 + * @param roleId 角色id + */ + void deleteByRoleId(String roleId); + /** * 根据用户id,删除角色用户关系 * @param userId 用户id @@ -112,4 +118,16 @@ public interface OperRoleUserService extends BaseService { * @return List */ List getRoleIdList(String userId); + + /** + * 根据角色ids,删除角色用户关系 + * @param roleIds 角色ids + */ + void deleteByRoleIds(String[] roleIds); + + /** + * 根据用户ids,删除角色用户关系 + * @param userIds 用户ids + */ + void deleteByUserIds(String[] userIds); } \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java index cc0ded931e..d179b6245e 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperRoleMenuServiceImpl.java @@ -49,6 +49,8 @@ public class OperRoleMenuServiceImpl extends BaseServiceImpl page(Map params) { @@ -134,4 +136,10 @@ public class OperRoleMenuServiceImpl extends BaseServiceImpl page(Map params) { @@ -106,6 +109,10 @@ public class OperRoleServiceImpl extends BaseServiceImpl page(Map params) { @@ -124,9 +126,14 @@ public class OperRoleUserServiceImpl extends BaseServiceImpl - - delete from oper_role_menu where role_id = #{value} - + + update oper_role_menu set del_flag = 1 where del_flag = 0 and role_id in + + #{roleId} + + - - delete from oper_role_menu where menu_id = #{value} - + + update oper_role_menu set del_flag = 1 where role_id = #{value} and del_flag = 0 + + + + update oper_role_menu set del_flag = 1 where menu_id = #{value} and del_flag = 0 + diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml index 3dc215af73..e4e3f7a33d 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperRoleUserDao.xml @@ -3,16 +3,27 @@ - - delete from oper_role_user where role_id in + + update oper_role_user set del_flag = 1 where del_flag = 0 and role_id in #{roleId} - + - - delete from oper_role_user where user_id = #{value} - + + update oper_role_user set del_flag = 1 where del_flag = 0 and user_id in + + #{userId} + + + + + update oper_role_user set del_flag = 1 where role_id = #{value} and del_flag = 0 + + + + update oper_role_user set del_flag = 1 where user_id = #{value} and del_flag = 0 +