From 36496957ffdc22851d57e6b7a2fc73ae4490f537 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 18 六月 2024 17:55:50 +0800
Subject: [PATCH] 完善退出登录-实现登录后获取用户信息存储到本地
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 73 insertions(+), 16 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 b0ae3c0..a61debc 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,13 @@
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.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 +15,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 +25,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 +82,6 @@
public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid";
/**
- * 鑷紩鐢�
- */
- @Autowired(required = false)
- @Lazy
- private SmUserQueryServiceI self;
-
- /**
* 鏍规嵁鐢ㄦ埛鍚嶈幏鍙栫敤鎴风殑瀵硅薄锛屼笉鍖哄垎澶у皬鍐�
* @param userId 鐢ㄦ埛鍚�
* @return 鐢ㄦ埛鐨勬樉绀哄璞★紝濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄥ垯杩斿洖null锛屼笉浼氭姏鍑哄紓甯�
@@ -95,7 +90,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;
}
/**
@@ -117,7 +146,7 @@
" 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]);
return cbo2VO(cbo);
@@ -166,7 +195,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 +211,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 +228,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 +408,7 @@
*/
@Override
public String getUserNameByUserId(String userId) {
- SmUserVO userVO = self.getUserByUserId(userId);
+ SmUserVO userVO = getUserByUserId(userId);
return userVO == null?"":userVO.getName();
}
/**
@@ -361,7 +418,7 @@
*/
@Override
public String getUserNameByUserOid(String userOid) {
- SmUserVO userVO = self.getUserByUserOid(userOid);
+ SmUserVO userVO = getUserByUserOid(userOid);
return userVO.getName();
}
--
Gitblit v1.10.0