From cc6354cee46ff8facbd16c8919f2616c9031acdb Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期五, 21 六月 2024 10:19:59 +0800
Subject: [PATCH] 1、三元账号验证修改,以及获取数据修改

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java |  120 ++++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 88 insertions(+), 32 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
index 2df4e7e..60555d1 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
@@ -1,12 +1,15 @@
 package com.vci.frameworkcore.compatibility.impl;
 
-import com.vci.client.common.providers.ServiceProvider;
 import com.vci.common.util.ThreeDES;
 import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.UserInfo;
+import com.vci.corba.omd.data.BusinessObject;
 import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
 import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO;
 import com.vci.frameworkcore.pagemodel.SmUserVO;
+import com.vci.omd.utils.ObjectTool;
 import com.vci.starter.web.enumpck.BooleanEnum;
+import com.vci.starter.web.enumpck.UserSecretEnum;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.DataGrid;
 import com.vci.starter.web.pagemodel.PageHelper;
@@ -14,7 +17,9 @@
 import com.vci.starter.web.pagemodel.TreeQueryObject;
 import com.vci.starter.web.util.BeanUtil;
 import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.web.util.VciDateUtil;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
+import com.vci.web.enumpck.UserTypeEnum;
 import com.vci.web.model.SmPasswordStrategyDO;
 import com.vci.web.model.SmUserDO;
 import com.vci.web.service.WebBoServiceI;
@@ -22,8 +27,6 @@
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -31,8 +34,7 @@
 import java.util.stream.Collectors;
 
 import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
-import static com.vci.web.constant.CacheNameConstant.VCI_USER;
-import static com.vci.web.util.WebUtil.arryAndSqlToClientBusinessObject;
+import static com.vci.web.util.WebUtil.arryAndSqlToBusinessObject;
 
 /**
  * 鐢ㄦ埛鐨勬煡璇㈢浉鍏崇殑鏈嶅姟锛屽彲浠ュ吋瀹硅�佸钩鍙板拰鑰佺殑pdm
@@ -82,23 +84,49 @@
 	public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid";
 
 	/**
-	 * 鑷紩鐢�
-	 */
-	@Autowired(required = false)
-	@Lazy
-	private SmUserQueryServiceI self;
-
-	/**
      *  鏍规嵁鐢ㄦ埛鍚嶈幏鍙栫敤鎴风殑瀵硅薄锛屼笉鍖哄垎澶у皬鍐�
      * @param userId 鐢ㄦ埛鍚�
      * @return 鐢ㄦ埛鐨勬樉绀哄璞★紝濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄥ垯杩斿洖null锛屼笉浼氭姏鍑哄紓甯�
      * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮暟鎹簱瀛樺湪闂鐨勬椂鍊欎細鎶涘嚭寮傚父
      */
 	@Override
-	@Cacheable(value = VCI_USER,key = "#p0",unless = "#result == null")
 	public SmUserVO getUserByUserId(String userId) throws VciBaseException {
 		WebUtil.alertNotNull(userId,"鐢ㄦ埛鍚�");
-		return getUserByField("plusername",userId);
+        try {
+            UserInfo userInfo = platformClientUtil.getFrameworkService().getUserObjectByUserName(userId);
+			return userInfo2VO(userInfo);
+        } catch (PLException e) {
+            throw new VciBaseException("鐧诲綍鏃讹紝鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛�"+e.getMessage());
+        }
+	}
+
+	/**
+	 * 涓氬姟鏁版嵁杞崲涓烘樉绀哄璞�
+	 * @param userInfo 骞冲彴杩斿洖鐨勪笟鍔℃暟鎹�
+	 * @return 鐢ㄦ埛鏄剧ず瀵硅薄
+	 */
+	private SmUserVO userInfo2VO(UserInfo userInfo) {
+		SmUserVO smUserVO = new SmUserVO();
+		smUserVO.setOid(userInfo.id);
+		smUserVO.setId(userInfo.userName);
+		smUserVO.setName(userInfo.trueName);
+		smUserVO.setSecretGrade(userInfo.secretGrade);
+		smUserVO.setSecretGradeText(UserSecretEnum.getSecretText(smUserVO.getSecretGrade()));
+		smUserVO.setUserType(String.valueOf(userInfo.userType));
+		smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(smUserVO.getUserType()));
+		smUserVO.setDescription(userInfo.desc);
+		smUserVO.setEmail(userInfo.email);
+		if(userInfo.status == 0){
+			smUserVO.setLockFlag(false);
+		}else{
+			smUserVO.setLockFlag(true);
+		}
+		smUserVO.setCreator(userInfo.createUser);
+		smUserVO.setCreateTime(VciDateUtil.long2Date(userInfo.createTime));
+		smUserVO.setLastModifier(userInfo.updateUser);
+		smUserVO.setLastLoginTime(VciDateUtil.long2Date(userInfo.updateTime));
+		smUserVO.setLastModifyPasswordTime(VciDateUtil.long2Date(userInfo.pwdUpdateTime));
+		return smUserVO;
 	}
 
 	/**
@@ -120,9 +148,9 @@
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
 		try{
-			String[][] sqlQueryResult = ServiceProvider.getBOFService().getSqlQueryResult(sql + fromSql, null);
+			String[][] sqlQueryResult = platformClientUtil.getBOFService().getSqlQueryResult(sql + fromSql, null);
 			if(sqlQueryResult.length>0){
-				com.vci.client.bof.ClientBusinessObject cbo = arryAndSqlToClientBusinessObject(queryWrapper.getSelectFieldSql(),sqlQueryResult[0]);
+				BusinessObject cbo = arryAndSqlToBusinessObject(queryWrapper.getSelectFieldSql(),sqlQueryResult[0]);
 				return cbo2VO(cbo);
 			}
 		}catch (Exception e){
@@ -150,7 +178,7 @@
 					+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 					" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 					queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-			List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+			List<BusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 			if(!CollectionUtils.isEmpty(dataList)){
 				dataList.stream().forEach(cbo->{
 					userVOList.add(cbo2VO(cbo));
@@ -169,7 +197,12 @@
 	@Override
 	public List<SmUserVO> listUserByUserIds(Collection<String> userIdCollections)throws VciBaseException {
 		WebUtil.alertNotNull(userIdCollections,"鐢ㄦ埛鍚嶉泦鍚�");
-		return listUserByField("plusername",userIdCollections);
+		try {
+			UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByNames(VciBaseUtil.collection2StrArr(userIdCollections));
+			return userInfoArr2VO(userInfo);
+		} catch (PLException e) {
+			throw new VciBaseException("鑾峰彇鐢ㄦ埛澶辫触锛�"+e.getMessage());
+		}
 	}
 	/**
      * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鐢ㄦ埛鐨勪俊鎭�
@@ -180,7 +213,12 @@
 	@Override
 	public SmUserVO getUserByUserOid(String userOid) throws VciBaseException {
 		WebUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭");
-		return getUserByField("pluid",userOid);
+        try {
+            UserInfo userInfo = platformClientUtil.getFrameworkService().getUserObjectByoid(userOid);
+			return userInfo2VO(userInfo);
+        } catch (PLException e) {
+            throw new VciBaseException("鑾峰彇鐢ㄦ埛澶辫触锛�"+e.getMessage());
+        }
 	}
 	 /**
      * 鎵归噺鑾峰彇鐢ㄦ埛鐨勪俊鎭� 锛堟牴鎹敤鎴蜂富閿級
@@ -192,7 +230,25 @@
 	public List<SmUserVO> listUserByUserOids(
 			Collection<String> userOidCollections) throws VciBaseException {
 		WebUtil.alertNotNull(userOidCollections,"鐢ㄦ埛涓婚敭闆嗗悎");
-		return listUserByField("pluid",userOidCollections);
+        try {
+            UserInfo[] userInfoArr = platformClientUtil.getFrameworkService().getUserObjectByoids(VciBaseUtil.collection2StrArr(userOidCollections));
+			return userInfoArr2VO(userInfoArr);
+        } catch (PLException e) {
+            throw new VciBaseException("鑾峰彇鐢ㄦ埛淇℃伅澶辫触:"+e.getMessage());
+        }
+	}
+
+	/**
+	 * 涓氬姟鏁版嵁鏁扮粍杞樉绀哄璞¢泦鍚�
+	 * @param userInfoArr 涓氬姟鏁版嵁鏁扮粍
+	 * @return 鏄剧ず瀵硅薄闆嗗悎
+	 */
+	private List<SmUserVO> userInfoArr2VO(UserInfo[] userInfoArr) {
+		List<SmUserVO> userVOList = new ArrayList<>();
+		for(UserInfo userInfo : userInfoArr){
+			userVOList.add(userInfo2VO(userInfo));
+		}
+		return userVOList;
 	}
 
 	/**
@@ -231,7 +287,7 @@
 				+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " + (QUERY_FIELD_ROLE.equalsIgnoreCase(queryField)?roleSql:"") +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+		List<BusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
 				userVOList.add(cbo2VO(cbo));
@@ -245,7 +301,7 @@
 	 * @param cbo 涓氬姟鏁版嵁
 	 * @return 鏄剧ず瀵硅薄
 	 */
-	private SmUserVO cbo2VO(com.vci.client.bof.ClientBusinessObject cbo){
+	private SmUserVO cbo2VO(BusinessObject cbo){
 		SmUserDO userDO = new SmUserDO();
 		SmUserVO userVO = new SmUserVO();
 		WebUtil.copyValueToObjectFromCbos(cbo,userDO);
@@ -299,7 +355,7 @@
 				}
 			}
 		}
-		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql((isPage?("select " + pageSelectList.stream().collect(Collectors.joining(","))+ " from (select A.*,rownum RN from ( "):"") + sql + fromSql + (isPage?pageSubfix:""), null);
+		List<BusinessObject> dataList = boService.queryBySql((isPage?("select " + pageSelectList.stream().collect(Collectors.joining(","))+ " from (select A.*,rownum RN from ( "):"") + sql + fromSql + (isPage?pageSubfix:""), null);
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
 				userVOList.add(cbo2VO(cbo));
@@ -354,7 +410,7 @@
      */
 	@Override
 	public String getUserNameByUserId(String userId) {
-		SmUserVO userVO = self.getUserByUserId(userId);
+		SmUserVO userVO = getUserByUserId(userId);
 		return userVO == null?"":userVO.getName();
 	}
 	 /**
@@ -364,7 +420,7 @@
      */
 	@Override
 	public String getUserNameByUserOid(String userOid) {
-		SmUserVO userVO = self.getUserByUserOid(userOid);
+		SmUserVO userVO = getUserByUserOid(userOid);
 		return userVO.getName();
 	}
 
@@ -615,13 +671,13 @@
 				+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+		List<BusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 		List<Tree> treeList = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
 				Tree tree = new Tree();
-				tree.setOid(cbo.getOid());
-				tree.setText(cbo.getId() + " " + cbo.getName());
+				tree.setOid(cbo.oid);
+				tree.setText(cbo.id + " " + cbo.name);
 				Map<String,String> attributeMap = new HashMap<>();
 				WebUtil.copyValueToCboFromMap(cbo,attributeMap);
 				tree.setAttributes(attributeMap);
@@ -645,15 +701,15 @@
 		String sql = " select plpassword from pluser where pluid = :userOid";
 		Map<String,String> conditionMap = new HashMap<>();
 		conditionMap.put("userOid",userOid.trim());
-		List<com.vci.client.bof.ClientBusinessObject> clientBusinessObjectList = boService.queryBySql(sql, conditionMap);
-		if(CollectionUtils.isEmpty(clientBusinessObjectList)){
+		List<BusinessObject> BusinessObjectList = boService.queryBySql(sql, conditionMap);
+		if(CollectionUtils.isEmpty(BusinessObjectList)){
 			return  false;
 		}
 
 		ThreeDES des = new ThreeDES();// 瀹炰緥鍖栦竴涓锟�?
 		des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵
 		md5Password = des.getEncString(md5Password);
-		if(md5Password.equals(clientBusinessObjectList.get(0).getAttributeValue("plpassword"))){
+		if(md5Password.equals(ObjectTool.getNewBOAttributeValue(BusinessObjectList.get(0),"plpassword"))){
 			return true;
 		}
 		return false;
@@ -688,7 +744,7 @@
 	public SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid){
 		VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
 		queryWrapperForDO.eq("oid",oid.trim());
-		List<com.vci.client.bof.ClientBusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
+		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)){

--
Gitblit v1.9.3