From e937d0111a52e2c13c50bbc3386d20a12d125899 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 10:54:54 +0800
Subject: [PATCH] 链接类型查询模板
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 123 +++++++++++++++++++++++++++-------------
1 files changed, 83 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 9930d7f..6a52208 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,5 +1,6 @@
package com.vci.frameworkcore.compatibility.impl;
+import com.vci.dto.SmUserDTO;
import com.vci.common.util.ThreeDES;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
@@ -9,14 +10,13 @@
import com.vci.frameworkcore.compatibility.SmPwdStrategyQueryServiceI;
import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
-import com.vci.frameworkcore.model.dto.SmUserDTO;
-import com.vci.frameworkcore.model.SmUserDO;
-import com.vci.frameworkcore.model.po.SmUserPO;
-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.frameworkcore.properties.ConfigReader;
+import com.vci.model.SmUserDO;
+import com.vci.pagemodel.SmUserVO;
+import com.vci.po.SmUserPO;
+import com.vci.pagemodel.OrgDepartmentVO;
+import com.vci.pagemodel.SmPasswordStrategyVO;
+import com.vci.pagemodel.SmRoleVO;
+import com.vci.frameworkcore.properties.ConfigCorbaReader;
import com.vci.omd.utils.ObjectTool;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -30,7 +30,6 @@
import com.vci.starter.web.util.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.UserTypeEnum;
-import com.vci.web.model.WFProcessClassifyDO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.web.util.PlatformClientUtil;
@@ -118,12 +117,12 @@
/**
* 蹇呭~鍒�
*/
- private ArrayList<Integer> ColumnNameisRed = new ArrayList<Integer>();
+ private List<Integer> ColumnNameisRed = new ArrayList<Integer>();
/**
* 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栭儴闂ㄦ斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇�
*/
- private Map<String,List<OrgDepartmentVO>> orgDepartmentVOMap;
+ private Map<String,Map<String,String>> orgDepartmentVOMap;
/**
* 鐢ㄦ埛鍒嗛〉鏌ヨ鏃惰幏鍙栬鑹叉斁鍒拌繖閲岄伩鍏嶉噸澶嶆煡璇�
@@ -184,7 +183,7 @@
* @return 鐢ㄦ埛鐨勪俊鎭�
* @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
*/
- private SmUserVO getUserByField(String queryField,String queryValue) throws VciBaseException{
+ private SmUserVO getUserByField(String queryField, String queryValue) throws VciBaseException{
VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(null, SmUserDO.class,null,true);
queryWrapper.eq(queryWrapper.getTableNick() + "." +queryField,queryValue);
queryWrapper.setDistinct(true);
@@ -323,21 +322,19 @@
smUserVO.setPassword(userInfo.pwd);
smUserVO.setConfirmPassword(userInfo.pwd);
//鐢ㄦ埛鎵�灞為儴闂ㄧ殑鏌ヨ璁剧疆
- List<OrgDepartmentVO> orgDepartmentVOList;
+ Map<String,String> orgDepartmentVOList;
//鏌ョ湅鍏ㄥ眬鍙橀噺涓槸鍚﹀瓨鍦ㄩ儴闂ㄤ俊鎭紝瀛樺湪鐨勬儏鍐垫渶涓昏鏄拡瀵瑰鏉$敤鎴锋煡璇㈢殑鏃跺�欓伩鍏嶉噸澶嶆煡璇㈢殑
if(Func.isNotEmpty(orgDepartmentVOMap)){
- orgDepartmentVOList = orgDepartmentVOMap.get(userInfo.id);
+ orgDepartmentVOList = Func.isNotEmpty(orgDepartmentVOMap.get(userInfo.id)) ?
+ orgDepartmentVOMap.get(userInfo.id):new HashMap<>();
}else {
- orgDepartmentVOList = orgDeptQueryService.listDeptByUserOid(userInfo.id,null);
+ Map<String, Map<String, String>> tempDeptMap = orgDeptQueryService.batchMapDeptNameByUserOids(Arrays.asList(userInfo.id), null);
+ orgDepartmentVOList = Func.isNotEmpty(tempDeptMap.get(userInfo.id)) ?
+ tempDeptMap.get(userInfo.id):new HashMap<>();
}
- 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(","))
- );
+ //閮ㄩ棬oid锛屾甯告儏鍐典笅涓�涓敤鎴峰彧浼氬瓨鍦ㄤ竴涓儴闂ㄤ笅
+ smUserVO.setPkDepartment(orgDepartmentVOList.keySet().stream().collect(Collectors.joining(",")));
+ smUserVO.setPkDepartmentName(orgDepartmentVOList.values().stream().collect(Collectors.joining(",")));
//瀵嗙爜绛栫暐鏌ヨ璁剧疆
SmPasswordStrategyVO smPasswordStrategyVO;
if(Func.isNotEmpty(smPwdStrategyVOMap)){
@@ -536,7 +533,7 @@
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);
+ orgDepartmentVOMap = orgDeptQueryService.batchMapDeptNameByUserOids(idList, null);
smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(idList,null);
smPwdStrategyVOMap = smPwdStrategyQueryService.batchSmPwdStrategyByUserOids(idList);
dataGrid.setData(userInfoArr2VO(userInfos));
@@ -607,10 +604,27 @@
@Override
public List<SmUserVO> countSmUserByDeptOid(String deptOid, Map<String, String> queryMap) throws VciBaseException {
//鏄惁鏌ヨ瀛愰儴闂ㄤ笅鍏宠仈鐨勭敤鎴�
- List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.listChildrenDeptByParentOid(deptOid, null);
+ List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.listAllLevelChildrenDeptByParentOid(deptOid, null);
List<String> deptOidCollection = orgDepartmentVOList.stream().map(OrgDepartmentVO::getOid).collect(Collectors.toList());
deptOidCollection.add(deptOid);//灏嗗綋鍓嶅眰鐨刼id涔熸斁杩涘幓
- return listUserVOByDeptOid(queryMap,deptOidCollection,false);
+ List<SmUserVO> smUserVOList = listUserVOByDeptOid(queryMap, deptOidCollection, false);
+ if(Func.isEmpty(smUserVOList)){
+ return new ArrayList<>();
+ }
+ Map<String, List<SmRoleVO>> smRoleVOMap = smRoleQueryService.batchListRoleByUserOids(smUserVOList.stream().map(SmUserVO::getOid).collect(Collectors.toSet()), null);
+ smUserVOList = smUserVOList.stream().map(vo->{
+ List<SmRoleVO> smRoleVOS = smRoleVOMap.get(vo.getOid());
+ vo.setPkPerson(
+ Func.isEmpty(smRoleVOS) ?
+ null:smRoleVOS.stream().map(SmRoleVO::getOid).collect(Collectors.joining(","))
+ );
+ vo.setPkPersonName(
+ Func.isEmpty(smRoleVOS) ?
+ null:smRoleVOS.stream().map(SmRoleVO::getName).collect(Collectors.joining(","))
+ );
+ return vo;
+ }).collect(Collectors.toList());
+ return smUserVOList;
}
/**
@@ -672,6 +686,7 @@
queryWrapperForDO.setLinkTableSql(" left join pluserdept up on " + queryWrapperForDO.getTableNick() + ".pluid = up.pluseruid" +
" left join pldept pkDepartment on up.pldeptuid = pkDepartment.pluid " +
" left join PLUSERPASSWORDSTRATEGY pkUserPassword on " +queryWrapperForDO.getTableNick() + ".pluid = pkUserPassword.pluseruid ");
+ queryWrapperForDO.setOrderSql("order by " + queryWrapperForDO.getTableNick() + ".pltrueName");
List<SmUserDO> smUserDOList = new ArrayList<>();
//userOidList涓虹┖鏃剁殑涓ょ鎯呭喌
if(Func.isEmpty(userOidList)){
@@ -1006,23 +1021,52 @@
/**
* 淇敼瀵嗙爜
* @param userOid 鐢ㄦ埛涓婚敭
+ * @param oldPassword 鏃х殑瀵嗙爜
* @param password 鏂扮殑瀵嗙爜
* @param confirmPassword 纭瀵嗙爜
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public void changePassword(String userOid, String password,
- String confirmPassword) throws VciBaseException {
- WebUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜");
+ public boolean changePassword(String userOid,String oldPassword, String password,
+ String confirmPassword) throws Exception {
+ WebUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭",oldPassword,"鐧诲綍瀵嗙爜",password,"瀵嗙爜",confirmPassword,"纭瀵嗙爜");
if(!password.equals(confirmPassword)){
throw new VciBaseException("瀵嗙爜鍜岀‘璁ゅ瘑鐮佷笉鐩哥瓑");
}
+ //瀵规棫瀵嗙爜鍜屽瘑鐮佽繘琛岃В瀵嗭紝渚夸簬姣斿瀵嗙爜鐢�
+ oldPassword = Func.decryptAes(oldPassword,"daliantan0v0vcip");
+ password = Func.decryptAes(password,"daliantan0v0vcip");
+ //瀵规瘮鏃у瘑鐮�
+ boolean b = this.checkPasswordEqual(oldPassword, userOid);
+ if(!b){
+ throw new PLException("500", new String[] { "鎮ㄨ緭鍏ョ殑瀵嗙爜涓庣櫥褰曞瘑鐮佷笉涓�鑷�,璇烽噸鏂拌緭鍏�!"});
+ }
+ SmUserVO smUserVO = getUserByUserOid(userOid);
+ if(Func.isEmpty(smUserVO)){
+ throw new VciBaseException("褰撳墠淇敼鐨勭敤鎴蜂笉瀛樺湪锛�");
+ }
+ //TODO:鏍¢獙瀵嗙爜鏄惁绗﹀悎绛栫暐
+ String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(smUserVO.getId(), 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 + "' where pluid = '" + userOid.trim() + "'";
+ //淇敼瀵嗙爜鐨勫悓鏃堕渶瑕佸皢瀵嗙爜淇敼鏃堕棿涔熸洿鏂�
+ 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 {
- platformClientUtil.getBOFactoryService().executeUpdateSql(sql);
+ return platformClientUtil.getBOFactoryService().executeUpdateSql(sql);
} catch (PLException vciError) {
throw WebUtil.getVciBaseException(vciError);
}
@@ -1198,10 +1242,8 @@
}
//鏍规嵁褰撳墠鍒涘缓杩欎釜鐢ㄦ埛鐨勪汉鎵�缁戝畾瀵嗙爜绛栫暐鏉ヨ繘琛屽瘑鐮佹牎楠�
try {
- //TODO:涓轰簡鏂逛究璋冭瘯锛屾墍浠ヨ繖鍎垮厛娉ㄩ噴鍐欐鍚庨潰璁板緱鏇存敼
- String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
- //String userName = "developer";
- String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userName, smUserDTO.getPassword(),null);
+ String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
+ String error = platformClientUtil.getFrameworkService().checkPasswordStrategyByUserId(userId, smUserDTO.getPassword(),null);
if (!StringUtils.isBlank(error)) {
throw new VciBaseException("褰撳墠璁剧疆鐨勫瘑鐮侊紝瀵嗙爜绛栫暐鏍¢獙鏈�氳繃");
}
@@ -1280,7 +1322,7 @@
// 璁剧疆琛ㄥ崟鍒楀悕
List<String> columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))"));
//鑾峰彇鏄惁瀵煎嚭瀵嗙骇閰嶇疆椤�
- String flag = ConfigReader.getConfigValue("exportSecretGrade");
+ String flag = ConfigCorbaReader.getConfigValue("exportSecretGrade");
if (flag != null && flag.equalsIgnoreCase("true")) {
columns = new ArrayList<>(Arrays.asList("璐﹀彿", "瀵嗙爜", "濮撳悕", "鐢靛瓙閭", "涓撲笟", "鎻忚堪", "閮ㄩ棬(涓婁笅绾ч儴闂ㄤ箣闂翠互鍙嶆枩鏉犻殧寮�(/))" ,"瀵嗙骇"));
}
@@ -1320,7 +1362,7 @@
* @throws VciBaseException
*/
@Override
- public BaseResult importUser(File file) throws VciBaseException {
+ public BaseResult importUser(File file) throws Exception {
VciBaseUtil.alertNotNull(file,"excel鏂囦欢");
if(!file.exists()){
throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()});
@@ -1330,10 +1372,9 @@
ReadExcelOption excelOption = new ReadExcelOption();
//褰撳墠鐧诲綍鐨勭敤鎴疯处鍙�
String loginUserId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
- //String loginUserId = "developer";
UserEntityInfo userEntityInfo = new UserEntityInfo(loginUserId,null);
//鏄惁瀵煎叆瀵嗙骇閰嶇疆
- boolean exportSecretGrade = Boolean.parseBoolean(ConfigReader.getConfigValue("exportSecretGrade"));
+ boolean exportSecretGrade = Boolean.parseBoolean(ConfigCorbaReader.getConfigValue("exportSecretGrade"));
List<SmUserPO> poList = ExcelUtil.readDataObjectFromExcel(file, SmUserPO.class,excelOption,(value, po, fieldName)->{
Integer secretValue = UserSecretEnum.getSecretValueByText(po.getSecretGradeText());
//鏄惁蹇呴』瀵煎叆瀵嗙骇
@@ -1357,7 +1398,9 @@
//褰撳墠excel涓槸鍚﹂噸澶嶇敤鐨勫垽閲峂ap:锛坘ey锛氳处鍙凤紝value锛氳鍙凤級
Map<String, String> excelReapeat = new HashMap<>();
//鍏堣幏鍙栧叏閮ㄩ儴闂ㄥ悕绉扮殑鐖跺瓙瀵瑰簲鍏崇郴锛歬ey涓洪儴闂ㄥ瓙鐖剁骇鍚嶇О璺緞锛寁alue涓洪儴闂ㄤ俊鎭�
- Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap();
+ List<OrgDepartmentVO> orgDepartmentVOList = orgDeptQueryService.getDeptAllFullName();
+ Map<String, OrgDepartmentVO> deptVOMap = orgDepartmentVOList.stream().collect(Collectors.toMap(OrgDepartmentVO::getFullDeptNamePath, s->s));
+ //Map<String,OrgDepartmentVO> deptVOMap = orgDeptQueryService.getDeptAllTreeMap();
//鍒ゆ柇蹇呭~灞炴�ф槸鍚︿负绌猴紝鐢ㄦ埛鏄惁宸插瓨鍦紝浠ュ強閮ㄩ棬鏄惁濉敊绛夋牎楠岄�昏緫
List<String> finalRepeatUserId = repeatUserId;
poList.stream().forEach(smUserPO -> {
--
Gitblit v1.9.3