From 8b50b807a54d5ca927feb5bdadc807665882c74e Mon Sep 17 00:00:00 2001 From: wangxiaopeng <807933401@qq.com> Date: Mon, 8 Apr 2024 12:19:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=A7=92=E8=89=B2=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/mapper/SysRoleMapper.java | 2 +- .../src/main/resources/mapper/SysRoleMapper.xml | 5 +++-- .../com/cool/store/service/RegionService.java | 7 +++++++ .../store/service/impl/RegionServiceImpl.java | 10 ++++++++++ .../service/impl/UserAuthMappingServiceImpl.java | 15 ++++++++++++++- .../store/controller/webb/RegionController.java | 5 +++++ .../webb/UserAuthMappingController.java | 8 ++++++++ 7 files changed, 48 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java index 1ff259a6f..e931decb1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/SysRoleMapper.java @@ -117,7 +117,7 @@ public interface SysRoleMapper { List selectUserRoleBySourceAndUserId(@Param("source") String source , @Param("userIdList") List userIdList); - List getUserIdListByRoleIdList(@Param("roleIdList") List roleIdList); + List getUserIdListByRoleIdList(@Param("roleIdList") List roleIdList); /** * 获取用户岗位信息 * @param userIdList diff --git a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml index 07bdb7e27..d6bf37949 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/SysRoleMapper.xml @@ -89,9 +89,10 @@ - select - distinct a.user_id + b.role_id as roleId, + b.user_id as userId from enterprise_user_${enterpriseId} a left join enterprise_user_role_${enterpriseId} b on a.user_id=b.user_id diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java index 6ef6c3a1c..8908b7aa0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/RegionService.java @@ -9,6 +9,13 @@ public interface RegionService { RegionPathNameVO getAllRegionName(Long regionId); + /** + * 获取所属战区 + * @param regionId + * @return + */ + String getBelongWarRegionName(Long regionId); + /** * 根据意向区域找大区id * @param wantShopAreaId diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java index 6ee4e68e3..3a442d2f5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/RegionServiceImpl.java @@ -90,6 +90,16 @@ public class RegionServiceImpl implements RegionService { return regionPathNameVO; } + @Override + public String getBelongWarRegionName(Long regionId) { + RegionPathNameVO regionPathNameVO = this.getAllRegionName(regionId); + if(regionPathNameVO != null && StringUtils.isNotBlank(regionPathNameVO.getAllRegionName())){ + String allRegionName = regionPathNameVO.getAllRegionName(); + return allRegionName.substring(allRegionName.indexOf(Constants.M_LINE) + 1); + } + return ""; + } + /** * 根据意向区域找大区id * @param wantShopAreaId diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java index f29eee8ed..970d07a4f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java @@ -113,7 +113,20 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { if(CollectionUtils.isEmpty(roleIds) || Objects.isNull(regionId)){ return Maps.newHashMap(); } - return null; + RegionDO regionDO = regionMapper.getByRegionId(regionId); + if(regionDO == null){ + throw new ServiceException(ErrorCodeEnum.REGION_NOT_EXIST); + } + // 查找有区域权限的人 + List authRegionUserIdList = authWarRegionUser(regionId); + if(CollectionUtils.isEmpty(authRegionUserIdList)){ + return Maps.newHashMap(); + } + List roleIdList = roleIds.stream().map(a -> Long.valueOf(a)).collect(Collectors.toList()); + List enterpriseUserRoleList = sysRoleMapper.getUserIdListByRoleIdList(roleIdList); + enterpriseUserRoleList = enterpriseUserRoleList.stream().filter(o -> authRegionUserIdList.contains(o.getUserId())).collect(Collectors.toList()); + Map> enterpriseUserRoleMap = ListUtils.emptyIfNull(enterpriseUserRoleList).stream().collect(Collectors.groupingBy(EnterpriseUserRole::getRoleId, Collectors.mapping(k->k.getUserId(), Collectors.toList()))); + return enterpriseUserRoleMap; } /** diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/RegionController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/RegionController.java index 9da5b4cea..278de5ba3 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/RegionController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/RegionController.java @@ -40,5 +40,10 @@ public class RegionController { return ResponseResult.success(regionService.listByThirdRegionType(parentId, thirdRegionType)); } + @ApiOperation("获取所属战区") + @GetMapping("/getBelongWarRegionName") + public ResponseResult getBelongWarRegionName(@RequestParam(value = "regionId", required = true) Long regionId) { + return ResponseResult.success(regionService.getBelongWarRegionName(regionId)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/UserAuthMappingController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/UserAuthMappingController.java index 49428c3c7..9d9a8c083 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/UserAuthMappingController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/UserAuthMappingController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * @ClassName UserAuthMappingController @@ -41,4 +42,11 @@ public class UserAuthMappingController { return ResponseResult.success(userAuthMappingService.listWantShopAreaIdByUserId(userId)); } + @ApiOperation("找角色下的人") + @GetMapping("/getUserIdByRoleIdAndRegionId") + public ResponseResult>> getUserIdByRoleIdAndRegionId(@RequestParam(value = "roleIds", required = true) List roleIds, + @RequestParam(value = "regionId", required = true) Long regionId) { + return ResponseResult.success(userAuthMappingService.getUserIdByRoleIdAndRegionId(roleIds, regionId)); + } + }