From dba1e53cd7652f1b973ffec118e5b3312278c814 Mon Sep 17 00:00:00 2001
From: dangsn <dangsn@chicecm.com>
Date: 星期二, 11 六月 2024 15:45:24 +0800
Subject: [PATCH] 调整获取用户的接口

---
 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java                       |   11 ++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/constant/EnumIdConstant.java                             |    5 +
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java |   86 ++++++++++++++++++---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/UserTypeEnum.java                                |  116 +++++++++++++++++++++++++++++
 4 files changed, 204 insertions(+), 14 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
index 1af32e7..76d5f81 100644
--- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/util/VciBaseUtil.java
@@ -1929,4 +1929,15 @@
         }
         return new String(c);
     }
+
+    /**
+     * 灏唖tring闆嗗悎杞负stirng鏁扮粍
+     * @param strCollection string闆嗗悎
+     * @return string鏁扮粍
+     */
+    public static String[] collection2StrArr(Collection<String> strCollection){
+        String[] strArr = new String[strCollection.size()];
+        strCollection.toArray(strArr);
+        return strArr;
+    }
 }
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 b0ae3c0..45314e6 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
@@ -3,10 +3,12 @@
 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.frameworkcore.compatibility.SmUserQueryServiceI;
 import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO;
 import com.vci.frameworkcore.pagemodel.SmUserVO;
 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 +16,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,7 +26,6 @@
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -80,13 +83,6 @@
 	public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid";
 
 	/**
-	 * 鑷紩鐢�
-	 */
-	@Autowired(required = false)
-	@Lazy
-	private SmUserQueryServiceI self;
-
-	/**
      *  鏍规嵁鐢ㄦ埛鍚嶈幏鍙栫敤鎴风殑瀵硅薄锛屼笉鍖哄垎澶у皬鍐�
      * @param userId 鐢ㄦ埛鍚�
      * @return 鐢ㄦ埛鐨勬樉绀哄璞★紝濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄥ垯杩斿洖null锛屼笉浼氭姏鍑哄紓甯�
@@ -95,7 +91,41 @@
 	@Override
 	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;
 	}
 
 	/**
@@ -166,7 +196,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());
+		}
 	}
 	/**
      * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鐢ㄦ埛鐨勪俊鎭�
@@ -177,7 +212,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());
+        }
 	}
 	 /**
      * 鎵归噺鑾峰彇鐢ㄦ埛鐨勪俊鎭� 锛堟牴鎹敤鎴蜂富閿級
@@ -189,7 +229,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;
 	}
 
 	/**
@@ -351,7 +409,7 @@
      */
 	@Override
 	public String getUserNameByUserId(String userId) {
-		SmUserVO userVO = self.getUserByUserId(userId);
+		SmUserVO userVO = getUserByUserId(userId);
 		return userVO == null?"":userVO.getName();
 	}
 	 /**
@@ -361,7 +419,7 @@
      */
 	@Override
 	public String getUserNameByUserOid(String userOid) {
-		SmUserVO userVO = self.getUserByUserOid(userOid);
+		SmUserVO userVO = getUserByUserOid(userOid);
 		return userVO.getName();
 	}
 
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/constant/EnumIdConstant.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/constant/EnumIdConstant.java
index d154c6f..2e893e5 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/constant/EnumIdConstant.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/constant/EnumIdConstant.java
@@ -57,4 +57,9 @@
      */
     public static final String CODE_DATE_VALUE_TYPE = "codeDateValueType";
 
+    /**
+     * 鐢ㄦ埛绫诲瀷鏋氫妇
+     */
+    public static final String USER_TYPE_ENUM = "userTypeEnum";
+
 }
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/UserTypeEnum.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/UserTypeEnum.java
new file mode 100644
index 0000000..d8d8dc0
--- /dev/null
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/enumpck/UserTypeEnum.java
@@ -0,0 +1,116 @@
+package com.vci.web.enumpck;
+
+import com.vci.starter.web.annotation.VciEnum;
+import com.vci.starter.web.enumpck.BaseEnum;
+import com.vci.web.constant.EnumIdConstant;
+
+/**
+ * @Description
+ * @Author dangsn
+ * @Date 2024/6/11 15:00
+ */
+@VciEnum(name = EnumIdConstant.USER_TYPE_ENUM,text = "鐢ㄦ埛绫诲瀷鏋氫妇")
+public enum UserTypeEnum implements BaseEnum {
+
+    /**
+     * 瓒呯骇绠$悊鍛�
+     */
+    SUPPER_ADMIN("0","瓒呯骇绠$悊鍛�"),
+
+    /**
+     * 涓夊憳绠$悊鍛�/涓氬姟绠$悊鍛�
+     */
+    ADMIN("1","绠$悊鍛�"),
+
+    /**
+     * 鏅�氱敤鎴�
+     */
+    USER("2","鏅�氱敤鎴�"),
+
+    /**
+     * 瀹汉
+     */
+    GUEST("3","璁垮");
+
+    /**
+     * 鍊�
+     */
+    private String value;
+
+    /**
+     * 鏄剧ず鏂囨湰
+     */
+    private String text;
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     * @param value 鍊�
+     * @param text 鏄剧ず鏂囨湰
+     */
+    private UserTypeEnum(String value,String text){
+        this.value = value;
+        this.text = text;
+    }
+
+    /**
+     * 鑾峰彇鏋氫妇鍊�
+     *
+     * @return 鏋氫妇鍊�
+     */
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * 鑾峰彇鏄剧ず鏂囨湰
+     *
+     * @return 鏄剧ず鏂囨湰
+     */
+    @Override
+    public String getText() {
+        return text;
+    }
+
+    /**
+     * 鏍规嵁鍚嶇О鑾峰彇瀵瑰簲鐨勬灇涓惧��
+     * @param text 鍚嶇О
+     * @return 鏋氫妇鍊�
+     */
+    public static String getValueByText(String text){
+        for(UserTypeEnum wenum : UserTypeEnum.values()){
+            if(wenum.getText().equalsIgnoreCase(text)){
+                return wenum.getValue();
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 鏍规嵁鏋氫妇鍊艰幏鍙栧悕绉�
+     * @param value 鏋氫妇鍊�
+     * @return 鍚嶇О
+     */
+    public static String getTextByValue(String value){
+        for(UserTypeEnum wenum : UserTypeEnum.values()){
+            if(wenum.getValue().equalsIgnoreCase(value)){
+                return wenum.getText();
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 鏍规嵁鏋氫妇鍊艰幏鍙栨灇涓惧璞�
+     * @param value 鏋氫妇鍊�
+     * @return 瀵瑰簲鐨勬灇涓惧璞★紝涓嶅尮閰嶇殑鏃跺�欒繑鍥瀗ull
+     */
+    public static UserTypeEnum forValue(String value){
+        for(UserTypeEnum wenum : UserTypeEnum.values()){
+            if(wenum.getValue().equalsIgnoreCase(value)){
+                return wenum;
+            }
+        }
+        return null;
+    }
+}

--
Gitblit v1.9.3