diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovAccessFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovAccessFeignClient.java index 180cef4025..4d04ce783d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovAccessFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonGovAccessFeignClient.java @@ -2,40 +2,21 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.HasSpecifiedPermissionFormDTO; -import com.epmet.commons.tools.dto.form.LoginUserInfoFormDTO; -import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO; -import com.epmet.commons.tools.dto.form.RoleOpeScopeResultDTO; import com.epmet.commons.tools.feign.fallback.CommonGovAccessFeignClientFallback; import com.epmet.commons.tools.utils.Result; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import java.util.List; /** * @Description * @Author sun */ -//, url = "localhost:8099" +//@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = CommonGovAccessFeignClientFallback.class, url = "localhost:8099") @FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = CommonGovAccessFeignClientFallback.class) public interface CommonGovAccessFeignClient { - /** - * 查询登陆用户信息 - * @return - */ - @PostMapping("/gov/access/access/loginuserinfo") - Result getLoginUserInfo(@RequestBody LoginUserInfoFormDTO dto); - - /** - * 查询角色所有operation及其范围(缓存) - * @return - */ - @PostMapping("/gov/access/access/roleallopesandscopes/{roleId}") - Result> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId); - /** * 用户是否具有指定权限 * @param form diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovAccessFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovAccessFeignClientFallback.java index feb8af499f..bc564fe148 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovAccessFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonGovAccessFeignClientFallback.java @@ -2,16 +2,10 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.HasSpecifiedPermissionFormDTO; -import com.epmet.commons.tools.dto.form.LoginUserInfoFormDTO; -import com.epmet.commons.tools.dto.form.LoginUserInfoResultDTO; -import com.epmet.commons.tools.dto.form.RoleOpeScopeResultDTO; import com.epmet.commons.tools.feign.CommonGovAccessFeignClient; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.PathVariable; - -import java.util.List; /** * 调用政府端权限 @@ -22,16 +16,6 @@ import java.util.List; @Component public class CommonGovAccessFeignClientFallback implements CommonGovAccessFeignClient { - @Override - public Result getLoginUserInfo(LoginUserInfoFormDTO dto) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getLoginUserInfo", dto); - } - - @Override - public Result> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId){ - return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listRoleAllOperationScopesByRoleId", roleId); - } - @Override public Result hasSpecifiedPermission(HasSpecifiedPermissionFormDTO form) { return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "hasSpecifiedPermission", form); diff --git a/epmet-gateway/deploy/docker-compose-dev.yml b/epmet-gateway/deploy/docker-compose-dev.yml index be13116e66..b4bc50d97e 100644 --- a/epmet-gateway/deploy/docker-compose-dev.yml +++ b/epmet-gateway/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-gateway-server: container_name: epmet-gateway-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.15 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.16 ports: - "8080:8080" network_mode: host # 使用现有网络 diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index a8ba10b681..05dff2093f 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.15 + 0.3.16 com.epmet epmet-cloud diff --git a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java index 9934c62217..22ac52df2f 100644 --- a/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java +++ b/epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java @@ -76,6 +76,31 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory().error(e.getCode(),e.getMsg())); } diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserInfoResultDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java similarity index 56% rename from epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserInfoResultDTO.java rename to epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java index 440e5eb307..aba19d20a8 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserInfoResultDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/LoginUserDetailsResultDTO.java @@ -5,17 +5,22 @@ import lombok.Data; import java.util.Set; @Data -public class LoginUserInfoResultDTO { +public class LoginUserDetailsResultDTO { /** - * 用户ID + * 政府端:gov、居民端:resi、运营端:oper */ - private String userId; + private String app; + + /** + * PC端:web、微信小程序:wxmp + */ + private String client; /** - * 权限列表 + * 用户ID */ - private Set permissions; + private String userId; /** * 角色列表 @@ -28,18 +33,24 @@ public class LoginUserInfoResultDTO { private Set deptIdList; /** - * 组织ID + * 当前登录的组织id(顶级) */ - private String orgIdPath; + private String agencyId; /** - * 网格ID + * 组织ID */ - private String gridId; + private String orgIdPath; /** * 网格ID列表 */ private Set gridIdList; + /** + * 当前工作人员进入的客户id + */ + private String customerId; + + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java index 8a68bec452..487c854dd9 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java @@ -1,16 +1,13 @@ package com.epmet.controller; -import com.epmet.commons.tools.security.dto.GovTokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; -import com.epmet.dto.result.LoginUserInfoResultDTO; import com.epmet.dto.result.RoleOpeScopeResultDTO; import com.epmet.service.AccessService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.validation.constraints.NotBlank; import java.util.List; import java.util.Set; @@ -46,26 +43,26 @@ public class AccessController { return new Result(); } - /** - * 从缓存中查询用户信息(DataFilterAspect中用到) - * @return - */ - @PostMapping("loginuserinfo") - public Result getLoginUserInfo(@RequestBody StaffPermCacheFormDTO dto) { - ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class); - GovTokenDto govTokenDto = accessService.getUserDetails(dto.getApp(), dto.getClient(), dto.getStaffId()); - LoginUserInfoResultDTO resultDTO = null; - if (govTokenDto != null) { - resultDTO = new LoginUserInfoResultDTO(); - resultDTO.setRoleIdList(govTokenDto.getRoleIdList()); - //resultDTO.setGridId(govTokenDto.getGridId()); - resultDTO.setOrgIdPath(govTokenDto.getOrgIdPath()); - resultDTO.setGridIdList(govTokenDto.getGridIdList()); - resultDTO.setDeptIdList(govTokenDto.getDeptIdList()); - resultDTO.setUserId(govTokenDto.getUserId()); - } - return new Result().ok(resultDTO); - } + ///** + // * 从缓存中查询用户信息(DataFilterAspect中用到) + // * @return + // */ + //@PostMapping("loginuserinfo") + //public Result getLoginUserInfo(@RequestBody StaffPermCacheFormDTO dto) { + // ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class); + // GovTokenDto govTokenDto = accessService.getUserDetails(dto.getApp(), dto.getClient(), dto.getStaffId()); + // LoginUserInfoResultDTO resultDTO = null; + // if (govTokenDto != null) { + // resultDTO = new LoginUserInfoResultDTO(); + // resultDTO.setRoleIdList(govTokenDto.getRoleIdList()); + // //resultDTO.setGridId(govTokenDto.getGridId()); + // resultDTO.setOrgIdPath(govTokenDto.getOrgIdPath()); + // resultDTO.setGridIdList(govTokenDto.getGridIdList()); + // resultDTO.setDeptIdList(govTokenDto.getDeptIdList()); + // resultDTO.setUserId(govTokenDto.getUserId()); + // } + // return new Result().ok(resultDTO); + //} /** * 查询角色的操作key对应操作范围列表(缓存) diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java index 831126f6bf..de151c9eed 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java @@ -2,6 +2,7 @@ package com.epmet.service; import com.epmet.commons.tools.security.dto.GovTokenDto; import com.epmet.dto.form.GetSQLFilterFormDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.RoleOpeScopeResultDTO; import java.util.List; @@ -17,10 +18,10 @@ public interface AccessService { void updatePermissionCache(String staffId, String app, String client, Set permissions, Set roleIdList, String orgIdPath, String gridId); /** - * 查询用户当前权限列表 + * 查询登陆用户登陆信息 * @return */ - GovTokenDto getUserDetails(String app, String client, String staffId); + LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String staffId); /** * 查询角色的操作key对应操作范围列表 diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java index 8c7e448f64..8adcf8c301 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java @@ -16,6 +16,7 @@ import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.GetSQLFilterFormDTO; import com.epmet.dto.form.StaffRoleFormDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.RoleOpeScopeResultDTO; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.GovOrgFeignClient; @@ -90,8 +91,8 @@ public class AccessServiceImpl implements AccessService { } @Override - public GovTokenDto getUserDetails(String app, String client, String staffId) { - return cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class); + public LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String staffId) { + return cpUserDetailRedis.get(app, client, staffId, LoginUserDetailsResultDTO.class); } /** @@ -132,7 +133,7 @@ public class AccessServiceImpl implements AccessService { return true; } - GovTokenDto userDetails = getUserDetails(app, client, userId); + LoginUserDetailsResultDTO userDetails = getLoginUserDetails(app, client, userId); if (userDetails == null) { return false; } @@ -157,7 +158,7 @@ public class AccessServiceImpl implements AccessService { @Override public String getSqlFilterSegment(GetSQLFilterFormDTO form) { hasConditions.set(false); - GovTokenDto userDetails = getUserDetails(form.getApp(), form.getClient(), form.getUserId()); + LoginUserDetailsResultDTO userDetails = getLoginUserDetails(form.getApp(), form.getClient(), form.getUserId()); if (userDetails == null) { logger.error("查询SQL过滤脚本:没有找到用户的登陆信息:app: {}, client: {}, userId:{}", form.getApp(), form.getClient(), form.getUserId()); throw new RenException(EpmetErrorCode.ERR10006.getCode()); @@ -453,7 +454,7 @@ public class AccessServiceImpl implements AccessService { @Override public Set listOperationPermissions(String staffId, String currAgencyId) { - GovTokenDto userDetails = getUserDetails(loginUserUtil.getLoginUserApp(), loginUserUtil.getLoginUserClient(), loginUserUtil.getLoginUserId()); + LoginUserDetailsResultDTO userDetails = getLoginUserDetails(loginUserUtil.getLoginUserApp(), loginUserUtil.getLoginUserClient(), loginUserUtil.getLoginUserId()); if (userDetails == null) { throw new RenException(EpmetErrorCode.ERR10006.getCode(), EpmetErrorCode.ERR10006.getMsg()); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java new file mode 100644 index 0000000000..7c1af89a00 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/LoginUserDetailsFormDTO.java @@ -0,0 +1,10 @@ +package com.epmet.dto.form; + +import lombok.Data; + +@Data +public class LoginUserDetailsFormDTO { + private String app; + private String client; + private String userId; +} diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml index 8a1d84ff15..6d258a8771 100644 --- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml +++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-user-server: container_name: epmet-user-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.53 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.55 ports: - "8087:8087" network_mode: host # 不会创建新的网络 diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 37dfbcf945..482d837c19 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.53 + 0.3.55 com.epmet epmet-user diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java index d7f0f28dde..a02a38b24a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java @@ -10,11 +10,11 @@ import com.epmet.dto.UserDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CreatedTimeByUserIdResultDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.MyResiUserInfoResultDTO; import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; import com.epmet.service.UserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -111,4 +111,15 @@ public class UserController { return new Result().ok(userService.resiMyselfMsg(myResiUserInfoFormDTO)); } + /** + * 从缓存中查询已登录用户的基本信息以及角色等相关信息 + * @return + */ + @PostMapping("loginuserdetails") + public Result getLoginUserDetails(@RequestBody LoginUserDetailsFormDTO dto) { + ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class); + LoginUserDetailsResultDTO govTokenDto = userService.getLoginUserDetails(dto.getApp(), dto.getClient(), dto.getUserId()); + return new Result().ok(govTokenDto); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java index a7bafa437e..1df8d94607 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java @@ -1,19 +1,16 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CreatedTimeByUserIdResultDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.MyResiUserInfoResultDTO; import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; import com.epmet.entity.UserEntity; -import java.util.List; -import java.util.Map; - /** * @Description * @IntefaceName UserService @@ -73,4 +70,10 @@ public interface UserService extends BaseService { * @date 2020.05.22 19:24 **/ MyResiUserInfoResultDTO resiMyselfMsg(MyResiUserInfoFormDTO myResiUserInfoFormDTO); + + /** + * 查询登陆用户信息 + * @return + */ + LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String staffId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 3909ab2c2a..621259be47 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; import com.epmet.dao.UserDao; @@ -42,6 +43,8 @@ public class UserServiceImpl extends BaseServiceImpl implem private GovOrgFeignClient govOrgFeignClient; @Autowired private UserRoleDao userRoleDao; + @Autowired + private CpUserDetailRedis cpUserDetailRedis; private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class); @@ -174,4 +177,9 @@ public class UserServiceImpl extends BaseServiceImpl implem return null; } + + @Override + public LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String userId) { + return cpUserDetailRedis.get(app, client, userId, LoginUserDetailsResultDTO.class); + } }