From d5afc43c74f5f48490387b482ea25e1799b31f63 Mon Sep 17 00:00:00 2001 From: wxz Date: Sun, 28 Jun 2020 18:51:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E6=97=B6?= =?UTF-8?q?=E5=80=99=EF=BC=8C=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E7=9A=84?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E4=BF=A1=E6=81=AFbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GovLoginServiceImpl.java | 20 +++++++++++++- .../epmet/dto/form/GovStaffRoleFormDTO.java | 12 +++++++++ .../epmet/feign/EpmetUserOpenFeignClient.java | 14 +++++++--- .../EpmetUserOpenFeignClientFallback.java | 11 +++++--- .../controller/GovStaffRoleController.java | 27 ++++++++++++++++--- .../java/com/epmet/dao/GovStaffRoleDao.java | 2 ++ .../java/com/epmet/feign/AuthFeignClient.java | 4 +-- .../epmet/service/GovStaffRoleService.java | 2 ++ .../service/impl/GovStaffRoleServiceImpl.java | 5 ++++ .../main/resources/mapper/GovStaffRoleDao.xml | 9 +++++++ 10 files changed, 91 insertions(+), 15 deletions(-) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovStaffRoleFormDTO.java diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java index bbb71f448b..5c8f90e81e 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java @@ -22,6 +22,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.jwt.JwtTokenProperties; import com.epmet.jwt.JwtTokenUtils; @@ -62,6 +63,8 @@ public class GovLoginServiceImpl implements GovLoginService { private GovOrgFeignClient govOrgFeignClient; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; /** * @param formDTO @@ -297,7 +300,22 @@ public class GovLoginServiceImpl implements GovLoginService { if (userDetails == null) { return; } - List roles = queryGovStaffRoles(staffId, orgId); + + GovStaffRoleFormDTO form = new GovStaffRoleFormDTO(); + form.setRoleIdList(roleIds); + Result> result = userOpenFeignClient.getByIds(form); + if (!result.success()) { + throw new RenException("更新缓存中的角色列表失败:" + result.getInternalMsg()); + } + + List roles = result.getData().stream().map(roleDto -> { + GovTokenDto.Role role = new GovTokenDto.Role(); + role.setRoleName(roleDto.getRoleName()); + role.setRoleKey(roleDto.getRoleKey()); + role.setId(roleDto.getRoleId()); + return role; + }).collect(Collectors.toList()); + userDetails.setRoleList(roles); cpUserDetailRedis.set(userDetails, jwtTokenProperties.getExpire()); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovStaffRoleFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovStaffRoleFormDTO.java new file mode 100644 index 0000000000..9d5ae26351 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovStaffRoleFormDTO.java @@ -0,0 +1,12 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.util.List; + +@Data +public class GovStaffRoleFormDTO { + + private List roleIdList; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index c8c1848738..d4a09e63cc 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -4,12 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerStaffDTO; import com.epmet.dto.form.CustomerStaffRoleListFormDTO; +import com.epmet.dto.form.GovStaffRoleFormDTO; import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.form.TagCustomerFormDTO; -import com.epmet.dto.result.CustomerStaffRoleListResultDTO; -import com.epmet.dto.result.CustomerStaffRoleResultDTO; -import com.epmet.dto.result.LoginUserDetailsResultDTO; -import com.epmet.dto.result.TagCustomerResultDTO; +import com.epmet.dto.result.*; import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; @@ -24,6 +22,7 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:09 */ +//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") @FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) public interface EpmetUserOpenFeignClient { @@ -72,4 +71,11 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/user/getcustomeridbyuserid") Result getCustomerIdByUserId(@RequestBody TagCustomerFormDTO formDTO); + /** + * 根据角色id列表批量查询角色信息 + * @param form + * @return + */ + @PostMapping("/epmetuser/govstaffrole/getbyids") + Result> getByIds(@RequestBody GovStaffRoleFormDTO form); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 54c904449e..9f87d6f530 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -5,12 +5,10 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerStaffDTO; import com.epmet.dto.form.CustomerStaffRoleListFormDTO; +import com.epmet.dto.form.GovStaffRoleFormDTO; import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.form.TagCustomerFormDTO; -import com.epmet.dto.result.CustomerStaffRoleListResultDTO; -import com.epmet.dto.result.CustomerStaffRoleResultDTO; -import com.epmet.dto.result.LoginUserDetailsResultDTO; -import com.epmet.dto.result.TagCustomerResultDTO; +import com.epmet.dto.result.*; import com.epmet.feign.EpmetUserOpenFeignClient; import org.springframework.stereotype.Component; @@ -50,4 +48,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getCustomerIdByUserId", formDTO); } + @Override + public Result> getByIds(GovStaffRoleFormDTO form) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getById", form); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java index 8b8ccd1048..38081f88cd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java @@ -1,17 +1,20 @@ package com.epmet.controller; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.RoleDTO; +import com.epmet.dto.form.GovStaffRoleFormDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; import com.epmet.dto.result.GovStaffRoleTemplateDTO; +import com.epmet.entity.GovStaffRoleEntity; import com.epmet.service.GovStaffRoleService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @RequestMapping("govstaffrole") @RestController @@ -40,4 +43,20 @@ public class GovStaffRoleController { List roleTemplates = govStaffRoleService.listRoleTemplates(); return new Result().ok(roleTemplates); } + + /** + * 使用id列表查询角色列表 + * @param form + * @return + */ + @PostMapping("getbyids") + public Result> getByIds(@RequestBody GovStaffRoleFormDTO form) { + List roleDTOS = new ArrayList<>(); + List roleIdList = form.getRoleIdList(); + if (!CollectionUtils.isEmpty(roleIdList)) { + roleDTOS = roleIdList.stream().map(roleId -> govStaffRoleService.getDTOById(roleId)).collect(Collectors.toList()); + } + + return new Result>().ok(roleDTOS); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java index d7562fafad..275a2e9742 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java @@ -59,4 +59,6 @@ public interface GovStaffRoleDao extends BaseDao { GovStaffRoleDTO getRoleByCustomerIdAndRoleKey(@Param("customerId") String customerId, @Param("roleKey") String roleKey); List listRolesByCustomer(@Param("customerId") String customerId); + + GovStaffRoleResultDTO getDTOById(@Param("roleId") String roleId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java index dd1ed9ec46..cba4210ee7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/feign/AuthFeignClient.java @@ -8,8 +8,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class, url = "localhost:8081") -//@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class) +//@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class, url = "localhost:8081") +@FeignClient(name = ServiceConstant.EPMET_AUTH_SERVER, fallback = AuthFeignClientCallback.class) public interface AuthFeignClient { /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java index 25d6fe495b..1322bf06d1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java @@ -125,4 +125,6 @@ public interface GovStaffRoleService extends BaseService { List listRolesByCustomer(String customerId); List listRoleTemplates(); + + GovStaffRoleResultDTO getDTOById(String roleId); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java index 000ea2cd40..6da54b7c69 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java @@ -176,4 +176,9 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl listRoleTemplates() { return govStaffRoleTemplateDao.listValidateRoles(); } + + @Override + public GovStaffRoleResultDTO getDTOById(String roleId) { + return govStaffRoleDao.getDTOById(roleId); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml index aa495b89f5..22f47ce8bc 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleDao.xml @@ -59,4 +59,13 @@ FROM gov_staff_role r WHERE r.CUSTOMER_ID = #{customerId} + + \ No newline at end of file