xiejun
2023-07-17 1f0a10ab714699acc85430b90bcb5a1eeaad1eec
Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java
@@ -58,6 +58,8 @@
import org.springframework.util.DigestUtils;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.vci.ubcs.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD;
@@ -242,6 +244,7 @@
      if (ObjectUtil.isEmpty(user)) {
         return null;
      }
      user.setDeptName(Func.join(SysCache.getDeptNames(user.getDeptId())));
      UserInfo userInfo = new UserInfo();
      userInfo.setUser(user);
      if (Func.isNotEmpty(user)) {
@@ -535,11 +538,28 @@
      return this.update(Wrappers.<User>lambdaUpdate().in(User::getId, userIds).set(User::getStrategyUpdateStatus,CommonConstant.IS_DEFAULT));
   }
   /**
    * 获取到指定身份权限的用户列表
    * @param user 用户查询的用户信息,如租户信息,通常为自动注入,前端可选择不传
    * @param roleName 要查询的角色身份
    * @return
    */
   @Override
   public List<UserVO> getByRoleUserList(BladeUser user, String roleName) {
      return null;
   public List<Map<String,String>> getByRoleUserList(BladeUser user, String roleName) {
      // 考虑到一个用户可以拥有多种角色权限,而用户关联角色权限是用role_id字段用逗号分隔角色id的,直接采用子查询来in查询不能实现,所以先查询角色id
      R<String> roleIds = sysClient.getRoleIds(user.getTenantId(), roleName);
      if(roleIds.getCode() != 200){
         throw new ServiceException("系统服务feign接口调用错误!");
      }
      if(Func.isBlank(roleIds.getData())){
         return new ArrayList<>();
      }
      List<Map<String,String>> list = new ArrayList<>();
      Arrays.stream(roleIds.getData().split(",")).forEach(item->{
         list.addAll(this.baseMapper.getUserMap(item,user.getUserId().toString()));
      });
      // 去除重复
      return list.stream().distinct().collect(Collectors.toList());
   }
   /**