| | |
| | | import com.vci.starter.web.util.*; |
| | | import com.vci.starter.web.wrapper.VciQueryWrapperForDO; |
| | | import com.vci.web.enumpck.UserTypeEnum; |
| | | import com.vci.web.model.WFProcessClassifyDO; |
| | | import com.vci.web.service.WebBoServiceI; |
| | | import com.vci.web.util.Func; |
| | | import com.vci.web.util.PlatformClientUtil; |
| | |
| | | /** |
| | | * 用户分页查询时获取部门放到这里避免重复查询 |
| | | */ |
| | | private Map<String,List<OrgDepartmentVO>> orgDepartmentVOMap; |
| | | private Map<String,Map<String,String>> orgDepartmentVOMap; |
| | | |
| | | /** |
| | | * 用户分页查询时获取角色放到这里避免重复查询 |
| | |
| | | smUserVO.setPassword(userInfo.pwd); |
| | | smUserVO.setConfirmPassword(userInfo.pwd); |
| | | //用户所属部门的查询设置 |
| | | List<OrgDepartmentVO> orgDepartmentVOList; |
| | | Map<String,String> orgDepartmentVOList; |
| | | //查看全局变量中是否存在部门信息,存在的情况最主要是针对多条用户查询的时候避免重复查询的 |
| | | if(Func.isNotEmpty(orgDepartmentVOMap)){ |
| | | orgDepartmentVOList = orgDepartmentVOMap.get(userInfo.id); |
| | | orgDepartmentVOList = Func.isNotEmpty(orgDepartmentVOMap.get(userInfo.id)) ? |
| | | orgDepartmentVOMap.get(userInfo.id):new HashMap<>(); |
| | | }else { |
| | | orgDepartmentVOList = orgDeptQueryService.listDeptByUserOid(userInfo.id,null); |
| | | Map<String, Map<String, String>> tempDeptMap = orgDeptQueryService.batchMapDeptNameByUserOids(Arrays.asList(userInfo.id), null); |
| | | orgDepartmentVOList = Func.isNotEmpty(tempDeptMap.get(userInfo.id)) ? |
| | | tempDeptMap.get(userInfo.id):new HashMap<>(); |
| | | } |
| | | smUserVO.setPkDepartment( |
| | | Func.isEmpty(orgDepartmentVOList) ? |
| | | null:orgDepartmentVOList.stream().map(OrgDepartmentVO::getOid).collect(Collectors.joining(",")) |
| | | ); |
| | | smUserVO.setPkDepartmentName( |
| | | Func.isEmpty(orgDepartmentVOList) ? |
| | | null:orgDepartmentVOList.stream().map(OrgDepartmentVO::getName).collect(Collectors.joining(",")) |
| | | ); |
| | | //部门oid,正常情况下一个用户只会存在一个部门下 |
| | | smUserVO.setPkDepartment(orgDepartmentVOList.keySet().stream().collect(Collectors.joining(","))); |
| | | smUserVO.setPkDepartmentName(orgDepartmentVOList.values().stream().collect(Collectors.joining(","))); |
| | | //密码策略查询设置 |
| | | SmPasswordStrategyVO smPasswordStrategyVO; |
| | | if(Func.isNotEmpty(smPwdStrategyVOMap)){ |
| | |
| | | DataGrid<SmUserVO> dataGrid = new DataGrid<>(); |
| | | if(Func.isNotEmpty(userInfos)){ |
| | | List<String> idList = Arrays.stream(userInfos).map(item -> item.id).collect(Collectors.toList()); |
| | | orgDepartmentVOMap = orgDeptQueryService.batchListDeptByUserOids(idList, null); |
| | | orgDepartmentVOMap = orgDeptQueryService.batchMapDeptNameByUserOids(idList, null); |
| | | smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null); |
| | | smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList); |
| | | dataGrid.setData(userInfoArr2VO(userInfos)); |
| | |
| | | @Override |
| | | public List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException { |
| | | //是否查询子部门下关联的用户 |
| | | List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.listChildrenDeptByParentOid(deptOid, null); |
| | | List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.listAllLevelChildrenDeptByParentOid(deptOid, null); |
| | | List<String> deptOidCollection = orgDepartmentVOList.stream().map(OrgDepartmentVO::getOid).collect(Collectors.toList()); |
| | | deptOidCollection.add(deptOid);//将当前层的oid也放进去 |
| | | return listUserVOByDeptOid(queryMap,deptOidCollection,false); |
| | | List<SmUserVO> smUserVOList = listUserVOByDeptOid(queryMap, deptOidCollection, false); |
| | | if(Func.isEmpty(smUserVOList)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | Map<String, List<SmRoleVO>> smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(smUserVOList.stream().map(SmUserVO::getOid).collect(Collectors.toSet()), null); |
| | | smUserVOList = smUserVOList.stream().map(vo->{ |
| | | List<SmRoleVO> smRoleVOS = smRoleVOMap.get(vo.getOid()); |
| | | vo.setPkPerson( |
| | | Func.isEmpty(smRoleVOS) ? |
| | | null:smRoleVOS.stream().map(SmRoleVO::getOid).collect(Collectors.joining(",")) |
| | | ); |
| | | vo.setPkPersonName( |
| | | Func.isEmpty(smRoleVOS) ? |
| | | null:smRoleVOS.stream().map(SmRoleVO::getName).collect(Collectors.joining(",")) |
| | | ); |
| | | return vo; |
| | | }).collect(Collectors.toList()); |
| | | return smUserVOList; |
| | | } |
| | | |
| | | /** |
| | |
| | | queryWrapperForDO.setLinkTableSql(" left join pluserdept up on " + queryWrapperForDO.getTableNick() + ".pluid = up.pluseruid" + |
| | | " left join pldept pkDepartment on up.pldeptuid = pkDepartment.pluid " + |
| | | " left join PLUSERPASSWORDSTRATEGY pkUserPassword on " +queryWrapperForDO.getTableNick() + ".pluid = pkUserPassword.pluseruid "); |
| | | queryWrapperForDO.setOrderSql("order by " + queryWrapperForDO.getTableNick() + ".pltrueName"); |
| | | List<SmUserDO> smUserDOList = new ArrayList<>(); |
| | | //userOidList为空时的两种情况 |
| | | if(Func.isEmpty(userOidList)){ |
| | |
| | | } |
| | | //根据当前创建这个用户的人所绑定密码策略来进行密码校验 |
| | | try { |
| | | //TODO:为了方便调试,所以这儿先注释写死后面记得更改 |
| | | String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); |
| | | //String userName = "developer"; |
| | | String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userName, smUserDTO.getPassword(),null); |
| | | if (!StringUtils.isBlank(error)) { |
| | | throw new VciBaseException("当前设置的密码,密码策略校验未通过"); |
| | |
| | | ReadExcelOption excelOption = new ReadExcelOption(); |
| | | //当前登录的用户账号 |
| | | String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); |
| | | //String loginUserId = "developer"; |
| | | UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId,null); |
| | | //是否导入密级配置 |
| | | boolean exportSecretGrade = Boolean.parseBoolean(ConfigReader.getConfigValue("exportSecretGrade")); |