ludc
2024-06-25 6f994bf94166b3b900eb43edcba07611017a6474
用户管理:分页查询接口,用户角色,密码策略部分查询接口添加
已修改2个文件
已添加3个文件
393 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmPwdStrategyQueryServiceI.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmPwdStrategyQueryServiceImpl.java 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmPwdStrategyQueryController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java
@@ -58,7 +58,6 @@
     */
    OrgDepartmentVO listDeptByUserOid(String userOid, Map<String, String> queryMap);
    /**
     * èŽ·å–æœªå…³è”æŸä¸ªç”¨æˆ·çš„éƒ¨é—¨
     * @param userOid ç”¨æˆ·ä¸»é”®
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmPwdStrategyQueryServiceI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.vci.frameworkcore.compatibility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.pagemodel.OrgDepartmentVO;
import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO;
import com.vci.frameworkcore.pagemodel.SmRoleVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.model.SmPasswordStrategyDO;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * å¯†ç ç­–略查询服务
 * @author ludc
 * @date 2024/6/24 16:33
 */
public interface SmPwdStrategyQueryServiceI {
    /**
     * èŽ·å–é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    SmPasswordStrategyVO getPasswordStrategyVOByDefault();
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢å¯†ç ç­–ç•¥map对象
     * @param oidList
     * @return key为密码策略主键 value为密码策略
     */
    Map<String,SmPasswordStrategyVO> mapPasswordStrategyVOMapByOid(Collection<String> oidList);
    /**
     * ä½¿ç”¨ä¸»é”®èŽ·å–å¯†ç ç­–ç•¥
     * @param oid ä¸»é”®
     * @return å¯†ç ç­–略显示对象
     */
    SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid);
    /**
     * æ ¹æ®å•条用户的主键,获取用户的密码安全策略
     * @param userOid ç”¨æˆ·çš„主键
     * @return å¯†ç å®‰å…¨ç­–略的显示对象,如果不存在则会返回Null
     * @throws VciBaseException å‚数为空或者数据库查询出错的时候会抛出异常
     */
    SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid) throws PLException;
    /**
     * æ ¹æ®å•条用户主键,获取用户的密码安全策略
     * @param userOids
     * @return
     * @throws PLException
     */
    List<SmPasswordStrategyVO> listSmPasswordStrategyVOByUserOids(Collection<String> userOids) throws PLException;
    /**
     * æ ¹æ®ä¸»é”®ï¼Œæ‰¹é‡èŽ·å–å¯†ç å®‰å…¨ç­–ç•¥
     * @param oids
     * @return
     * @throws PLException
     */
    List<SmPasswordStrategyVO> listSmPasswordStrategyVOByOids(Collection<String> oids) throws PLException;
    /**
     * æ‰¹é‡æ ¹æ®ç”¨æˆ·çš„主键来获取密码策略
     * @param userOidCollection ç”¨æˆ·ä¸»é”®é›†åˆ
     * @return å¯†ç ç­–略的显示对象,key是用户主键,value是这个用户关联的密码策略
     */
    Map<String, SmPasswordStrategyVO> batchSmPwdStrategyByUserOids(Collection<String> userOidCollection);
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
@@ -27,6 +27,7 @@
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -103,6 +104,7 @@
        }
        return departmentVO;
    }
    /**
     * æ‰¹é‡èŽ·å–éƒ¨é—¨çš„ä¿¡æ¯ ï¼ˆæ ¹æ®éƒ¨é—¨ä¸»é”®ï¼‰
     * @param deptOidCollections éƒ¨é—¨ä¸»é”®çš„集合,可以超过1000个
@@ -127,6 +129,7 @@
        });
        return     deptDO2VOs(depts);
    }
    /**
     * èŽ·å–éƒ¨é—¨çš„åˆ—è¡¨ï¼Œé»˜è®¤ä¼šä»¥éƒ¨é—¨åç§°å‡åºæŽ’åˆ—ï¼Œéƒ¨é—¨çš„ç¼–è¾‘é¡µé¢åˆ—è¡¨ä¸è¦ä½¿ç”¨è¿™ä¸ªæŽ¥å£
     * @param queryMap æŸ¥è¯¢æ¡ä»¶
@@ -150,6 +153,7 @@
        }
        return dataGrid;
    }
     /**
     * æ ¹æ®éƒ¨é—¨ä¸»é”®èŽ·å–éƒ¨é—¨çš„å§“å
     * @param deptOid éƒ¨é—¨ä¸»é”®
@@ -200,7 +204,8 @@
        }
        return deptDO2VOs(roles);
    }
     /**
    /**
     * æ ¹æ®ç”¨æˆ·ä¸»é”®èŽ·å–å…³è”çš„éƒ¨é—¨
     * @param userOid ç”¨æˆ·ä¸»é”®
     * @param queryMap æŸ¥è¯¢æ¡ä»¶ï¼Œå¦‚果需要使用用户的属性来查询可以使用pkUser.xxxx
@@ -215,6 +220,7 @@
        }
        return departmentVOS.get(0);
    }
    /**
     * èŽ·å–æœªå…³è”æŸä¸ªç”¨æˆ·çš„éƒ¨é—¨
     * @param userOid ç”¨æˆ·ä¸»é”®
@@ -290,16 +296,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> deptOids = userDeptOidMap.getOrDefault(userOid,new ArrayList<>());
                        deptOids.add(ObjectTool.getBOAttributeValue(cbo,"pldeptuid"));
                        deptOids.add(ObjectTool.getNewBOAttributeValue(cbo,"pldeptuid"));
                        userDeptOidMap.put(userOid,deptOids);
                    });
                }
            }
        });
        if(!CollectionUtils.isEmpty(deptVOList)){
            Map<String, OrgDepartmentVO> deptVOMap = deptVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
            //这儿应该对deptVOList做一次去重处理,因为肯定会有重复的部门被查出来
            Map<String, OrgDepartmentVO> deptVOMap = deptVOList.stream()
                    .collect(Collectors.toMap(OrgDepartmentVO::getOid, Function.identity(), (existing, replacement) -> existing));
            //Map<String, OrgDepartmentVO> deptVOMap = deptVOList.stream().distinct().collect(Collectors.toMap(s -> s.getOid(), t -> t));
            Map<String, List<OrgDepartmentVO>> userDeptVOMap = new HashMap<>();
            userDeptOidMap.forEach((userOid,deptOids)->{
                List<OrgDepartmentVO> deptVOS = new ArrayList<>();
@@ -314,6 +323,7 @@
        }
        return new HashMap<>();
    }
     /**
     * èŽ·å–æŸä¸ªéƒ¨é—¨çš„ç›´å±žä¸‹çº§éƒ¨é—¨
     * @param pkFatherDepartmment éƒ¨é—¨çš„主键
@@ -332,6 +342,7 @@
        List<OrgDeptForPlatform1> depts = boService.selectByQueryWrapper(queryWrapperForDO, OrgDeptForPlatform1.class);
        return deptDO2VOs(depts);
    }
     /**
     * èŽ·å–æŸä¸ªéƒ¨é—¨çš„æ‰€æœ‰å±‚çº§çš„ä¸‹çº§éƒ¨é—¨
     * @param pkFatherDepartmment éƒ¨é—¨çš„主键
@@ -345,6 +356,7 @@
        queryWrapperForDO.in("pluid","select pluid from pldept start with " + (StringUtils.isBlank(pkFatherDepartmment)?" (plparentuid is null or plparentuid = '') ":"plparentuid = '" + pkFatherDepartmment.trim() + "'") +  "connect by PRIOR pluid=plparentuid");
        return deptDO2VOs(boService.selectByQueryWrapper(queryWrapperForDO, OrgDeptForPlatform1.class));
    }
    /**
     * å‚照树形数据的部门信息
     * @param treeQueryObject æ ‘形查询的条件
@@ -371,6 +383,7 @@
            return dept.getId() + " " + dept.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equals(dept.getLcStatus())?"【停用】":"");
        });
    }
      /**
     * å‚照树形表格的部门信息,上级部门的是表格中的树形列
     * @param treeQueryObject æ ‘形查询的条件
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmPwdStrategyQueryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,285 @@
package com.vci.frameworkcore.compatibility.impl;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.frameworkcore.model.OrgDeptForPlatform1;
import com.vci.frameworkcore.pagemodel.OrgDepartmentVO;
import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO;
import com.vci.frameworkcore.pagemodel.SmRoleVO;
import com.vci.frameworkcore.pagemodel.SmUserVO;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.model.SmPasswordStrategyDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
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;
/**
 * å¯†ç ç­–略查询服务
 * @author ludc
 * @date 2024/6/24 16:33
 */
@Service
public class SmPwdStrategyQueryServiceImpl implements SmPwdStrategyQueryServiceI {
    /**
     * ä¸šåŠ¡æ•°æ®æœåŠ¡
     */
    @Autowired
    private WebBoServiceI boService;
    /**
     * ç”¨æˆ·æŸ¥è¯¢æœåŠ¡
     */
    @Autowired
    private SmUserQueryServiceI smUserQueryService;
    /**
     * èŽ·å–é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    public SmPasswordStrategyVO getPasswordStrategyVOByDefault(){
        //获取默认的
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.eq("plisdefault","1");
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        if(!CollectionUtils.isEmpty(cboList)){
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
            return pwdStrategyDO2VO(passwordStrategyDO);
        }
        return null;
    }
    /**
     * æ ¹æ®ä¸»é”®æŸ¥è¯¢å¯†ç ç­–ç•¥map对象
     * @param oidList
     * @return key为密码策略主键 value为密码策略
     */
    @Override
    public Map<String, SmPasswordStrategyVO> mapPasswordStrategyVOMapByOid(Collection<String> oidList) {
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.in("oid",oidList.stream().collect(Collectors.joining(",")));
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        Map<String,SmPasswordStrategyVO> smPasswordStrategyVOMap = new HashMap<>();
        if(Func.isEmpty(cboList)){
            return new HashMap<>();
        }
        cboList.stream().forEach(item->{
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(item,passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            smPasswordStrategyVOMap.put(passwordStrategyVO.getOid(),passwordStrategyVO);
        });
        return smPasswordStrategyVOMap;
    }
    /**
     * ä½¿ç”¨ä¸»é”®èŽ·å–å¯†ç ç­–ç•¥
     * @param oid ä¸»é”®
     * @return å¯†ç ç­–略显示对象
     */
    public SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid){
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.eq("oid",oid.trim());
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        if(!CollectionUtils.isEmpty(cboList)){
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            return passwordStrategyVO;
        }else{
            //获取默认的
            queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
            queryWrapperForDO.eq("plisdefault","1");
            cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                    queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                    (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
            if(!CollectionUtils.isEmpty(cboList)){
                SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
                WebUtil.copyValueToObjectFromCbos(cboList.get(0),passwordStrategyDO);
                return pwdStrategyDO2VO(passwordStrategyDO);
            }
        }
        return null;
    }
    /**
     * å¤šæ¡å¯†ç ç­–ç•¥do对象转vo对象
     * @param smPasswordStrategyDOList
     * @return
     */
    private List<SmPasswordStrategyVO> pwdStrategyDO2VOS(List<SmPasswordStrategyDO> smPasswordStrategyDOList){
        List<SmPasswordStrategyVO> smPasswordStrategyVOList = new ArrayList<>();
        if(Func.isEmpty(smPasswordStrategyDOList)) {
            return smPasswordStrategyVOList;
        }
        smPasswordStrategyDOList.stream().forEach(item->{
            smPasswordStrategyVOList.add(pwdStrategyDO2VO(item));
        });
        return smPasswordStrategyVOList;
    }
    /**
     * å¯†ç ç­–ç•¥do对象转vo对象
     * @param smPasswordStrategyDO
     * @return
     */
    private SmPasswordStrategyVO pwdStrategyDO2VO(SmPasswordStrategyDO smPasswordStrategyDO){
        SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
        BeanUtil.convert(smPasswordStrategyDO,passwordStrategyVO);
        return passwordStrategyVO;
    }
    /**
     * æ ¹æ®ç”¨æˆ·çš„主键,获取用户的密码安全策略
     * @param userOid ç”¨æˆ·çš„主键
     * @return å¯†ç å®‰å…¨ç­–略的显示对象,如果不存在则会返回Null
     * @throws VciBaseException å‚数为空或者数据库查询出错的时候会抛出异常
     */
    @Override
    public SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid) throws PLException {
        WebUtil.alertNotNull(userOid,"用户的主键");
        if(smUserQueryService.checkUserExist(null,userOid)){
            throw new VciBaseException(DATA_OID_NOT_EXIST);
        }
        String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid = '"+ userOid +"')";
        List<BusinessObject> cbos = boService.queryBySql(sql, null);
        if(Func.isNotEmpty(cbos)){
            return getPasswordStrategyVOByOid(ObjectTool.getNewBOAttributeValue(cbos.get(0), "plpasswordstrategyuid"));
        }
        return null;
    }
    /**
     * æ ¹æ®å¤šæ¡ç”¨æˆ·ä¸»é”®ï¼ŒèŽ·å–ç”¨æˆ·çš„å¯†ç å®‰å…¨ç­–ç•¥
     * @param userOids
     * @return
     * @throws PLException
     */
    @Override
    public List<SmPasswordStrategyVO> listSmPasswordStrategyVOByUserOids(Collection<String> userOids) {
        WebUtil.alertNotNull(userOids,"用户的主键");
        //先查关联表
        List<String> userPwdStrategyList = new ArrayList<>();
        WebUtil.switchCollectionForOracleIn(userOids).stream().forEach(userOidSplit->{
            //查关联表sql
            String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid in (" + WebUtil.toInSql(userOidSplit.toArray(new String[0])) + ")";
            List<BusinessObject> cbos = boService.queryBySql(sql, null);
            cbos.stream().forEach(cbo->{
                userPwdStrategyList.add(ObjectTool.getNewBOAttributeValue(cbo,"plpasswordstrategyuid"));
            });
        });
        return listSmPasswordStrategyVOByOids(userPwdStrategyList);
    }
    /**
     * æ ¹æ®ç”¨æˆ·ä¸»é”®æŸ¥è¯¢å¯†ç ç­–略关联表中的密码策略主键
     * @param userOids
     * @return key为用户oid:value为密码策略oid
     */
    private Map<String,String> mapUserPwdStrategy(Collection<String> userOids){
        Map<String,String> userPwdStrategyMap = new HashMap<>();
        WebUtil.switchCollectionForOracleIn(userOids).stream().forEach(userOidSplit->{
            //查关联表sql
            String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid in (" + WebUtil.toInSql(userOidSplit.toArray(new String[0])) + ")";
            List<BusinessObject> cbos = boService.queryBySql(sql, null);
            cbos.stream().forEach(cbo->{
                String pluseruid = ObjectTool.getNewBOAttributeValue(cbo, "pluseruid");
                String plpasswordstrategyuid = ObjectTool.getNewBOAttributeValue(cbo, "plpasswordstrategyuid");
                userPwdStrategyMap.put(pluseruid,plpasswordstrategyuid);
            });
        });
        return userPwdStrategyMap;
    }
    /**
     * æ ¹æ®ä¸»é”®ï¼Œæ‰¹é‡èŽ·å–å¯†ç å®‰å…¨ç­–ç•¥ä¸»é”®
     * @param oids
     * @return
     * @throws PLException
     */
    @Override
    public List<SmPasswordStrategyVO> listSmPasswordStrategyVOByOids(Collection<String> oids) {
        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
        queryWrapperForDO.in("oid",oids.stream().collect(Collectors.joining(",")));
        List<BusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
                queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
                (StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
        List<SmPasswordStrategyVO> smPasswordStrategyVOList = new ArrayList<>();
        if(Func.isEmpty(cboList)){
            return smPasswordStrategyVOList;
        }
        cboList.stream().forEach(item->{
            SmPasswordStrategyDO passwordStrategyDO = new SmPasswordStrategyDO();
            WebUtil.copyValueToObjectFromCbos(item,passwordStrategyDO);
            SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
            BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
            smPasswordStrategyVOList.add(passwordStrategyVO);
        });
        return smPasswordStrategyVOList;
    }
    /**
     * æ‰¹é‡æ ¹æ®ç”¨æˆ·çš„主键来获取密码策略
     * @param userOidCollection ç”¨æˆ·ä¸»é”®é›†åˆ
     * @return å¯†ç ç­–略的显示对象,key是用户主键,value是这个用户关联的密码策略
     */
    @Override
    public Map<String, SmPasswordStrategyVO> batchSmPwdStrategyByUserOids(Collection<String> userOidCollection) {
        if(CollectionUtils.isEmpty(userOidCollection)){
            return new HashMap<>();
        }
        Map<String,SmPasswordStrategyVO> smPasswordStrategyVOMap = new HashMap<>();
        Map<String,String> userPasswordStrategyVOMap = new HashMap<>();
        Map<String/*用户id*/, SmPasswordStrategyVO/*密码策略*/> returnMap = new HashMap<>();
        WebUtil.switchCollectionForOracleIn(userOidCollection).stream().forEach(userOids->{
            //查询密码策略关联信息,key为用户oid:value为密码策略oid
            Map<String, String> userPwdStrategyMap = mapUserPwdStrategy(userOids);
            userPasswordStrategyVOMap.putAll(userPwdStrategyMap);
            //查询密码策略,key为密码策略主键:value为密码策略
            smPasswordStrategyVOMap.putAll(mapPasswordStrategyVOMapByOid(userPwdStrategyMap.values()));
        });
        //查询默认的密码策略
        SmPasswordStrategyVO passwordStrategyVOByDefault = getPasswordStrategyVOByDefault();
        //循环用户id,查询是否有符合条件的oid
        userOidCollection.stream().forEach(oid->{
            SmPasswordStrategyVO smPasswordStrategyVO;
            //通过用户oid没获取到密码策略oid,说明没有给当前用户设置策略,直接返默认的密码策略
            String pwdStrategyId = userPasswordStrategyVOMap.get(oid);
            if(Func.isNotBlank(pwdStrategyId)){
                //通过密码策略oid去map中取密码策略
                smPasswordStrategyVO = smPasswordStrategyVOMap.get(pwdStrategyId);
            }else {
                smPasswordStrategyVO = passwordStrategyVOByDefault;
            }
            returnMap.put(oid,smPasswordStrategyVO);
        });
        return returnMap;
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmPwdStrategyQueryController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.vci.frameworkcore.controller;
/**
 * @author ludc
 * @date 2024/6/24 16:31
 */
public class SmPwdStrategyQueryController {
}