From db13f13c39508acdb0c4a88cbf51c930fb2fba16 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 15 十一月 2024 10:10:17 +0800 Subject: [PATCH] 管理员添加用户之后设置用户密码修改时间为0 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 70 insertions(+), 40 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 8aae3cd..df14674 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,7 +1,11 @@ package com.vci.frameworkcore.compatibility.impl; +import com.vci.common.utility.ObjectUtility; import com.vci.corba.framework.data.DeptInfo; import com.vci.corba.framework.data.RoleInfo; +import com.vci.corba.framework.data.UserLogonInfo; +import com.vci.corba.omd.etm.EnumItem; +import com.vci.corba.omd.etm.EnumType; import com.vci.dto.SmUserDTO; import com.vci.common.util.ThreeDES; import com.vci.corba.common.PLException; @@ -39,7 +43,6 @@ import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.util.HSSFColor; -import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -117,6 +120,11 @@ * 浣跨敤瑙掕壊鏌ヨ鐨勬椂鍊欑殑鏌ヨ瀛楁 */ public static final String QUERY_FIELD_ROLE = "roleUser.plroleuid"; + + /** + * 瀵嗙骇鐨勬灇涓緆ey + */ + private static final String ENUM_USERSECURITYENUM = "usersecurityenum"; /** * 蹇呭~鍒� @@ -317,7 +325,16 @@ smUserVO.setId(userInfo.userName); smUserVO.setName(userInfo.trueName); smUserVO.setSecretGrade(userInfo.secretGrade); - smUserVO.setSecretGradeText(UserSecretEnum.getSecretText(userInfo.secretGrade)); + //瀵嗙骇澶勭悊 + String secretGrade = "" + userInfo.secretGrade; + EnumType item = platformClientUtil.getEnumService().getEnumTypeByName(ENUM_USERSECURITYENUM); + EnumItem[] children = item.items; + for(EnumItem child: children){ + if(child.value.equals(secretGrade)){ + smUserVO.setSecretGradeText(child.name); + break; + } + } smUserVO.setUserType(String.valueOf(userInfo.userType)); smUserVO.setUserTypeText(UserTypeEnum.getTextByValue(String.valueOf(userInfo.userType))); smUserVO.setDescription(userInfo.desc); @@ -370,11 +387,8 @@ smUserVO.setIsDeptLeader(userInfo.isDeptLeader.equals("0") ? "涓嶆槸":"鏄�"); //涓撲笟 smUserVO.setSpecialties(userInfo.specialties); - if(userInfo.status == 0){ - smUserVO.setLockFlag(false); - }else{ - smUserVO.setLockFlag(true); - } + UserLogonInfo lockObj = platformClientUtil.getFrameworkService().fetchUserLogonObj(userInfo.id); + smUserVO.setLockFlag(lockObj.plWrongNum == 0); smUserVO.setCreator(userInfo.createUser); smUserVO.setCreateTime(VciDateUtil.long2Date(userInfo.createTime)); smUserVO.setLastModifier(userInfo.updateUser); @@ -975,7 +989,7 @@ return rootTreeList; } - /*** + /** * * @param dataType * @param orgType @@ -1040,7 +1054,7 @@ rootTreeList.add(childTree); }); } - }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(dataType)) {//濡傛灉鏄儴闂� + }else if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(dataType)) {//濡傛灉鏄儴闂� DeptInfo[] deptInfos=new DeptInfo[]{}; Tree departmentTree=new Tree(); if(OrgTypeEnum.ORG_TYPE_DEPT.getValue().equals(parentId)) { @@ -1094,7 +1108,7 @@ } } - /*** + /** * * @param oid * @param text @@ -1112,20 +1126,21 @@ } return ObjectTreeNode; } + /** * 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5 - * @param userOid 鐢ㄦ埛涓婚敭 + * @param userName 鐢ㄦ埛鍚� * @param md5Password 宸茬粡md5鍔犲瘑涓�娆$殑瀵嗙爜--鑰佺殑骞冲彴閲屼笉鑳藉姞瀵� * @return true 琛ㄧず鐩哥瓑锛宖alse琛ㄧず涓嶇浉绛� */ @Override - public boolean checkPasswordEqual(String md5Password, String userOid) { - if(StringUtils.isBlank(md5Password) || StringUtils.isBlank(userOid)){ + public boolean checkPasswordEqual(String md5Password, String userName) { + if(StringUtils.isBlank(md5Password) || StringUtils.isBlank(userName)){ return false; } - String sql = " select plpassword from pluser where pluid = :userOid"; + String sql = " select plpassword from pluser where plusername = :userName"; Map<String,String> conditionMap = new HashMap<>(); - conditionMap.put("userOid",userOid.trim()); + conditionMap.put("userName",userName.trim()); List<BusinessObject> BusinessObjectList = boService.queryBySql(sql, conditionMap); if(CollectionUtils.isEmpty(BusinessObjectList)){ return false; @@ -1133,8 +1148,10 @@ ThreeDES des = new ThreeDES();// 瀹炰緥鍖栦竴涓锟�? des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵 - md5Password = des.getEncString(md5Password); - if(md5Password.equals(ObjectTool.getNewBOAttributeValue(BusinessObjectList.get(0),"plpassword"))){ + //瀵规煡璇㈠嚭鏉ョ殑瀵嗙爜瑙e瘑 + String plpassword = ObjectTool.getNewBOAttributeValue(BusinessObjectList.get(0), "plpassword"); + plpassword = des.getDesString(plpassword); + if(md5Password.equals(plpassword)){ return true; } return false; @@ -1190,16 +1207,16 @@ /** * 淇敼瀵嗙爜 - * @param userOid 鐢ㄦ埛涓婚敭 + * @param userName 鐢ㄦ埛涓婚敭 * @param oldPassword 鏃х殑瀵嗙爜 * @param password 鏂扮殑瀵嗙爜 * @param confirmPassword 纭瀵嗙爜 */ @Override @Transactional(rollbackFor = Exception.class) - public boolean changePassword(String userOid,String oldPassword, String password, + public boolean changePassword(String userName,String oldPassword, String password, String confirmPassword) throws Exception { - WebUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭",oldPassword,"鐧诲綍瀵嗙爜",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜"); + VciBaseUtil.alertNotNull(userName,"鐢ㄦ埛鍚�",oldPassword,"鐧诲綍瀵嗙爜",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜"); if(!password.equals(confirmPassword)){ throw new VciBaseException("瀵嗙爜鍜岀‘璁ゅ瘑鐮佷笉鐩哥瓑"); } @@ -1207,39 +1224,27 @@ oldPassword = Func.decryptAes(oldPassword,"daliantan0v0vcip"); password = Func.decryptAes(password,"daliantan0v0vcip"); //瀵规瘮鏃у瘑鐮� - boolean b = this.checkPasswordEqual(oldPassword, userOid); + boolean b = this.checkPasswordEqual(oldPassword, userName); if(!b){ throw new PLException("500", new String[] { "鎮ㄨ緭鍏ョ殑瀵嗙爜涓庣櫥褰曞瘑鐮佷笉涓�鑷�,璇烽噸鏂拌緭鍏�!"}); } - SmUserVO smUserVO = getUserByUserOid(userOid); - if(Func.isEmpty(smUserVO)){ + UserInfo userInfo = platformClientUtil.getFrameworkService().getUserObjectByUserName(userName); + if(Func.isEmpty(userInfo) || Func.isBlank(userInfo.id)){ throw new VciBaseException("褰撳墠淇敼鐨勭敤鎴蜂笉瀛樺湪锛�"); } //TODO:鏍¢獙瀵嗙爜鏄惁绗﹀悎绛栫暐 - String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(smUserVO.getId(), password,null); + String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userInfo.id, password,null); if (!StringUtils.isBlank(error)) { throw new VciBaseException("褰撳墠璁剧疆鐨勫瘑鐮侊紝瀵嗙爜绛栫暐鏍¢獙鏈�氳繃!"); } //TODO:鑰冭檻鏄惁闇�瑕佸皢淇敼鏂瑰紡鏀规垚鐩存帴璋冪敤骞冲彴鐨勬帴鍙o紝鍥犱负鐜板湪鐨勪慨鏀规柟寮忔病鑳芥纭殑鏇存柊缂撳瓨 - /*UserInfo userInfo = new UserInfo(); - userInfo.id = userOid.trim(); userInfo.pwd = password; userInfo.pwdUpdateTime = System.currentTimeMillis(); - boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(), null)); - return updateBoolean;*/ - - ThreeDES des = new ThreeDES();// 瀹炰緥鍖栦竴涓锟�? - des.getKey("daliantan0v0");// 鐢熸垚瀵嗗寵 - String encPassword = des.getEncString(password); - //淇敼瀵嗙爜鐨勫悓鏃堕渶瑕佸皢瀵嗙爜淇敼鏃堕棿涔熸洿鏂� - String sql = "update pluser set plpassword = '" + encPassword + "', plpwdupdatetime = TO_DATE('" - + Func.format(new Date(),"yyyy-MM-dd HH:mm:ss") +"','yyyy-MM-dd hh24:mi:ss') where pluid = '" + userOid.trim() + "'"; - try { - return platformClientUtil.getBOFactoryService().executeUpdateSql(sql); - } catch (PLException vciError) { - throw WebUtil.getVciBaseException(vciError); - } + boolean updateBoolean = platformClientUtil.getFrameworkService() + .updateUser(userInfo, new UserEntityInfo(WebThreadLocalUtil.getCurrentUserSessionInfoInThread()== null ? + userName : WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(), null)); + return updateBoolean; } /** @@ -1311,7 +1316,10 @@ } smUserDTO.setCreator(loginUserId); smUserDTO.setLastModifier(loginUserId); + smUserDTO.setOid(ObjectUtility.getNewObjectID36()); UserInfo userInfo = changeSmUserDTOToUserInfo(smUserDTO); + //绠$悊鍛樻坊鍔犵殑鐢ㄦ埛鍒濆瀵嗙爜淇敼鏃堕棿閮藉簲璇ヤ负0锛屽洜涓烘秹鍙婂埌鍚庨潰鐢ㄦ埛棣栨鐧诲綍鑷繁淇敼瀵嗙爜 + userInfo.pwdUpdateTime = 0; UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId, ""); String oid = platformClientUtil.getFrameworkService().saveUser(userInfo, userEntityInfo); if (Func.isEmpty(oid)) { @@ -1446,6 +1454,7 @@ userInfo.updateUser = user.getLastModifier() == null ? "" : user.getLastModifier(); userInfo.pwdUpdateTime = user.getPwdUpdateTime().getTime(); userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor(); + userInfo.secretGrade = user.getSecretGrade() == null ? 2 : Integer.valueOf(user.getGrantor()); userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader(); return userInfo; } @@ -1634,4 +1643,25 @@ return BaseResult.success("鐢ㄦ埛瀵煎叆鎴愬姛锛�"); } + /** + * 鏍规嵁瑙掕壊绫诲瀷鏌ヨ鐢ㄦ埛鍚� + * @param roleType + * @return + */ + @Override + public List<String> queryUserNameByRoleType(String roleType) throws PLException { + List<String> userNameList = new ArrayList<>(); + if(Func.isBlank(roleType)){ + return userNameList; + } + String sql = "SELECT PLUSERNAME FROM PLUSER p WHERE PLUID IN " + + "(SELECT PLUSERUID FROM PLUSERROLE p WHERE PLROLEUID IN " + + "( SELECT PLUID FROM PLROLE p WHERE PLTYPE = "+ roleType + "))"; + List<BusinessObject> cbos = boService.queryBySql(sql, null); + cbos.stream().forEach(cbo->{ + userNameList.add(ObjectTool.getNewBOAttributeValue(cbo,"plusername")); + }); + return userNameList; + } + } -- Gitblit v1.9.3