From b73a1b5eb0c4a974cb5b16ccddb582f60347707c Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 22 十月 2024 21:53:17 +0800
Subject: [PATCH] 日志查询接口修改,支持管理员和普通用户分开查询。
---
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java | 3 +
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java | 2
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java | 10 ++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java | 26 ++++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java | 1
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 4
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java | 9 +++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 38 +++++++++---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java | 28 +++++++++
9 files changed, 103 insertions(+), 18 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java
index 75c25b0..8cf4b06 100644
--- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/ClonePortalVIDTOList.java
@@ -1,7 +1,10 @@
package com.vci.dto;
+import lombok.Data;
+
import java.util.List;
+@Data
public class ClonePortalVIDTOList implements java.io.Serializable{
private List<ClonePortalVIDTO> clonePortalVIDTOList;
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java
index 1e26832..18019d0 100644
--- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java
+++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
/**
* 鏃ュ織鏌ヨ浼犺緭瀵硅薄
@@ -33,4 +34,12 @@
int pageNo;
//椤甸潰鏉℃暟
int pageSize;
+ //鏌ヨ绫诲瀷(绠$悊鍛樻棩蹇楋紝鏅�氭棩蹇�)
+ String roleType;
+
+ /**
+ * 鏍圭粷roleType鏌ヨ鍑烘潵鐨勭敤鎴峰悕锛屽悗缁牴鎹繖涓弬鏁版煡璇㈡寚瀹氱殑鏃ュ織
+ */
+ private List<String> userNameList;
+
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
index 38889a2..576e2b5 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmUserQueryServiceI.java
@@ -160,14 +160,13 @@
*/
List<Tree> refTreeUsers(TreeQueryObject treeQueryObject) throws VciBaseException;
- /***
+ /**
* 浜哄憳鏉冮檺閫夋嫨鏍�
* @param treeQueryObject
* @return
* @throws VciBaseException
*/
List<Tree> refPersonOrgTree(TreeQueryObject treeQueryObject) throws VciBaseException;
-
/**
* 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5
@@ -265,4 +264,11 @@
*/
BaseResult importUser(File file) throws Exception;
+ /**
+ * 鏍规嵁瑙掕壊绫诲瀷鏌ヨ鐢ㄦ埛鍚�
+ * @param roleType
+ * @return
+ */
+ List<String> queryUserNameByRoleType(String roleType) throws PLException;
+
}
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..f2ba751 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
@@ -975,7 +975,7 @@
return rootTreeList;
}
- /***
+ /**
*
* @param dataType
* @param orgType
@@ -1094,7 +1094,7 @@
}
}
- /***
+ /**
*
* @param oid
* @param text
@@ -1112,6 +1112,7 @@
}
return ObjectTreeNode;
}
+
/**
* 鏍¢獙瀵嗙爜鏄惁鐩稿悓锛屽湪鏂板钩鍙颁腑瀛樺偍鐨勫瘑鐮佹槸涓ゆmd5
* @param userOid 鐢ㄦ埛涓婚敭
@@ -1634,4 +1635,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;
+ }
+
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java
index 0e30296..e35e925 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java
@@ -88,6 +88,7 @@
throw new VciBaseException(errorMsg);
}
}
+
/**
* 鏌ヨ鏃ュ織
* @param dto 鏌ヨ鏉′欢浼犺緭瀵硅薄
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
index 6471de0..3eafa45 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -142,7 +142,7 @@
return portalVIServiceI.clone(portalVIDTOList) ? BaseResult.success("鍏嬮殕鎴愬姛锛�"):BaseResult.fail("鍏嬮殕澶辫触锛�");
} catch (Throwable e) {
e.printStackTrace();
- String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ String exceptionMessage = "鍏嬮殕琛ㄥ崟/琛ㄦ牸鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
logger.error(exceptionMessage);
return BaseResult.fail(exceptionMessage);
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
index 2392826..bc75fa7 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java
@@ -9,6 +9,7 @@
import com.vci.dto.LogInfoDTO;
import com.vci.dto.LogPeriodInfoDTO;
import com.vci.dto.LogQueryCriteriaDTO;
+import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.web.service.*;
import com.vci.web.util.*;
@@ -41,6 +42,10 @@
*/
@Autowired
private PlatformClientUtil platformClientUtil;
+
+ @Autowired
+ private SmUserQueryServiceI userQueryServiceI;
+
public static final String UTF8_BOM="\uFEFF";
private final String LOG_SAVE_PERIOD = "logSavePeriod";//鏃ュ織淇濆瓨鏈熼檺
@@ -131,8 +136,11 @@
*/
@Override
public BaseResult getLogListByContion(LogQueryCriteriaDTO queryDto) throws PLException {
+ List<String> userNameList = userQueryServiceI.queryUserNameByRoleType(queryDto.getRoleType());
+ queryDto.setUserNameList(userNameList);
String querySql = getSQL(queryDto);
LogInfo[] logInfos = platformClientUtil.getLogService().getLogListByContion(queryDto.getPageNo(),queryDto.getPageSize(),querySql);
+
List<LogInfoDTO> dtos = new ArrayList<>();
for (LogInfo logInfo : logInfos) {
LogInfoDTO dto = new LogInfoDTO();
@@ -160,6 +168,7 @@
result.setTotal(sumLogRows);
return result;
}
+
/**
* 鎿嶄綔鐢ㄦ埛鑾峰彇
*/
@@ -233,13 +242,14 @@
}
return userNames;
}
+
/**
* 鑾峰彇鏌ヨ鏉′欢骞舵嫾鎴怱QL锛屽彧鎷紈here瀛愬彞鍚庨潰鐨凷QL
* @return
*/
public String getSQL(LogQueryCriteriaDTO dto) throws PLException {
StringBuffer sql = new StringBuffer("");
-// int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
+ // int period = getPeriod(LOG_SAVE_PERIOD);//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
int period = platformClientUtil.getLogService().getCurPeriod();;//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅
//涓嬮潰鏄嫾鍑篠QL
if(period != 0){
@@ -274,6 +284,21 @@
}
sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.General) + "')");
}
+ if(Func.isNotEmpty(dto.getUserNameList())){
+ if(!sql.toString().equals("")){
+ sql.append(" and ");
+ }
+ if(dto.getUserNameList().size()<=1){
+ sql.append(" PLUSER = '").append(dto.getUserNameList().get(0).trim()).append("'");
+ }else{
+ sql.append(" PLUSER in (");
+ String inWhere = dto.getUserNameList().stream()
+ .map(item -> "'" + item + "'")
+ .collect(Collectors.joining(","));
+ sql.append(inWhere).append(")");
+ }
+ }
+
if(StringUtils.isNotBlank(dto.getUserName())){//鎿嶄綔鐢ㄦ埛
if(!dto.getUserName().trim().equals("")){//濡傛灉鐢ㄦ埛鍚嶄负绌烘牸鍒欎笉鍔犵敤鎴锋潯浠�
if(!sql.toString().equals("")){
@@ -320,6 +345,7 @@
}
return sql.toString();
}
+
protected String getLogTypeString(LogType logType){
String res = "";
if(logType == LogType.Login) {
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
index aed9228..f7d0e7b 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -248,7 +248,7 @@
*/
@Override
public boolean clone(ClonePortalVIDTOList clonePortalVIDTOList) throws VciBaseException {
- if(clonePortalVIDTOList==null||CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){
+ if(clonePortalVIDTOList == null || CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){
throw new VciBaseException("璇烽�夋嫨瑕佸厠闅嗙殑瀵硅薄!");
}
try {
@@ -883,7 +883,7 @@
portalVIVO.setViType(portalVI.viType);
portalVIVO.setViTypeText(PortalVIType.getByIntVal(portalVI.viType).getLabel());
- String prm= portalVI.prm;
+ String prm = portalVI.prm;
if(StringUtils.isNotBlank(prm)) {
PRMDO prmdo = UITools.getPRM(prm);
portalVIVO.setPrm(prmDOO2VOS(prmdo, portalVI.viType));
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
index 3f4e4fe..c59c90b 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -1776,18 +1776,20 @@
treeQueryObject.setConditionMap(conditionMap);
List<Tree> treeList = this.getUIAuthor(treeQueryObject);
HashMap<String,Tree> allTreeMap = new HashMap<>();
- Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>();
+ //Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>();
if(!CollectionUtil.isEmpty(treeList)){
- if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){
+ /*if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){
String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName);
List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVOO2DTO(roleRightVO),(oldValue,newValue)->oldValue));
- }
+ }*/
+
convertTreeDOO2Map(treeList,allTreeMap);
List<RoleRightDTO> roleRightDTOList = new ArrayList<>();
List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList();
- getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList);
+ List<Tree> selectTreeList2 = this.authTreeListConvert(selectTreeList);
+ getSelectedRoleRightObjs_old(uiAuthorDTO.getRoleId(),selectTreeList2,allTreeMap,roleRightDTOList);
SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
String currentUserName = sessionInfo.getUserId();
//boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName);
@@ -1805,14 +1807,30 @@
}
/**
+ * 鑾峰彇绛涢�夊悗鐨勬暟鎹�
+ * @param selectTreeList
+ */
+ private List<Tree> authTreeListConvert(List<Tree> selectTreeList){
+
+ // 鍒涘缓涓�涓寘鍚彟涓�涓泦鍚堜腑婊¤冻鏉′欢鐨� oid 鐨勯泦鍚�
+ List<String> validOids = selectTreeList.stream()
+ .filter(Tree::isChecked) // checked 涓� true
+ .map(Tree::getOid) // 鎻愬彇 oid
+ .collect(Collectors.toList());
+
+ return selectTreeList.stream()
+ .filter(tree -> tree.isChecked() && !validOids.contains(tree.getParentId())) // 杩囨护鏉′欢
+ .collect(Collectors.toList());
+ }
+
+ /**
*鏍规嵁鏉冮檺璁$畻涓婁笅鏉冮檺
* @param roleOid
* @param selectTreeList
* @param allTreeMap
* @param roleRightDTOList
*/
- private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){
- //Date date=new Date();
+ private void getSelectedRoleRightObjs_old(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){
Map<String,RoleRightDTO> roleRightDTOMap = new HashMap<>();
if(!CollectionUtil.isEmpty(selectTreeList)){
selectTreeList.stream().forEach(tree -> {
@@ -1844,7 +1862,7 @@
}else{
roleRightDTO.setRightType((short) 2);
}
- roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0
+ roleRightDTO.setRightValue(countRightValue(parentNode,false));// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0
roleRightDTO.setRoleId(roleOid);//瑙掕壊ID
roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰�
roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//鍒涘缓鏃堕棿
@@ -1994,10 +2012,10 @@
*/
private long countRightValue(Tree node,boolean isAll){
long value = 0;
- for(int i = 0;i < node.getChildren().size();i++){
+ for(int i = 0; i < node.getChildren().size(); i++){
Tree childNode = (Tree)node.getChildren().get(i);
- if(isAll && node.getData() instanceof PLTabButton ){
- PLTabButton obj = (PLTabButton)node.getData();
+ if(isAll || node.getData() instanceof PLTabButton ){
+ PLTabButton obj = (PLTabButton)childNode.getData();
value += (long)Math.pow(2, obj.plSeq);//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬��
}
}
--
Gitblit v1.9.3