Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/BaseQueryObject.java
@@ -1,6 +1,5 @@ package com.vci.starter.web.pagemodel; import com.alibaba.fastjson.annotation.JSONField; import org.apache.commons.lang3.StringUtils; @@ -56,32 +55,32 @@ /** * æ¥è¯¢æ¡ä»¶çæ å°å ³ç³» */ @JSONField() private Map<String,String> conditionMap = new HashMap<String, String>(); @JSONField private Map<String,String> conditionMap = new HashMap<>(); /** * å½å页 */ @JSONField() @JSONField private int page = 1; // å½å页 /** * æåºå段 */ @JSONField() @JSONField private String sort; // æåºå段 ---åç«¯åªæ¯æä½¿ç¨ä¸ä¸ªåæ®µæ¥æåºï¼ä½æ¯åå°å®é å¯ä»¥ä½¿ç¨å¤ä¸ªåæ®µæ¥æåºï¼æä»¥å¯ä»¥ä½¿ç¨éå·åå² /** * æåºç±»å */ @JSONField() @JSONField private String order; // asc/desc,妿æå¤ä¸ªæåºå段æ¶ï¼è¿éä¹éè¦ç¨éå·åå²ï¼ä¸ä¸sortçä½ç½®å¯¹åº /** * æ¯é¡µæ¾ç¤ºé¡µæ° */ @JSONField() @JSONField private int limit = 25;//æ¯é¡µæ¾ç¤ºçæ¡æ° /** @@ -90,6 +89,14 @@ */ public Map<String, String> getConditionMap() { return conditionMap; } /** * 设置æ¥è¯¢æ¡ä»¶ * @param conditionMap æ¥è¯¢æ¡ä»¶çæ å°å ³ç³» */ public void setConditionMap(Map<String, String> conditionMap) { this.conditionMap = conditionMap; } /** @@ -110,14 +117,6 @@ return conditionMapHasNick; } return null; } /** * 设置æ¥è¯¢æ¡ä»¶ * @param conditionMap æ¥è¯¢æ¡ä»¶çæ å°å ³ç³» */ public void setConditionMap(Map<String, String> conditionMap) { this.conditionMap = conditionMap; } public int getPage() { @@ -236,4 +235,5 @@ ", limit=" + limit + '}'; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/OrgDeptQueryServiceI.java
@@ -1,5 +1,6 @@ package com.vci.frameworkcore.compatibility; import com.vci.corba.common.PLException; import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; @@ -56,7 +57,7 @@ * @param queryMap æ¥è¯¢æ¡ä»¶ï¼å¦æéè¦ä½¿ç¨ç¨æ·ç屿§æ¥æ¥è¯¢å¯ä»¥ä½¿ç¨pkUser.xxxx * @return é¨é¨çæ¾ç¤ºå¯¹è±¡ */ OrgDepartmentVO listDeptByUserOid(String userOid, Map<String, String> queryMap); List<OrgDepartmentVO> listDeptByUserOid(String userOid, Map<String, String> queryMap); /** * è·åæªå ³èæä¸ªç¨æ·çé¨é¨ @@ -113,4 +114,12 @@ */ DataGrid refTreeGridDept(TreeQueryObject treeQueryObject); /** * ä¿åé¨é¨è§è²å ³èä¿¡æ¯ï¼å¸¦æ¥éåè½ * @param userId ç¨æ·id * @param deptIds é¨é¨oid * @return */ boolean saveUserDepts(String userId, List<String> deptIds) throws PLException; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmPwdStrategyQueryServiceI.java
@@ -1,17 +1,8 @@ package com.vci.frameworkcore.compatibility; import com.vci.corba.common.PLException; import com.vci.corba.omd.data.BusinessObject; import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO; import com.vci.frameworkcore.pagemodel.SmRoleVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.util.BeanUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.model.SmPasswordStrategyDO; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; import java.util.Collection; import java.util.List; Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
@@ -1,15 +1,13 @@ package com.vci.frameworkcore.compatibility; import com.vci.corba.common.PLException; import com.vci.frameworkcore.dto.SmUserDTO; import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO; import com.vci.frameworkcore.model.dto.SmUserDTO; import com.vci.frameworkcore.pagemodel.SmUserVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.pagemodel.TreeQueryObject; import com.vci.web.model.SmUserDO; import java.util.Collection; import java.util.List; Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
@@ -1,5 +1,6 @@ package com.vci.frameworkcore.compatibility.impl; import com.vci.corba.common.PLException; import com.vci.corba.omd.data.BusinessObject; import com.vci.frameworkcore.compatibility.OrgDeptQueryServiceI; import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus; @@ -20,10 +21,13 @@ import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; 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; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; @@ -43,6 +47,12 @@ */ @Autowired private WebBoServiceI boService; /** * å¹³å°è°ç¨å®¢æ·ç«¯ */ @Autowired private PlatformClientUtil platformClientUtil; /** * 对象æä½å·¥å ·ç±» @@ -179,7 +189,7 @@ if(queryMap == null){ queryMap = new HashMap<>(); } List<OrgDeptForPlatform1> roles = new ArrayList<>(); List<OrgDeptForPlatform1> deptForPlatform1s = new ArrayList<>(); if(userOid.contains(",")){ Map<String, String> finalQueryMap = queryMap; WebUtil.switchCollectionForOracleIn(WebUtil.str2List(userOid)).stream().forEach(userOids->{ @@ -191,7 +201,7 @@ VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(conditionMap,OrgDeptForPlatform1.class); List<OrgDeptForPlatform1> roleForPlatform1s = boService.selectByQueryWrapper(queryWrapper, OrgDeptForPlatform1.class); if(!CollectionUtils.isEmpty(roleForPlatform1s)){ roles.addAll(roleForPlatform1s); deptForPlatform1s.addAll(roleForPlatform1s); } }); }else { @@ -200,9 +210,9 @@ VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(queryMap,OrgDeptForPlatform1.class); List<OrgDeptForPlatform1> roleForPlatform1s = boService.selectByQueryWrapper(queryWrapper, OrgDeptForPlatform1.class); if(!CollectionUtils.isEmpty(roleForPlatform1s)){ roles.addAll(roleForPlatform1s); deptForPlatform1s.addAll(roleForPlatform1s); } return deptDO2VOs(roles); return deptDO2VOs(deptForPlatform1s); } /** @@ -212,13 +222,13 @@ * @return é¨é¨çæ¾ç¤ºå¯¹è±¡ */ @Override public OrgDepartmentVO listDeptByUserOid(String userOid, public List<OrgDepartmentVO> listDeptByUserOid(String userOid, Map<String, String> queryMap) { List<OrgDepartmentVO> departmentVOS = listDeptByUserOid(userOid, queryMap, false); if(CollectionUtils.isEmpty(departmentVOS)){ return null; return new ArrayList<>(); } return departmentVOS.get(0); return departmentVOS; } /** @@ -412,4 +422,39 @@ return dataGrid; } /** * ä¿åé¨é¨è§è²å ³èä¿¡æ¯ï¼å¸¦æ¥éåè½ * @param userId ç¨æ·id * @param deptIds é¨é¨id * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean saveUserDepts(String userId, List<String> deptIds) throws PLException { if(Func.isBlank(userId) || Func.isEmpty(deptIds)){ return false; } List<String> repeatDeptOidList = new ArrayList<>(); //循ç¯è¿è¡æ¥éï¼é¿å in大äº1000 WebUtil.switchCollectionForOracleIn(deptIds).stream().forEach(deptoids->{ String sql = "select pluseruid,pldeptuid from pluserdept where pluseruid = " + userId + " and " + "pldeptuid in ("+WebUtil.toInSql(deptoids.toArray(new String[0]))+")"; List<BusinessObject> cbos = boService.queryBySql(sql, null); if(!CollectionUtils.isEmpty(cbos)){ cbos.stream().forEach(cbo->{ repeatDeptOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"pldeptuid")); }); } }); //ä»å³å°è¦æ§è¡ä¿åçé¨é¨oidä¸ç§»é¤å½åç¨æ·å·²ç»åå¨å ³èå ³ç³»ççé¨é¨oid deptIds.removeAll(repeatDeptOidList); if(Func.isNotEmpty(deptIds)){ for (String deptId : deptIds){ platformClientUtil.getFrameworkService().saveUserDept(new String[]{userId}, deptId,null); } } return true; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmPwdStrategyQueryServiceImpl.java
@@ -4,17 +4,12 @@ import com.vci.corba.omd.data.BusinessObject; import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI; import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.frameworkcore.model.OrgDeptForPlatform1; import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.frameworkcore.model.SmPasswordStrategyDO; 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.constant.QueryOptionConstant; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.util.BeanUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.model.SmPasswordStrategyDO; import com.vci.web.service.WebBoServiceI; import com.vci.web.util.Func; import com.vci.web.util.WebUtil; @@ -24,9 +19,7 @@ import org.springframework.util.CollectionUtils; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; /** @@ -163,10 +156,10 @@ @Override public SmPasswordStrategyVO getPasswordStrategyVOByUserOid(String userOid) throws PLException { WebUtil.alertNotNull(userOid,"ç¨æ·ç主é®"); if(smUserQueryService.checkUserExist(null,userOid)){ if(!smUserQueryService.checkUserExist(null,userOid)){ throw new VciBaseException(DATA_OID_NOT_EXIST); } String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid = '"+ userOid +"')"; String sql = "select plpasswordstrategyuid,pluseruid from pluserpasswordstrategy where pluseruid = '"+ userOid +"'"; List<BusinessObject> cbos = boService.queryBySql(sql, null); if(Func.isNotEmpty(cbos)){ return getPasswordStrategyVOByOid(ObjectTool.getNewBOAttributeValue(cbos.get(0), "plpasswordstrategyuid")); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
@@ -1,16 +1,17 @@ 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.common.data.UserEntityInfo; 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.model.dto.SmUserDTO; import com.vci.frameworkcore.model.SmUserDO; import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO; import com.vci.frameworkcore.pagemodel.SmRoleVO; @@ -26,11 +27,8 @@ 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; @@ -38,9 +36,11 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; @@ -171,7 +171,7 @@ * @throws VciBaseException æ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ */ private SmUserVO getUserByField(String queryField,String queryValue) throws VciBaseException{ VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(null,SmUserDO.class,null,true); VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(null, SmUserDO.class,null,true); queryWrapper.eq(queryWrapper.getTableNick() + "." +queryField,queryValue); queryWrapper.setDistinct(true); queryWrapper.wrapperSql(); @@ -277,7 +277,7 @@ * @param userInfoArr ä¸å¡æ°æ®æ°ç» * @return æ¾ç¤ºå¯¹è±¡éå */ private List<SmUserVO> userInfoArr2VO(UserInfo[] userInfoArr) { private List<SmUserVO> userInfoArr2VO(UserInfo[] userInfoArr) throws PLException { List<SmUserVO> userVOList = new ArrayList<>(); for(UserInfo userInfo : userInfoArr){ userVOList.add(userInfo2VO(userInfo)); @@ -290,7 +290,10 @@ * @param userInfo å¹³å°è¿åçä¸å¡æ°æ® * @return ç¨æ·æ¾ç¤ºå¯¹è±¡ */ private SmUserVO userInfo2VO(UserInfo userInfo) { private SmUserVO userInfo2VO(UserInfo userInfo) throws PLException { if(Func.isBlank(userInfo.id)){ return new SmUserVO(); } SmUserVO smUserVO = new SmUserVO(); smUserVO.setOid(userInfo.id); smUserVO.setId(userInfo.userName); @@ -302,7 +305,13 @@ smUserVO.setDescription(userInfo.desc); smUserVO.setEmail(userInfo.email); //ç¨æ·æå±é¨é¨çæ¥è¯¢è®¾ç½® List<OrgDepartmentVO> orgDepartmentVOList = orgDepartmentVOMap.get(userInfo.id); List<OrgDepartmentVO> orgDepartmentVOList; //æ¥çå ¨å±åé䏿¯å¦åå¨é¨é¨ä¿¡æ¯ï¼åå¨çæ åµæä¸»è¦æ¯é坹夿¡ç¨æ·æ¥è¯¢çæ¶åé¿å é夿¥è¯¢ç if(Func.isNotEmpty(orgDepartmentVOMap)){ orgDepartmentVOList = orgDepartmentVOMap.get(userInfo.id); }else { orgDepartmentVOList = orgDeptQueryService.listDeptByUserOid(userInfo.id,null); } smUserVO.setPkDepartment( Func.isEmpty(orgDepartmentVOList) ? null:orgDepartmentVOList.stream().map(OrgDepartmentVO::getOid).collect(Collectors.joining(",")) @@ -312,11 +321,23 @@ null:orgDepartmentVOList.stream().map(OrgDepartmentVO::getName).collect(Collectors.joining(",")) ); //å¯ç çç¥æ¥è¯¢è®¾ç½® SmPasswordStrategyVO smPasswordStrategyVO = smPwdStrategyVOMap.getOrDefault(userInfo.id,new SmPasswordStrategyVO()); SmPasswordStrategyVO smPasswordStrategyVO; if(Func.isNotEmpty(smPwdStrategyVOMap)){ smPasswordStrategyVO = smPwdStrategyVOMap.getOrDefault(userInfo.id,new SmPasswordStrategyVO()); }else { smPasswordStrategyVO = smPwdStrategyQueryService.getPasswordStrategyVOByUserOid(userInfo.id); //妿ä¸åå¨å°±è·åé»è®¤ç smPasswordStrategyVO = Func.isNotEmpty(smPasswordStrategyVO) ? smPasswordStrategyVO:smPwdStrategyQueryService.getPasswordStrategyVOByDefault(); } smUserVO.setPkPasswordStrategy(smPasswordStrategyVO.getOid()); smUserVO.setPkPasswordStrategyName(smPasswordStrategyVO.getName()); //è§è²æ¥è¯¢è®¾ç½® List<SmRoleVO> smRoleVOList = smRoleVOMap.get(userInfo.id); List<SmRoleVO> smRoleVOList; if (Func.isNotEmpty(smRoleVOMap)) { smRoleVOList = smRoleVOMap.get(userInfo.id); }else { smRoleVOList = smRoleQueryService.listRoleByUserOid(userInfo.id,null); } smUserVO.setPkPerson( Func.isEmpty(smRoleVOList) ? null:smRoleVOList.stream().map(SmRoleVO::getOid).collect(Collectors.joining(",")) @@ -495,6 +516,7 @@ pageHelper = new PageHelper(-1); } pageHelper.addDefaultAsc("PLTRUENAME"); //TODO:ä¸ºäºæ¹ä¾¿è°è¯ï¼æä»¥è¿å¿å 注éåæ»åé¢è®°å¾æ´æ¹ //String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName(); //å页æ¥è¯¢ UserInfo[] userInfos = platformClientUtil.getFrameworkService().fetchUserInfoByCondition( @@ -557,6 +579,7 @@ SmUserVO userVO = getUserByUserId(userId); return userVO == null?"":userVO.getName(); } /** * æ ¹æ®ç¨æ·ä¸»é®è·åç¨æ·çå§å * @param userOid ç¨æ·ä¸»é® @@ -928,7 +951,6 @@ return false; } /** * 设置æä¸ªç¨æ·æ¯éå®ç¶æ * @param userId ç¨æ·å @@ -960,6 +982,7 @@ * @param confirmPassword 确认å¯ç */ @Override @Transactional(rollbackFor = Exception.class) public void changePassword(String userOid, String password, String confirmPassword) throws VciBaseException { WebUtil.alertNotNull(userOid,"ç¨æ·ä¸»é®",password,"å¯ç ",confirmPassword,"确认å¯ç "); @@ -1017,40 +1040,38 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean addUser(SmUserDTO smUserDTO) throws PLException { //å¤ç©º VciBaseUtil.alertNotNull( smUserDTO,"æ·»å çç¨æ·å¯¹è±¡", smUserDTO.getId(),"è´¦å·", 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");// çæå¯å //ç¬¬äºæ¬¡MD5å å¯ String md5Password2 = des.getEncString(smUserDTO.getPassword()); //æ ¡éª check(smUserDTO,true); //çæåå¨çDO对象 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); Date date = new Date(); smUserDTO.setPwdUpdateTime(date); smUserDTO.setStatus((short) 0); smUserDTO.setCreateTime(date); smUserDTO.setLastModifyTime(date); //userObject.setCreateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); smUserDTO.setCreator("developer"); //userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); smUserDTO.setLastModifier("developer"); UserInfo userInfo = changeUserObjectToUserInfo(smUserDTO); UserEntityInfo userEntityInfo = new UserEntityInfo("developer", ""); String oid = platformClientUtil.getFrameworkService().saveUser(userInfo, userEntityInfo); if (Func.isEmpty(oid)) { return false; } if(Func.isNotBlank(smUserDTO.getPkDepartment())){ platformClientUtil.getFrameworkService().saveUserDept(new String[]{oid}, smUserDTO.getPkDepartment(), userEntityInfo); } return true; } /** @@ -1059,10 +1080,129 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean updateUser(SmUserDTO smUserDTO) throws PLException { //å¤ç©º VciBaseUtil.alertNotNull( smUserDTO,"ä¿®æ¹çç¨æ·å¯¹è±¡", smUserDTO.getOid(),"ç¨æ·ä¸»é®", smUserDTO.getId(),"ç¨æ·å", smUserDTO.getPassword(),"å¯ç ", smUserDTO.getConfirmPassword(),"确认å¯ç ", smUserDTO.getName(),"å§å" ); //æ ¡éª check(smUserDTO,false); //æ¥è¯¢æ°æ®åºä¸ç SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId()); //æ ¹æ®ç¨æ·åæ¥è¯¢å°äºç¨æ·ï¼ä½æ¯oid䏿¯å½åä¿®æ¹çç¨æ·çoidï¼è¯´æä¿®æ¹çç¨æ·åéå¤ if(Func.isNotEmpty(dbSmUserVO) && !dbSmUserVO.getOid().equals(smUserDTO.getOid()) ){ throw new PLException("ç¨æ·åå·²åå¨ï¼ä¸è½å°å½åç¨æ·çç¨æ·åä¿®æ¹ä¸º" + dbSmUserVO.getId(),new String[0]); } smUserDTO.setLastModifyTime(new Date()); //userObject.setUpdateUser(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName()); smUserDTO.setLastModifier("developer"); UserInfo userInfo = changeUserObjectToUserInfo(smUserDTO); boolean updateBoolean = platformClientUtil.getFrameworkService().updateUser(userInfo, new UserEntityInfo("developer", null)); //ç¨æ·å ³èé¨é¨æææ´æ¹ if(Func.isNotEmpty(smUserDTO.getPkDepartment()) && !smUserDTO.getPkDepartment().equals(dbSmUserVO.getPkDepartment())){ //çé¢ä¼ éè¿æ¥çå·²å ³èçé¨é¨oid List<String> updatePkDept = Func.toStrList(smUserDTO.getPkDepartment(), ","); //ç¨æ·å·²å ³èçé¨é¨oid List<String> associatedPkDept = Func.toStrList(dbSmUserVO.getPkDepartment(), ","); //ç§»é¤ updatePkDept.removeAll(associatedPkDept); //æ§è¡ä¿åç¨æ·é¨é¨å ³èå ³ç³» orgDeptQueryService.saveUserDepts(dbSmUserVO.getOid(),updatePkDept); } return updateBoolean; } /** * æ£æ¥ç¨æ·ä¿¡æ¯æ¯å¦ç¬¦åè§è * @param smUserDTO * @param isAdd */ private void check(SmUserDTO smUserDTO, boolean isAdd){ if(!smUserDTO.getPassword().equals(smUserDTO.getConfirmPassword())){ throw new VciBaseException("å¯ç å确认å¯ç ä¸ç¸ç"); } if(smUserDTO.getId().getBytes().length > 128){ throw new VciBaseException("ç¨æ·åé¿åº¦è¶ è¿ä¸é"); } if(smUserDTO.getPassword().getBytes().length > 128){ throw new VciBaseException("å¯ç é¿åº¦è¶ è¿ä¸é"); } if(smUserDTO.getName().getBytes().length > 64){ throw new VciBaseException("å§åé¿åº¦è¶ è¿ä¸é"); } if (Func.isNotBlank(smUserDTO.getSpecialties()) && smUserDTO.getSpecialties().getBytes().length > 255){ throw new VciBaseException("ä¸ä¸é¿åº¦è¶ è¿ä¸é"); } if (Func.isNotBlank(smUserDTO.getEmail()) && smUserDTO.getEmail().getBytes().length > 128){ throw new VciBaseException("çµåé®ç®±é¿åº¦è¶ è¿ä¸é"); } if (Func.isNotBlank(smUserDTO.getDescription()) && smUserDTO.getDescription().getBytes().length > 255 ){ throw new VciBaseException("æè¿°é¿åº¦è¶ è¿ä¸é"); } if (!smUserDTO.getName().matches("^[A-Za-z0-9_]+$")) { throw new VciBaseException("ç¨æ·åå¿ é¡»æ¯ç±A-Z a-z 0-9 _ç»æ"); } if (Func.isNotBlank(smUserDTO.getEmail()) && !smUserDTO.getEmail().matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")){ throw new VciBaseException("çµåé®ç®±æ ¼å¼é误"); } //æ¯æ°å¢æåç¨æ·åæ¥éå¤ç if(isAdd){ //æ ¹æ®ç¨æ·åï¼è´¦å·ï¼æ¥é SmUserVO dbSmUserVO = getUserByUserId(smUserDTO.getId()); if(Func.isNotEmpty(dbSmUserVO) && Func.isNotBlank(dbSmUserVO.getOid())){ throw new VciBaseException("è¯¥ç¨æ·åå¨ç³»ç»ä¸å·²ç»åå¨,请修æ¹!"); } } //æ ¹æ®å½åå建è¿ä¸ªç¨æ·ç人æç»å®å¯ç çç¥æ¥è¿è¡å¯ç æ ¡éª try { //TODO:ä¸ºäºæ¹ä¾¿è°è¯ï¼æä»¥è¿å¿å 注éåæ»åé¢è®°å¾æ´æ¹ //String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserName(); String userName = "developer"; String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userName, smUserDTO.getPassword(),null); if (!StringUtils.isBlank(error)) { throw new VciBaseException("å½å设置çå¯ç ï¼å¯ç çç¥æ ¡éªæªéè¿"); } } catch (PLException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new VciBaseException("æ£æ¥å¯ç çç¥ç¬¦åæ åµå¤±è´¥ï¼2"); } } /*** * ç¨æ·ä»DTO对象å°corba对象 * @param user * @return */ public UserInfo changeUserObjectToUserInfo(SmUserDTO user) { UserInfo userInfo = new UserInfo(); BeanUtil.convert(smUserDTO,userInfo); return platformClientUtil.getFrameworkService().updateUser(userInfo, null); userInfo.id = user.getOid() == null ? "" : user.getOid(); userInfo.userName = user.getId() == null ? "" : user.getId(); userInfo.pwd = user.getPassword() == null ? "" : user.getPassword(); userInfo.trueName = user.getName() == null ? "" : user.getName(); userInfo.specialties = user.getSpecialties() == null ? "" : user.getSpecialties(); userInfo.email = user.getEmail() == null ? "" : user.getEmail(); userInfo.desc = user.getDescription() == null ? "" : user.getDescription(); userInfo.userType = user.getUserType(); userInfo.status = user.getStatus(); userInfo.createTime = user.getCreateTime().getTime(); userInfo.createUser = user.getCreator() == null ? "" : user.getCreator(); userInfo.updateTime = user.getLastModifyTime().getTime(); userInfo.updateUser = user.getLastModifier() == null ? "" : user.getLastModifier(); userInfo.pwdUpdateTime = user.getPwdUpdateTime().getTime(); userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor(); userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader(); return userInfo; } /*** @@ -1098,6 +1238,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean deleteUser(String[] ids) throws PLException { VciBaseUtil.alertNotNull(ids,"å¾ å é¤çç¨æ·idå表ä¸è½ä¸ºç©ºï¼"); return platformClientUtil.getFrameworkService().deleteUser(ids, null); @@ -1110,6 +1251,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean disableOrEnableUsers(String[] ids, boolean flag) throws PLException { VciBaseUtil.alertNotNull(ids,"åç¨/å¯ç¨çç¨æ·idå表"); return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/controller/SmUserQueryController.java
@@ -1,20 +1,15 @@ package com.vci.frameworkcore.controller; import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.frameworkcore.dto.SmUserDTO; import com.vci.frameworkcore.model.dto.SmUserDTO; import com.vci.frameworkcore.pagemodel.SmUserVO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.web.model.SmUserDO; import com.zeroc.IceInternal.Ex; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -23,7 +18,7 @@ * @author weidy * @date 2020/3/4 */ @Controller @RestController @RequestMapping("/userQueryController") @Slf4j public class SmUserQueryController { @@ -41,7 +36,6 @@ * @throws VciBaseException æ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ï¼å¦ææ¯èç项ç®é䏿åºå¼å¸¸ */ @RequestMapping(value = "/refDataGrid",method = RequestMethod.GET) @ResponseBody public BaseResult<SmUserVO> refDataGrid(BaseQueryObject queryObject) throws VciBaseException { //代ç ç¤ºä¾ if(queryObject == null){ @@ -60,7 +54,6 @@ * @throws VciBaseException æ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ï¼å¦ææ¯èç项ç®é䏿åºå¼å¸¸ */ @RequestMapping(value = "/refTree",method = RequestMethod.GET) @ResponseBody public BaseResult<Tree> refTree(TreeQueryObject treeQueryObject) throws VciBaseException{ List<Tree> userTreeList = userQueryService.refTreeUsers(treeQueryObject); return BaseResult.tree(userTreeList); @@ -76,7 +69,6 @@ * @throws VciBaseException é¨é¨ä¸»é®ä¸ºç©ºãæ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ï¼å¦ææ¯èç项ç®é䏿åºå¼å¸¸ */ @RequestMapping(value = "/refDataGridByPkDepartment",method = RequestMethod.GET) @ResponseBody public BaseResult<SmUserVO> refDataGridByPkDepartment(String pkDepartment,BaseQueryObject queryObject) throws VciBaseException{ if(queryObject == null){ queryObject = new BaseQueryObject(); @@ -95,7 +87,6 @@ * @throws VciBaseException è§è²ç主é®ä¸ºç©ºãæ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ï¼å¦ææ¯èç项ç®é䏿åºå¼å¸¸ */ @RequestMapping(value = "/refDataGridByPkRole",method = RequestMethod.GET) @ResponseBody public BaseResult<SmUserVO> refDataGridByPkRole(String pkRole,BaseQueryObject queryObject) throws VciBaseException{ if(queryObject == null){ queryObject = new BaseQueryObject(); @@ -113,20 +104,18 @@ * @param confirmPassword 确认å¯ç */ @RequestMapping(value = "/changePassword",method = RequestMethod.POST) @ResponseBody public BaseResult changePassword(String userOid, String password, String confirmPassword) { userQueryService.changePassword(userOid, password, confirmPassword); return BaseResult.success("ä¿®æ¹å¯ç æå"); } /** * ç¨æ·ç®¡çå表å页æ¥è¯¢ï¼å¹³å°æ¯ä¸æ¥plusertype=0çæåï¼ä¹å°±æ¯developeråadmin * ç¨æ·ç®¡çå表å页æ¥è¯¢ï¼å¹³å°æ¯ä¸æ¥plusertype=0çæåï¼ä¹å°±æ¯developeråadminä¹ç±»çè´¦å· * @param queryObject æ¥è¯¢å¯¹è±¡ï¼å å«äºæ¥è¯¢æ¡ä»¶ï¼åé¡µï¼æåºç,å³å 许使ç¨SmUserVOéçææå±æ§ä½ä¸ºæ¥è¯¢æ¡ä»¶ï¼ä¹å¯ä»¥ä½¿ç¨pkRole.xxxï¼pkDepartment.xxx,pkDuty.xxxè¿æ ·æ¥æ¥è¯¢ * @return å ¨é¨ç¨æ·æ¾ç¤ºå¯¹è±¡åè¡¨æ°æ®ï¼è¯·è·åå ¶ä¸çdata屿§ * @throws VciBaseException æ¥è¯¢åºéçæ¶å伿åºå¼å¸¸ï¼å¦ææ¯èç项ç®é䏿åºå¼å¸¸ */ @RequestMapping(value = "/getDataGridUsers",method = RequestMethod.GET) @ResponseBody @VciUnCheckRight public BaseResult<SmUserVO> getDataGridUsers(BaseQueryObject queryObject) throws VciBaseException { try { @@ -145,7 +134,6 @@ * @return */ @RequestMapping(value = "/addUser",method = RequestMethod.POST) @ResponseBody @VciUnCheckRight public BaseResult addUser(@RequestBody SmUserDTO smUserDTO){ try { @@ -163,7 +151,6 @@ * @return */ @RequestMapping(value = "/updateUser",method = RequestMethod.PUT) @ResponseBody @VciUnCheckRight public BaseResult updateUser(@RequestBody SmUserDTO smUserDTO){ try { @@ -181,7 +168,6 @@ * @return */ @RequestMapping(value = "/deleteUser",method = RequestMethod.DELETE) @ResponseBody //@VciUnCheckRight public BaseResult deleteUser(String[] ids){ try { @@ -200,7 +186,6 @@ * @return */ @RequestMapping(value = "/stopUsers",method = RequestMethod.POST) @ResponseBody //@VciUnCheckRight public BaseResult disableOrEnableUsers(String[] ids,boolean flag){ try { @@ -213,5 +198,20 @@ } } /** * ä¸è½½äººåå¯¼å ¥æ¨¡æ¿ */ @RequestMapping(value = "/downloadImportTemplate",method = RequestMethod.POST) public void downloadImportTemplate(){ } /** * 人åå¯¼å ¥ */ @RequestMapping(value = "/importUser",method = RequestMethod.POST) public void importUser(){ } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/model/SmPasswordStrategyDO.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/model/SmPasswordStrategyDO.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.vci.web.model; package com.vci.frameworkcore.model; import com.vci.starter.web.annotation.Column; import com.vci.starter.web.annotation.Transient; @@ -6,7 +6,6 @@ import com.vci.starter.web.annotation.VciFieldType; import com.vci.starter.web.constant.FrameWorkLcStatusConstant; import com.vci.starter.web.enumpck.VciFieldTypeEnum; import com.vci.starter.web.model.BaseModel; import java.util.Date; Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/model/SmUserDO.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/model/SmUserDO.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.vci.web.model; package com.vci.frameworkcore.model; import com.vci.starter.web.annotation.*; import com.vci.starter.web.constant.FrameWorkLcStatusConstant; @@ -100,6 +100,7 @@ name = "plcreateuser" ) private String creator; /** * å建æ¶é´ */ @@ -119,6 +120,7 @@ name = "plupdateuser" ) private String lastModifier; /** * æåä¿®æ¹æ¶é´ */ @@ -127,6 +129,14 @@ name = "plupdatetime" ) private Date lastModifyTime; /** * å¯ç æåä¿®æ¹æ¶é´ */ @Column( name = "plpwdupdatetime" ) public Date pwdUpdateTime; /** * æå±é¨é¨ @@ -151,6 +161,22 @@ */ @Transient(referColumn = "pkUserPassword.plpasswordstrategyuid") private String pkPasswordStrategy; /** * ä¸ä¸ */ @Column( name = "plspecialties" ) private String specialties; public void setSpecialties(String specialties) { this.specialties = specialties; } public String getSpecialties() { return specialties; } public String getOid() { return oid; @@ -304,6 +330,14 @@ this.pkPasswordStrategy = pkPasswordStrategy; } public void setPwdUpdateTime(Date pwdUpdateTime) { this.pwdUpdateTime = pwdUpdateTime; } public Date getPwdUpdateTime() { return pwdUpdateTime; } @Override public String toString() { return "SmUserDO{" + @@ -328,4 +362,5 @@ ", pkPasswordStrategy='" + pkPasswordStrategy + '\'' + '}'; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/model/dto/SmUserDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,545 @@ package com.vci.frameworkcore.model.dto; import com.vci.starter.web.model.BaseModel; import com.vci.starter.web.pagemodel.BaseModelVO; import java.util.Date; /** * ç¨æ·æ°æ®ä¼ è¾å¯¹è±¡ * @author ludc * @date 2024/6/25 17:33 */ public class SmUserDTO extends BaseModelVO { /** * ç¦æ¢ä¿®æ¹è¿ä¸ªå¼ */ private static final long serialVersionUID = -2239512786206928200L; /** * ç¨æ·å */ private String id; /** * ç¨æ·å§å */ private String name; /** * ç¨æ·ç±»å */ private short userType; /** * ç¨æ·ç±»åæ¾ç¤ºææ¬ */ private String userTypeText; /** * ç¨æ·å¯ç */ private String password; /** * 确认å¯ç */ private String confirmPassword; /** * æå±äººå */ private String pkPerson; /** * æå±äººååç§° */ private String pkPersonName; /** * å¤±ææ¥æ */ private Date disabledate; /** * é®ä»¶å°å */ private String email; /** * çµè¯ */ private String tel; /** * RTXèç³»å· */ private String rtxNo; /** * 宿¶éè®¯è½¯ä»¶è´¦å· */ private String IMNo; /** * æå±é¨é¨ */ private String pkDepartment; /** * æå±é¨é¨åç§° */ private String pkDepartmentName; /** * æ¯å¦é¨é¨é¢å¯¼ */ private String isDeptLeader; /** * æå±èå¡ */ private String pkDuty; /** * æå±èå¡åç§° */ private String pkDutyName; /** * æå±å¯ç å®å ¨çç¥ */ private String pkPasswordStrategy; /** * æå±å¯ç å®å ¨çç¥ */ private String pkPasswordStrategyName; /** * æåç»å½æ¶é´ */ private Date lastLoginTime; /** * å¯ç æåä¿®æ¹æ¶é´ */ public Date pwdUpdateTime; /** * å¯ç éè¯¯æ¬¡æ° */ private Integer pwdWrongCount; /** * æ§å« */ private String sex; /** * æ§å«æ¾ç¤ºåç§° */ private String sexText; /** * é»è®¤çè¯è¨ç¼ç */ private String langCode; /** * ç¨æ·ç¶æ */ private short status; /** * è¯è¨åç§° */ private String langCodeText; /** * æ¯å¦éå® */ private String lockFlag; /** * 头åæä»¶ä¸»é® */ private String photo; /** * æå±è§è² */ private String pkRole; /** * å·¥ç§ */ private String pkWorkType; /** * æå±å·¥ç§åç§° */ private String pkWorkTypeText; /** * å·¥å·(çå·) */ private String workNo; /** * 䏿 ¡éªå¯ç å®å ¨çç¥ */ private Boolean unCheckPasswordStrategy; /** * ä¸ä¸ */ private String specialties; /** * ææè */ private String grantor; public String getIsDeptLeader() { return isDeptLeader; } public void setIsDeptLeader(String isDeptLeader) { this.isDeptLeader = isDeptLeader; } public String getGrantor() { return grantor; } public void setGrantor(String grantor) { this.grantor = grantor; } public String getSpecialties() { return specialties; } public void setSpecialties(String specialties) { this.specialties = specialties; } public void setStatus(short status) { this.status = status; } public short getStatus() { return status; } public String getPkRole() { return pkRole; } public void setPkRole(String pkRole) { this.pkRole = pkRole; } @Override public String getId() { return id; } @Override public void setId(String id) { this.id = id; } @Override public String getName() { return name; } @Override public void setName(String name) { this.name = name; } public short getUserType() { return userType; } public void setUserType(short userType) { this.userType = userType; } public String getUserTypeText() { return userTypeText; } public void setUserTypeText(String userTypeText) { this.userTypeText = userTypeText; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getPkPerson() { return pkPerson; } public void setPkPerson(String pkPerson) { this.pkPerson = pkPerson; } public String getPkPersonName() { return pkPersonName; } public void setPkPersonName(String pkPersonName) { this.pkPersonName = pkPersonName; } public Date getDisabledate() { return disabledate; } public void setDisabledate(Date disabledate) { this.disabledate = disabledate; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getRtxNo() { return rtxNo; } public void setRtxNo(String rtxNo) { this.rtxNo = rtxNo; } public String getIMNo() { return IMNo; } public void setIMNo(String IMNo) { this.IMNo = IMNo; } public String getPkDepartment() { return pkDepartment; } public void setPkDepartment(String pkDepartment) { this.pkDepartment = pkDepartment; } public String getPkDepartmentName() { return pkDepartmentName; } public void setPkDepartmentName(String pkDepartmentName) { this.pkDepartmentName = pkDepartmentName; } public String getPkDuty() { return pkDuty; } public void setPkDuty(String pkDuty) { this.pkDuty = pkDuty; } public String getPkDutyName() { return pkDutyName; } public void setPkDutyName(String pkDutyName) { this.pkDutyName = pkDutyName; } public String getPkPasswordStrategy() { return pkPasswordStrategy; } public void setPkPasswordStrategy(String pkPasswordStrategy) { this.pkPasswordStrategy = pkPasswordStrategy; } public String getPkPasswordStrategyName() { return pkPasswordStrategyName; } public void setPkPasswordStrategyName(String pkPasswordStrategyName) { this.pkPasswordStrategyName = pkPasswordStrategyName; } public Date getLastLoginTime() { return lastLoginTime; } public void setLastLoginTime(Date lastLoginTime) { this.lastLoginTime = lastLoginTime; } public Date getPwdUpdateTime() { return pwdUpdateTime; } public void setPwdUpdateTime(Date pwdUpdateTime) { this.pwdUpdateTime = pwdUpdateTime; } public Integer getPwdWrongCount() { return pwdWrongCount; } public void setPwdWrongCount(Integer pwdWrongCount) { this.pwdWrongCount = pwdWrongCount; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getSexText() { return sexText; } public void setSexText(String sexText) { this.sexText = sexText; } public String getLangCode() { return langCode; } public void setLangCode(String langCode) { this.langCode = langCode; } public String getLangCodeText() { return langCodeText; } public void setLangCodeText(String langCodeText) { this.langCodeText = langCodeText; } public String getLockFlag() { return lockFlag; } public void setLockFlag(String lockFlag) { this.lockFlag = lockFlag; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } public String getPkWorkType() { return pkWorkType; } public void setPkWorkType(String pkWorkType) { this.pkWorkType = pkWorkType; } public String getPkWorkTypeText() { return pkWorkTypeText; } public void setPkWorkTypeText(String pkWorkTypeText) { this.pkWorkTypeText = pkWorkTypeText; } public String getWorkNo() { return workNo; } public void setWorkNo(String workNo) { this.workNo = workNo; } public String getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } public Boolean getUnCheckPasswordStrategy() { return unCheckPasswordStrategy; } public void setUnCheckPasswordStrategy(Boolean unCheckPasswordStrategy) { this.unCheckPasswordStrategy = unCheckPasswordStrategy; } @Override public String toString() { return "SmUserDTO{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", userType='" + userType + '\'' + ", userTypeText='" + userTypeText + '\'' + ", password='" + password + '\'' + ", confirmPassword='" + confirmPassword + '\'' + ", pkPerson='" + pkPerson + '\'' + ", pkPersonName='" + pkPersonName + '\'' + ", disabledate=" + disabledate + ", email='" + email + '\'' + ", tel='" + tel + '\'' + ", rtxNo='" + rtxNo + '\'' + ", IMNo='" + IMNo + '\'' + ", pkDepartment='" + pkDepartment + '\'' + ", pkDepartmentName='" + pkDepartmentName + '\'' + ", pkDuty='" + pkDuty + '\'' + ", pkDutyName='" + pkDutyName + '\'' + ", pkPasswordStrategy='" + pkPasswordStrategy + '\'' + ", pkPasswordStrategyName='" + pkPasswordStrategyName + '\'' + ", lastLoginTime=" + lastLoginTime + ", pwdUpdateTime=" + pwdUpdateTime + ", pwdWrongCount=" + pwdWrongCount + ", sex='" + sex + '\'' + ", sexText='" + sexText + '\'' + ", langCode='" + langCode + '\'' + ", langCodeText='" + langCodeText + '\'' + ", lockFlag='" + lockFlag + '\'' + ", photo='" + photo + '\'' + ", pkRole='" + pkRole + '\'' + ", pkWorkType='" + pkWorkType + '\'' + ", pkWorkTypeText='" + pkWorkTypeText + '\'' + ", workNo='" + workNo + '\'' + ", unCheckPasswordStrategy=" + unCheckPasswordStrategy + ", specialties='" + specialties + '\'' + '}'; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/config/TomcatConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.vci.web.config; import org.apache.catalina.connector.Connector; import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * Tomcat-9.xçé«çæ¬ä¼æ¦æªä¸äºç¹æ®åç¬¦ï¼æä»¥è¿å¿åé ç½®å¤ç * @author ludc * @date 2024/6/26 11:20 */ @Configuration public class TomcatConfig { /** * \"<>[\\]^`{|}è¿äºç¬¦å·ï¼å¤ç * @return */ @Bean public TomcatServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addConnectorCustomizers((Connector connector) -> { connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); }); return factory; } }