From ca2d9c7e8746f81ad9a0f19e2a1ca6515c7ac931 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 25 六月 2024 10:20:39 +0800
Subject: [PATCH] 用户管理:停用、启用、修改、删除

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java |  432 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 341 insertions(+), 91 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 60555d1..2f5a410 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,11 +1,19 @@
 package com.vci.frameworkcore.compatibility.impl;
 
+import com.vci.client.common.objects.UserObject;
+import com.vci.client.common.providers.ClientServiceProvider;
 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.OrgDeptQueryServiceI;
+import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
+import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
 import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
+import com.vci.frameworkcore.dto.SmUserDTO;
+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.enumpck.BooleanEnum;
@@ -18,11 +26,13 @@
 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.util.WebThreadLocalUtil;
 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;
+import com.vci.web.util.Func;
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -59,6 +69,24 @@
 	private WebBoServiceI boService;
 
 	/**
+	 * 閮ㄩ棬鏈嶅姟
+	 */
+	@Autowired
+	private OrgDeptQueryServiceI orgDeptQueryService;
+
+	/**
+	 * 瑙掕壊鏈嶅姟
+	 */
+	@Autowired
+	private SmRoleQueryServiceI smRoleQueryService;
+
+	/**
+	 * 瀵嗙爜绛栫暐鏌ヨ鏈嶅姟
+	 */
+	@Autowired
+	private SmPwdStrategyQueryServiceI smPwdStrategyQueryService;
+
+	/**
 	 * 浣跨敤瑙掕壊鐨勫睘鎬ф煡璇㈢敤鎴锋椂
 	 */
 	private final static String QUERY_BY_ROLE_KEY_PREFIX = "pkrole.";
@@ -84,6 +112,41 @@
 	public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid";
 
 	/**
+	 * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栭儴闂ㄦ斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇�
+	 */
+	private Map<String,List<OrgDepartmentVO>> orgDepartmentVOMap;
+
+	/**
+	 * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栬鑹叉斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇�
+	 */
+	private Map<String,List<SmRoleVO>> smRoleVOMap;
+
+	/**
+	 * 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栧瘑鐮佺瓥鐣ユ斁鍒拌繖閲岄伩鍏嶅娆℃煡璇�
+	 */
+	private Map<String,SmPasswordStrategyVO> smPwdStrategyVOMap;
+
+	/**
+	 * 妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦紝鍙互鏍规嵁鐢ㄦ埛鍚嶏紝涔熷彲浠ユ牴鎹敤鎴穙id
+	 * @param userName  浼爊ull锛屽嵆鐢╫id浣滀负妫�鏌ユ潯浠�
+	 * @param oid    浼爊ull锛屽嵆鐢╱serName浣滀负妫�鏌ユ潯浠�
+	 * @return true瀛樺湪锛宖alse涓嶅瓨鍦�
+	 */
+	@Override
+	public boolean checkUserExist(String userName, String oid) throws PLException {
+		if(Func.isEmpty(userName) && Func.isEmpty(oid)){
+			throw new PLException("妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦ㄦ椂锛屼紶閫掔殑鍙傛暟鐢ㄦ埛鍚嶅拰鐢ㄦ埛oid閮戒负绌猴紒",new String[0]);
+		}
+		UserInfo userInfo = null;
+		if(Func.isNotEmpty(userName)) {
+			userInfo = platformClientUtil.getFrameworkService().getUserObjectByUserName(userName);
+		}else{
+			userInfo = platformClientUtil.getFrameworkService().getUserObjectByoid(oid);
+		}
+		return Func.isNotEmpty(userInfo);
+	}
+
+	/**
      *  鏍规嵁鐢ㄦ埛鍚嶈幏鍙栫敤鎴风殑瀵硅薄锛屼笉鍖哄垎澶у皬鍐�
      * @param userId 鐢ㄦ埛鍚�
      * @return 鐢ㄦ埛鐨勬樉绀哄璞★紝濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄥ垯杩斿洖null锛屼笉浼氭姏鍑哄紓甯�
@@ -98,35 +161,6 @@
         } 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;
 	}
 
 	/**
@@ -220,6 +254,7 @@
             throw new VciBaseException("鑾峰彇鐢ㄦ埛澶辫触锛�"+e.getMessage());
         }
 	}
+
 	 /**
      * 鎵归噺鑾峰彇鐢ㄦ埛鐨勪俊鎭� 锛堟牴鎹敤鎴蜂富閿級
      * @param userOidCollections 鐢ㄦ埛涓婚敭鐨勯泦鍚堬紝鍙互瓒呰繃1000涓�
@@ -227,8 +262,7 @@
      * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮暟鎹簱瀛樺湪闂鐨勬椂鍊欎細鎶涘嚭寮傚父
      */
 	@Override
-	public List<SmUserVO> listUserByUserOids(
-			Collection<String> userOidCollections) throws VciBaseException {
+	public List<SmUserVO> listUserByUserOids(Collection<String> userOidCollections) throws VciBaseException {
 		WebUtil.alertNotNull(userOidCollections,"鐢ㄦ埛涓婚敭闆嗗悎");
         try {
             UserInfo[] userInfoArr = platformClientUtil.getFrameworkService().getUserObjectByoids(VciBaseUtil.collection2StrArr(userOidCollections));
@@ -252,6 +286,63 @@
 	}
 
 	/**
+	 * 涓氬姟鏁版嵁杞崲涓烘樉绀哄璞�
+	 * @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);
+		//鐢ㄦ埛鎵�灞為儴闂ㄧ殑鏌ヨ璁剧疆
+		List<OrgDepartmentVO> orgDepartmentVOList = orgDepartmentVOMap.get(userInfo.id);
+		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(","))
+		);
+		//瀵嗙爜绛栫暐鏌ヨ璁剧疆
+		SmPasswordStrategyVO smPasswordStrategyVO = smPwdStrategyVOMap.getOrDefault(userInfo.id,new SmPasswordStrategyVO());
+		smUserVO.setPkPasswordStrategy(smPasswordStrategyVO.getOid());
+		smUserVO.setPkPasswordStrategyName(smPasswordStrategyVO.getName());
+		//瑙掕壊鏌ヨ璁剧疆
+		List<SmRoleVO> smRoleVOList = smRoleVOMap.get(userInfo.id);
+		smUserVO.setPkPerson(
+				Func.isEmpty(smRoleVOList) ?
+						null:smRoleVOList.stream().map(SmRoleVO::getOid).collect(Collectors.joining(","))
+		);
+		smUserVO.setPkPersonName(
+				Func.isEmpty(smRoleVOList) ?
+						null:smRoleVOList.stream().map(SmRoleVO::getName).collect(Collectors.joining(","))
+		);
+		//鏄惁閮ㄩ棬棰嗗
+		smUserVO.setIsDeptLeader(userInfo.isDeptLeader.equals("0") ? "涓嶆槸":"鏄�");
+		//涓撲笟
+		smUserVO.setSpecialties(userInfo.specialties);
+		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;
+	}
+
+	/**
 	 * 鐢ㄦ埛鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
 	 * @param userDOS 鐢ㄦ埛
 	 * @return 鏄剧ず瀵硅薄
@@ -259,11 +350,20 @@
 	private List<SmUserVO> smUserDO2VOs(List<SmUserDO> userDOS){
 		List<SmUserVO> userVOList = new ArrayList<>();
 		Optional.ofNullable(userDOS).orElseGet(()->new ArrayList<>()).stream().forEach(userDO->{
-			SmUserVO userVO = new SmUserVO();
-			BeanUtil.convert(userDO,userVO);
-			userVOList.add(userVO);
+			userVOList.add(smUserDO2VO(userDO));
 		});
 		return userVOList;
+	}
+
+	/**
+	 * 鐢ㄦ埛鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
+	 * @param smUserDO
+	 * @return
+	 */
+	private SmUserVO smUserDO2VO(SmUserDO smUserDO){
+		SmUserVO smUserVO = new SmUserVO();
+		BeanUtil.convert(smUserDO,smUserVO);
+		return smUserVO;
 	}
 
 	/**
@@ -324,9 +424,9 @@
 	 * @return 鐢ㄦ埛鐨勬樉绀哄璞$殑鍒楄〃
 	 */
 	private DataGrid<SmUserVO> gridUserByQueryField(String queryField,String queryValue, Map<String, String> queryMap, PageHelper pageHelper,boolean notIn){
-		if(StringUtils.isBlank(queryValue)){
+		/*if(StringUtils.isBlank(queryValue)){
 			return new DataGrid<>();
-		}
+		}*/
 		PageHelper newPageHelper = new PageHelper(-1);
 		newPageHelper.setSort(pageHelper.getSort());
 		newPageHelper.setOrder(pageHelper.getOrder());
@@ -369,6 +469,7 @@
 		}
 		return dataGrid;
 	}
+
 	/**
      * 鑾峰彇鐢ㄦ埛鐨勫垪琛紝榛樿浼氫互鐢ㄦ埛鍚嶅崌搴忔帓鍒楋紝鐢ㄦ埛鐨勭紪杈戦〉闈㈠垪琛ㄤ笉瑕佷娇鐢ㄨ繖涓帴鍙�
      * @param queryMap 鏌ヨ鏉′欢
@@ -380,6 +481,49 @@
 	public DataGrid<SmUserVO> gridUsers(Map<String, String> queryMap,
 										PageHelper pageHelper) throws VciBaseException {
 		return gridUserByQueryField(null,null,queryMap,pageHelper,false);
+	}
+
+	/**
+	 * 鐢ㄦ埛绠$悊鐣岄潰鍒嗛〉鏌ヨ
+	 * @param conditionMap 鏌ヨ鏉′欢
+	 * @param pageHelper 鍒嗛〉鍙傛暟
+	 * @return
+	 */
+	@Override
+	public DataGrid<SmUserVO> getDataGridUsers(Map<String, String> conditionMap, PageHelper pageHelper) throws PLException {
+		if(pageHelper == null){
+			pageHelper = new PageHelper(-1);
+		}
+		pageHelper.addDefaultAsc("PLTRUENAME");
+		//String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName();
+		//鍒嗛〉鏌ヨ
+		UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition(
+				conditionMap.get("name"),
+				conditionMap.get("userName"),
+				conditionMap.get("deptId"),
+				conditionMap.get("roleId"),
+				"developer",  //褰撳墠鐧诲綍鐨勭敤鎴峰悕
+				pageHelper.getPage(),
+				pageHelper.getLimit()
+		);
+		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);
+			smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null);
+			smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList);
+			dataGrid.setData(userInfoArr2VO(userInfos));
+			dataGrid.setTotal(
+					platformClientUtil.getFrameworkService().getUserTotalByCondition(
+						conditionMap.get("name"),
+						conditionMap.get("userName"),
+						conditionMap.get("deptId"),
+						conditionMap.get("roleId"),
+						"developer"  //褰撳墠鐧诲綍鐨勭敤鎴峰悕
+					)
+			);
+		}
+		return dataGrid;
 	}
 
 	/**
@@ -424,8 +568,6 @@
 		return userVO.getName();
 	}
 
-
-
 	 /**
      * 鏌ヨ鏌愪釜閮ㄩ棬涓嬬殑鐢ㄦ埛瀵硅薄
      * @param deptOid 閮ㄩ棬鐨勪富閿�
@@ -443,7 +585,7 @@
 	}
 
 	/**
-	 * 鑾峰彇
+	 * 鑾峰彇鏌ヨ灏佽鍣紝榛樿鍙煡浜唒lstatus=0鍜宲lusertype=2锛屾帓搴忛粯璁lusername
 	 * @param queryField 鏌ヨ灞炴��
 	 * @param queryValue 鏌ヨ鐨勫��
 	 * @param queryMap  鏌ヨ鏉′欢锛屽鏋滄槸瑙掕壊鐨勫睘鎬э紝闇�瑕佷娇鐢╬krole.xxx
@@ -478,6 +620,43 @@
 		queryWrapperForDO.setDistinct(true);
 		return queryWrapperForDO;
 	}
+
+	/**
+	 * 鑾峰彇鏌ヨ灏佽鍣紝榛樿鍙煡plusertype!=1鐨�
+	 * @param queryField 鏌ヨ灞炴��
+	 * @param queryValue 鏌ヨ鐨勫��
+	 * @param queryMap  鏌ヨ鏉′欢锛屽鏋滄槸瑙掕壊鐨勫睘鎬э紝闇�瑕佷娇鐢╬krole.xxx
+	 * @param pageHelper 鍒嗛〉瀵硅薄
+	 * @param notIn 鏄惁涓轰笉鍖呭惈
+	 * @return 鏌ヨ灏佽鍣�
+	 */
+	private VciQueryWrapperForDO getQueryWrapper2(String queryField,String queryValue,Map<String,String> queryMap,PageHelper pageHelper,boolean notIn){
+		if(pageHelper == null){
+			pageHelper = new PageHelper(-1);
+		}
+		pageHelper.addDefaultAsc("plusername");
+		VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(queryMap,SmUserDO.class,pageHelper);
+		if(StringUtils.isNotBlank(queryField)) {
+			if (queryValue.contains(",")) {
+				if (notIn) {
+					queryWrapperForDO.notIn(queryField, VciBaseUtil.toInSql(VciBaseUtil.str2List(queryValue).toArray(new String[0])));
+				} else {
+					queryWrapperForDO.in(queryField, VciBaseUtil.toInSql(VciBaseUtil.str2List(queryValue).toArray(new String[0])));
+				}
+			} else {
+				if (notIn) {
+					queryWrapperForDO.neq(queryField, queryValue);
+				} else {
+					queryWrapperForDO.eq(queryField, queryValue);
+				}
+			}
+		}
+		addRoleQuerySql(queryMap,queryWrapperForDO);
+		queryWrapperForDO.neq("plusertype", "2");
+		queryWrapperForDO.setDistinct(true);
+		return queryWrapperForDO;
+	}
+
 	/**
      * 鏌ヨ鏌愪釜閮ㄩ棬涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param deptOid 閮ㄩ棬鐨勪富閿�
@@ -492,6 +671,7 @@
 			throws VciBaseException {
 		return gridUserByQueryField(QUERY_FIELD_DEPARTMENT,deptOid,queryMap,pageHelper,false);
 	}
+
 	 /**
      * 鎵归噺鏍规嵁閮ㄩ棬鐨勪富閿幏鍙栫敤鎴�
      * @param deptOidCollection 閮ㄩ棬鐨勪富閿泦鍚�
@@ -510,6 +690,7 @@
 		}
 		return new HashMap<>();
 	}
+
 	/**
      * 鏌ヨ涓嶅湪鏌愪釜閮ㄩ棬涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param deptOid 閮ㄩ棬鐨勪富閿�
@@ -525,6 +706,7 @@
 		}
 		return listUserByQueryField(QUERY_FIELD_DEPARTMENT,deptOid,queryMap,true);
 	}
+
 	/**
      * 鏌ヨ涓嶅湪鏌愪釜閮ㄩ棬涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param deptOid 閮ㄩ棬鐨勪富閿�
@@ -539,6 +721,7 @@
 			throws VciBaseException {
 		return gridUserByQueryField(QUERY_FIELD_DEPARTMENT,deptOid,queryMap,pageHelper,true);
 	}
+
 	 /**
      * 鏌ヨ鏌愪釜瑙掕壊涓嬬殑鐢ㄦ埛瀵硅薄
      * @param roleOid 瑙掕壊鐨勪富閿�
@@ -555,6 +738,7 @@
 		return listUserByQueryField(QUERY_FIELD_ROLE,roleOid,queryMap,false);
 
 	}
+
 	/**
      * 鏌ヨ鏌愪釜瑙掕壊涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param roleOid 瑙掕壊鐨勪富閿�
@@ -569,6 +753,7 @@
 			throws VciBaseException {
 		return gridUserByQueryField(QUERY_FIELD_ROLE,roleOid,queryMap,pageHelper,false);
 	}
+
 	/**
      * 鏌ヨ涓嶅湪鏌愪釜瑙掕壊涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param roleOid 瑙掕壊鐨勪富閿�
@@ -584,6 +769,7 @@
 		}
 		return listUserByQueryField(QUERY_FIELD_ROLE,roleOid,queryMap,true);
 	}
+
 	 /**
      * 鏌ヨ涓嶅湪鏌愪釜瑙掕壊涓嬬殑鐢ㄦ埛瀵硅薄鍒楄〃
      * @param roleOid 瑙掕壊鐨勪富閿�
@@ -598,6 +784,7 @@
 			throws VciBaseException {
 		return gridUserByQueryField(QUERY_FIELD_ROLE,roleOid,queryMap,pageHelper,true);
 	}
+
 	/**
      * 鎵归噺鏍规嵁瑙掕壊鐨勪富閿幏鍙栫敤鎴�
      * @param roleOidCollection 瑙掕壊鐨勪富閿泦鍚�
@@ -655,6 +842,7 @@
 			PageHelper pageHelper) throws VciBaseException {
 		return gridUserByQueryField(null,null,queryMap,pageHelper,false);
 	}
+
 	/**
      * 鍙傜収鐢ㄦ埛鐨勬爲褰㈡樉绀�
      * @param treeQueryObject 鏍戝瀷鎺ュ彛鏌ヨ瀵硅薄
@@ -687,6 +875,7 @@
 		}
 		return treeList;
 	}
+
 	 /**
      * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5
      * @param userOid 鐢ㄦ埛涓婚敭
@@ -714,6 +903,7 @@
 		}
 		return false;
 	}
+
 	/**
      * 鏍¢獙鐢ㄦ埛鏄惁閿佸畾
      * @param smUserVO 鐢ㄦ埛瀵硅薄
@@ -726,7 +916,9 @@
 			return smUserVO.isLockFlag();
 		}
 		//鏌ヨ瀵嗙爜绛栫暐
-		SmPasswordStrategyVO passwordStrategyVO = getPasswordStrategyVOByOid(smUserVO.getPkPasswordStrategy());
+		SmPasswordStrategyVO passwordStrategyVO = smPwdStrategyQueryService.getPasswordStrategyVOByOid(
+				smUserVO.getPkPasswordStrategy()
+		);
 		if(passwordStrategyVO == null){
 			throw new VciBaseException("绯荤粺閲屾病鏈夊瘑鐮佸畨鍏ㄧ瓥鐣�");
 		}
@@ -736,57 +928,6 @@
 		return false;
 	}
 
-	/**
-	 * 浣跨敤涓婚敭鑾峰彇瀵嗙爜绛栫暐
-	 * @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);
-				SmPasswordStrategyVO passwordStrategyVO = new SmPasswordStrategyVO();
-				BeanUtil.convert(passwordStrategyDO,passwordStrategyVO);
-				return passwordStrategyVO;
-			}
-		}
-		return null;
-	}
-
-    /**
-     * 鏍规嵁鐢ㄦ埛鐨勪富閿紝鑾峰彇鐢ㄦ埛鐨勫瘑鐮佸畨鍏ㄧ瓥鐣�
-     * @param userOid 鐢ㄦ埛鐨勪富閿�
-     * @return 瀵嗙爜瀹夊叏绛栫暐鐨勬樉绀哄璞★紝濡傛灉涓嶅瓨鍦ㄥ垯浼氳繑鍥濶ull
-     * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮暟鎹簱鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
-     */
-	@Override
-	public SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid)
-			throws VciBaseException {
-		WebUtil.alertNotNull(userOid,"鐢ㄦ埛鐨勪富閿�");
-		SmUserVO userVO = getUserByUserOid(userOid);
-		if(userVO == null || StringUtils.isBlank(userVO.getOid())){
-			throw new VciBaseException(DATA_OID_NOT_EXIST);
-		}
-		return getPasswordStrategyVOByOid(userVO.getPkPasswordStrategy());
-	}
 
     /**
      * 璁剧疆鏌愪釜鐢ㄦ埛鏄攣瀹氱姸鎬�
@@ -796,6 +937,7 @@
 	public void lockUser(String userId) {
 		//鑰佺殑杩欎釜骞冲彴锛屾槸渚濋潬閿佸畾娆℃暟鏉ュ垽鏂殑锛屾墍浠ヨ繖閲屾病鍔炴硶鐩存帴璁剧疆
 	}
+
 	 /**
      * 璁剧疆鏌愪釜鐢ㄦ埛涓嶆槸閿佸畾鐘舵��
      * @param userId 鐢ㄦ埛鍚�
@@ -810,6 +952,7 @@
 			throw WebUtil.getVciBaseException(vciError);
 		}
 	}
+
 	 /**
      * 淇敼瀵嗙爜
      * @param userOid 鐢ㄦ埛涓婚敭
@@ -833,6 +976,7 @@
 			throw WebUtil.getVciBaseException(vciError);
 		}
 	}
+
 	/**
      * 鏇存柊鐢ㄦ埛鐨勫瘑鐮侀敊璇鏁�
      * @param userOid 鐢ㄦ埛鐨勪富閿�
@@ -850,6 +994,7 @@
 			throw WebUtil.getVciBaseException(vciError);
 		}
 	}
+
 	 /**
      * 鏇存柊鐢ㄦ埛鐨勬渶鍚庣櫥褰曟椂闂�
      * @param userOid 鐢ㄦ埛鐨勪富閿�
@@ -865,4 +1010,109 @@
 			throw WebUtil.getVciBaseException(vciError);
 		}
 	}
+
+	/**
+	 * 娣诲姞鐢ㄦ埛
+	 * @param smUserDTO
+	 * @return
+	 */
+	@Override
+	public boolean addUser(SmUserDTO smUserDTO) throws PLException {
+		VciBaseUtil.alertNotNull(
+				smUserDTO,"娣诲姞鐨勭敤鎴峰璞�",
+				smUserDTO.getId(),"璐﹀彿",
+				smUserDTO.getPassword(),"瀵嗙爜",
+				smUserDTO.getConfirmPassword(),"纭瀵嗙爜",
+				smUserDTO.getName(),"濮撳悕"
+		);
+		//纭瀵嗙爜
+		String confirmPassword = smUserDTO.getConfirmPassword();
+		//姣斿瀵嗙爜鏄槸鍚︿竴鑷�
+		if(!smUserDTO.getPassword().equals(confirmPassword)){
+			throw new VciBaseException("涓ゆ瀵嗙爜涓嶄竴鑷达紝璇烽噸鏂板~鍐�!");
+		}
+		//鍏堢敤鎴峰悕锛堣处鍙凤級鏌ラ噸
+		SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId());
+		if(Func.isNotEmpty(dbSmUserVO) && Func.isNotBlank(dbSmUserVO.getOid())){
+			throw new VciBaseException("璇ョ敤鎴峰悕鍦ㄧ郴缁熶腑宸茬粡瀛樺湪,璇蜂慨鏀�!");
+		}
+		//瀵嗙爜鍔犲瘑
+		ThreeDES des = new ThreeDES();
+		des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵
+		//绗簩娆D5鍔犲瘑
+		String md5Password2 = des.getEncString(smUserDTO.getPassword());
+		//鐢熸垚瀛樺偍鐨凞O瀵硅薄
+		smUserDTO.setOid(VciBaseUtil.getPk());
+		smUserDTO.setPassword(md5Password2);
+		smUserDTO.setLockFlag("0");
+		BusinessObject user = ClientServiceProvider.getBOFService().initBusinessObject("user");
+		SmUserDO smUserDO = new SmUserDO();
+		BeanUtil.convert(user,smUserDO);
+		UserInfo userInfo = new UserInfo();
+		BeanUtil.convert(smUserDO,userInfo);
+		return platformClientUtil.getFrameworkService().saveOrUpdateUser(userInfo, null);
+	}
+
+	/**
+	 * 淇敼鐢ㄦ埛
+	 * @param smUserDTO
+	 * @return
+	 */
+	@Override
+	public boolean updateUser(SmUserDTO smUserDTO) throws PLException {
+		UserInfo userInfo = new UserInfo();
+		BeanUtil.convert(smUserDTO,userInfo);
+		return platformClientUtil.getFrameworkService().updateUser(userInfo, null);
+	}
+
+	/***
+	 * 鐢ㄦ埛浠庡鎴风瀵硅薄鍒癱orba瀵硅薄
+	 *
+	 * @param user
+	 * @return
+	 */
+	public UserInfo changeUserObjectToUserInfo(UserObject user) {
+		UserInfo userInfo = new UserInfo();
+		userInfo.id = user.getId() == null ? "" : user.getId();
+		userInfo.userName = user.getUserName() == null ? "" : user.getUserName();
+		userInfo.pwd = user.getPwd() == null ? "" : user.getPwd();
+		userInfo.trueName = user.getTrueName() == null ? "" : user.getTrueName();
+		userInfo.specialties = user.getSpecialties() == null ? "" : user.getSpecialties();
+		userInfo.email = user.getEmail() == null ? "" : user.getEmail();
+		userInfo.desc = user.getDesc() == null ? "" : user.getDesc();
+		userInfo.userType = user.getUserType();
+		userInfo.status = user.getStatus();
+		userInfo.createTime = user.getCreateTime();
+		userInfo.createUser = user.getCreateUser() == null ? "" : user.getCreateUser();
+		userInfo.updateTime = user.getUpdateTime();
+		userInfo.updateUser = user.getUpdateUser() == null ? "" : user.getUpdateUser();
+		userInfo.pwdUpdateTime = user.getPwdUpdateTime();
+		userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor();
+		userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader();
+		return userInfo;
+	}
+
+	/**
+	 * 鍒犻櫎鐢ㄦ埛
+	 * @param ids
+	 * @return
+	 */
+	@Override
+	public boolean deleteUser(String[] ids) throws PLException {
+		VciBaseUtil.alertNotNull(ids,"寰呭垹闄ょ殑鐢ㄦ埛id鍒楄〃涓嶈兘涓虹┖锛�");
+		return platformClientUtil.getFrameworkService().deleteUser(ids, null);
+	}
+
+	/**
+	 * 鐢ㄦ埛鍋滅敤/鍚敤
+	 * @param ids
+	 * @param flag
+	 * @return
+	 */
+	@Override
+	public boolean disableOrEnableUsers(String[] ids, boolean flag) throws PLException {
+		VciBaseUtil.alertNotNull(ids,"鍋滅敤/鍚敤鐨勭敤鎴穒d鍒楄〃");
+		return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null);
+	}
+
 }

--
Gitblit v1.9.3