ludc
2024-06-25 ca2d9c7e8746f81ad9a0f19e2a1ca6515c7ac931
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
@@ -6,6 +6,7 @@
import com.vci.frameworkcore.enumpck.RoleClassifyEnum;
import com.vci.frameworkcore.enumpck.RoleControlAreaEnum;
import com.vci.frameworkcore.model.SmRoleForPlatform1;
import com.vci.frameworkcore.pagemodel.OrgDepartmentVO;
import com.vci.frameworkcore.pagemodel.SmRoleVO;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.web.constant.QueryOptionConstant;
@@ -26,6 +27,7 @@
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
@@ -61,6 +63,7 @@
      }
      return platformRole2SmRoleVO(role);
   }
   /**
     * 批量获取角色的信息 (根据角色主键)
     * @param roleOidCollections 角色主键的集合,可以超过1000个
@@ -84,6 +87,7 @@
      });
      return    platformRole2SmRoleVOs(roles);
   }
   /**
     * 获取角色的列表,默认会以角色名升序排列,角色的编辑页面列表不要使用这个接口
     * @param queryMap 查询条件
@@ -109,6 +113,7 @@
      }
      return dataGrid;
   }
    /**
     * 根据角色主键获取角色的姓名
     * @param roleOid 角色主键
@@ -119,6 +124,7 @@
      WebUtil.alertNotNull(roleOid,"角色主键");
      return getRoleByRoleOid(roleOid).getName();
   }
    /**
     * 根据用户主键获取关联的角色
     * @param userOid 用户主键
@@ -170,6 +176,7 @@
      }
      return platformRole2SmRoleVOs(roles);
   }
     /**
     * 根据用户主键获取关联的角色
     * @param userOid 用户主键
@@ -210,6 +217,7 @@
      }
      return gridRoles(queryMap,pageHelper);
   }
    /**
     * 获取未关联某个用户的角色
     * @param userOid 用户主键
@@ -221,6 +229,7 @@
         Map<String, String> queryMap) {
      return listRoleByUserOid(userOid,queryMap,true);
   }
   /**
     * 获取未关联某个用户的角色
     * @param userOid 用户主键
@@ -233,6 +242,7 @@
         Map<String, String> queryMap, PageHelper pageHelper) {
      return gridRoleByUserOid(userOid,queryMap,pageHelper,true);
   }
     /**
     * 批量根据用户的主键来获取角色
     * @param userOidCollection 用户主键集合
@@ -255,16 +265,19 @@
            List<BusinessObject> cbos = boService.queryBySql(sql, null);
            if(!CollectionUtils.isEmpty(cbos)){
               cbos.stream().forEach(cbo->{
                  String userOid = ObjectTool.getBOAttributeValue(cbo,"pluseruid");
                  String userOid = ObjectTool.getNewBOAttributeValue(cbo,"pluseruid");
                  List<String> roleOids = userRoleOidMap.getOrDefault(userOid,new ArrayList<>());
                  roleOids.add(ObjectTool.getBOAttributeValue(cbo,"plroleuid"));
                  roleOids.add(ObjectTool.getNewBOAttributeValue(cbo,"plroleuid"));
                  userRoleOidMap.put(userOid,roleOids);
               });
            }
         }
      });
      if(!CollectionUtils.isEmpty(roleVOList)){
         Map<String, SmRoleVO> roleVOMap = roleVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
         //这儿应该对roleVOList做一次去重处理,因为肯定会有重复的角色被查出来
         Map<String, SmRoleVO> roleVOMap = roleVOList.stream()
               .collect(Collectors.toMap(SmRoleVO::getOid, Function.identity(), (existing, replacement) -> existing));
         //Map<String, SmRoleVO> roleVOMap = roleVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
         Map<String, List<SmRoleVO>> userRoleVOMap = new HashMap<>();
         userRoleOidMap.forEach((userOid,roleOids)->{
            List<SmRoleVO> roleVOS = new ArrayList<>();
@@ -279,6 +292,7 @@
      }
      return new HashMap<>();
   }
    /**
     * 根据权限主键获取关联的角色
     * @param functionOid 权限主键
@@ -444,6 +458,7 @@
      }
      return new HashMap<>();
   }
    /**
     * 参照角色的列表,三员管理的三个角色不会显示
     * @param queryMap 查询条件
@@ -457,6 +472,7 @@
      //老平台没有生效状态
      return gridRoles(queryMap, pageHelper);
   }
     /**
     * 角色的树形展示,常用于角色选择用户的页面使用
     * @param treeQueryObject 树查询对象