From 2af4ec653879425abc5873febae74b7bbf9a07e0 Mon Sep 17 00:00:00 2001 From: yuxc <yuxc@vci-tech.com> Date: 星期五, 20 九月 2024 16:13:10 +0800 Subject: [PATCH] 1、新增日期保存期限接口。 2、新增保存期限设置接口。 3、新增删除日志接口。 4、新增日志查询接口。 5、新增获取操作用户接口。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PlatformClientUtil.java | 2 Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/ice.properties | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java | 127 ++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java | 1 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LogBasicServiceI.java | 42 +++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogPeriodInfoDTO.java | 26 ++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java | 36 +++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogInfoDTO.java | 34 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java | 390 ++++++++++++++++++++++++++++++++ 9 files changed, 659 insertions(+), 2 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogInfoDTO.java new file mode 100644 index 0000000..7b432ad --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogInfoDTO.java @@ -0,0 +1,34 @@ +package com.vci.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 鏃ュ織浼犺緭瀵硅薄 + * @author yuxc + * @date 2024-09-18 + */ +@Data +public class LogInfoDTO implements Serializable { + + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + private String puid; + private String username; + private String truename; + private String userIp; + private String result; + private String content; + private String date; + private String type; + private String moduleName; + private String entityDesc; + private String property; + private String previousVal; + private String newVal; + private String logType; +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogPeriodInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogPeriodInfoDTO.java new file mode 100644 index 0000000..606e6a5 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogPeriodInfoDTO.java @@ -0,0 +1,26 @@ +package com.vci.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 淇濆瓨鏈熼檺浼犺緭瀵硅薄 + * @author yuxc + * @date 2024-09-11 + */ +@Data +public class LogPeriodInfoDTO implements Serializable { + + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + //缂栫爜 + public String code; + //鍊� + public String value; + //鏄惁閫変腑 + public boolean choose; +} 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 new file mode 100644 index 0000000..1e26832 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/LogQueryCriteriaDTO.java @@ -0,0 +1,36 @@ +package com.vci.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 鏃ュ織鏌ヨ浼犺緭瀵硅薄 + * @author yuxc + * @date 2024-09-18 + */ +@Data +public class LogQueryCriteriaDTO implements Serializable { + + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 2492852474710986720L; + //寮�濮嬫椂闂� + private String startDate; + //缁撴潫鏃ユ湡 + private String endDate; + //鏃ュ織绫诲瀷锛�1锛氱櫥褰曪紱2锛氱櫥鍑猴紱3锛氭巿鏉冿紱4锛氫竴鑸搷浣滐紱5锛氶泦鎴愬簲鐢� + int logType; + //鐢ㄦ埛IP + String ipText; + //鎿嶄綔鐢ㄦ埛 + String userName; + //鎿嶄綔绫诲瀷 + String typeText; + //椤电爜 + int pageNo; + //椤甸潰鏉℃暟 + int pageSize; +} 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 new file mode 100644 index 0000000..f16e2fc --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LogBasicController.java @@ -0,0 +1,127 @@ +package com.vci.web.controller; +import com.vci.corba.common.PLException; +import com.vci.dto.LogQueryCriteriaDTO; +import com.vci.starter.web.annotation.log.VciBusinessLog; +import com.vci.starter.web.exception.VciBaseException; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.web.service.LogBasicServiceI; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +/** + * 骞冲彴鏃ュ織鎺у埗鍣� + * @author yuxc + * @date 2024-9-11 + */ +@Controller +@RequestMapping("/loginBasicController") +@VciBusinessLog(modelName="鏃ュ織鏈嶅姟") +public class LogBasicController { + + /** + * 鐧诲綍鏈嶅姟 + */ + @Autowired + private LogBasicServiceI logBasicServiceI; + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 鑾峰彇鏃ユ湡淇濆瓨鏈熼檺涓嬫媺鍒楄〃妗� + * @return 鏌ヨ缁撴灉 + */ + @VciBusinessLog(operateName="鏃ユ湡淇濆瓨鏈熼檺") + @GetMapping(value = "/getPeroid") + @ResponseBody + public BaseResult getPeroid(){ + try { + return logBasicServiceI.getPeroid(); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** + * 淇濆瓨鏈熼檺璁剧疆 + * period 鏈熼檺缂栫爜 + * @return 淇濆瓨缁撴灉 + */ + @VciBusinessLog(operateName="淇濆瓨鏈熼檺璁剧疆") + @PostMapping(value = "/savePeriod") + @ResponseBody + public BaseResult savePeriod(String period){ + try { + return logBasicServiceI.savePeriod(period); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "淇濆瓨鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** + * 鍒犻櫎鏃ュ織 + * period 鏈熼檺缂栫爜 + * @return 淇濆瓨缁撴灉 + */ + @VciBusinessLog(operateName="鍒犻櫎鏃ュ織") + @DeleteMapping(value = "/deleteLog") + @ResponseBody + public BaseResult deleteLog(String deleteDate){ + try { + return logBasicServiceI.deleteLog(deleteDate); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鍒犻櫎鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + /** + * 鏌ヨ鏃ュ織 + * @param dto 鏌ヨ鏉′欢浼犺緭瀵硅薄 + * @return 鏌ヨ鏁版嵁 + * @throws PLException + */ + @VciBusinessLog(operateName="鏃ュ織鏌ヨ") + @GetMapping(value = "/getLogListByContion") + @ResponseBody + public BaseResult getLogListByContion(@RequestBody LogQueryCriteriaDTO dto){ + try { + return logBasicServiceI.getLogListByContion(dto); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ鏃ュ織鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } + + /** + * 鎿嶄綔鐢ㄦ埛鑾峰彇 + */ + @VciBusinessLog(operateName="鑾峰彇鎿嶄綔鐢ㄦ埛") + @GetMapping(value = "/getOperatingUsers") + @ResponseBody + public BaseResult getOperatingUsers(){ + try { + return logBasicServiceI.getOperatingUsers(); + }catch (Exception e){ + e.printStackTrace(); + String errorMsg = "鏌ヨ鏃ュ織鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + throw new VciBaseException(errorMsg); + } + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LogBasicServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LogBasicServiceI.java new file mode 100644 index 0000000..995a7ce --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LogBasicServiceI.java @@ -0,0 +1,42 @@ +package com.vci.web.service; + +import com.vci.corba.common.PLException; +import com.vci.dto.LogQueryCriteriaDTO; +import com.vci.starter.web.pagemodel.BaseResult; + +/** + * 骞冲彴鏃ュ織鏈嶅姟 + * @author yuxc + * @date 2024-9-11 + */ +public interface LogBasicServiceI { + + /** + * 鑾峰彇鏃ユ湡淇濆瓨鏈熼檺涓嬫媺鍒楄〃妗� + * @return 鏌ヨ缁撴灉 + */ + BaseResult getPeroid() throws PLException; + /** + * 淇濆瓨鏈熼檺璁剧疆 + * period 鏈熼檺缂栫爜 + * @return 淇濆瓨缁撴灉 + */ + BaseResult savePeriod(String period) throws PLException; + /** + * 鍒犻櫎鏃ュ織 + * period 鏈熼檺缂栫爜 + * @return 淇濆瓨缁撴灉 + */ + BaseResult deleteLog(String deleteDate) throws PLException; + /** + * 鏌ヨ鏃ュ織 + * @param dto 鏌ヨ鏉′欢浼犺緭瀵硅薄 + * @return 鏌ヨ鏁版嵁 + * @throws PLException + */ + BaseResult getLogListByContion(LogQueryCriteriaDTO dto) throws PLException; + /** + * 鎿嶄綔鐢ㄦ埛鑾峰彇 + */ + BaseResult getOperatingUsers() throws PLException; +} 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 new file mode 100644 index 0000000..2392826 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LogBasicServiceImpl.java @@ -0,0 +1,390 @@ +package com.vci.web.service.impl; +import com.vci.client.common.objects.UserObject; +import com.vci.corba.common.PLException; +import com.vci.corba.common.data.UserEntityInfo; +import com.vci.corba.framework.data.UserInfo; +import com.vci.corba.pllog.data.LogInfo; +import com.vci.corba.pllog.data.LogPeriodInfo; +import com.vci.corba.pllog.data.LogType; +import com.vci.dto.LogInfoDTO; +import com.vci.dto.LogPeriodInfoDTO; +import com.vci.dto.LogQueryCriteriaDTO; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.web.service.*; +import com.vci.web.util.*; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 涓氬姟绫诲瀷鏈嶅姟 + * @author yuxc + * @date 2024-9-11 + */ +@Service +public class LogBasicServiceImpl implements LogBasicServiceI { + + /** + * 鏃ュ織 + */ + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 骞冲彴鐨勮皟鐢ㄥ伐鍏风被 + */ + @Autowired + private PlatformClientUtil platformClientUtil; + public static final String UTF8_BOM="\uFEFF"; + private final String LOG_SAVE_PERIOD = "logSavePeriod";//鏃ュ織淇濆瓨鏈熼檺 + + /** + * 鑾峰彇鏃ユ湡淇濆瓨鏈熼檺涓嬫媺鍒楄〃妗� + * @return 鏌ヨ缁撴灉 + */ + @Override + public BaseResult getPeroid() throws PLException { + //鑾峰彇褰撳墠鏈熼檺璁剧疆 + int curPeriod = platformClientUtil.getLogService().getCurPeriod(); + LogPeriodInfo[] periods = platformClientUtil.getLogService().getPeriods(); + List<LogPeriodInfoDTO> logDTOs = new ArrayList<>(); + for (LogPeriodInfo period : periods) { + LogPeriodInfoDTO dto = new LogPeriodInfoDTO(); + dto.setValue(period.value); + if(period.code.startsWith(UTF8_BOM)) { + period.code=period.code.substring(1); + } + if (Integer.valueOf(period.code) == curPeriod){ + dto.setChoose(true); + } + dto.setCode(period.code); + logDTOs.add(dto); + } + return BaseResult.dataList(logDTOs); + } + + /** + * 淇濆瓨鏈熼檺璁剧疆 + * period 鏈熼檺缂栫爜 + * @return 淇濆瓨缁撴灉 + */ + @Override + public BaseResult savePeriod(String period) throws PLException { + UserEntityInfo userEntityInfo = new UserEntityInfo(); + userEntityInfo.setModules("com.vci.client.log.ui.LogBasicConfPanel"); + userEntityInfo.setUserName(WebUtil.getCurrentUserId()); + boolean b = platformClientUtil.getLogService().savePeriod(period, userEntityInfo); + if(!b){ + return BaseResult.fail("淇濆瓨澶辫触锛�"); + } + return BaseResult.success("淇濆瓨鎴愬姛锛�"); + } + + /** + * 鍒犻櫎鏃ュ織 + * @param deleteDate 鍒犻櫎鐨勬棩鏈� + * @return 鍒犻櫎缁撴灉 + * @throws PLException + */ + @Override + public BaseResult deleteLog(String deleteDate) throws PLException { + if(StringUtils.isBlank(deleteDate)){ + throw new PLException("500", new String[]{"鏃ユ湡涓嶈兘涓虹┖锛�"}); + } + //鑾峰彇褰撳墠鏈熼檺璁剧疆 + int curSavePeriod = platformClientUtil.getLogService().getCurPeriod(); + int monthSpan = 1; + String monthLabel = ""; + LogPeriodInfo[] periods = platformClientUtil.getLogService().getPeriods(); + Map<String, String> periodMap = Arrays.stream(periods).collect(Collectors.toMap(e -> e.code, e -> e.value)); + + + if(curSavePeriod <= 0){ + // 鏈厤缃椂锛屽彧鑳藉垹闄� + monthLabel = periods[0].value; + monthSpan = Integer.valueOf(periods[0].code); + } else { + monthSpan = curSavePeriod;//鏈熼檺code + monthLabel = periodMap.get(String.valueOf(curSavePeriod));//鏈熼檺鏄剧ず鍊� + } + //妫�鏌ュ垹闄ら�昏緫 + checkCanDelete(deleteDate, monthSpan, monthLabel); + boolean res = false; + res = platformClientUtil.getLogService().deleteLog(getDeleteDateString(deleteDate));//鍒犻櫎鏃ュ織 + if(!res){ + return BaseResult.fail("鍒犻櫎澶辫触锛�"); + } + return BaseResult.success("鍒犻櫎鎴愬姛锛�"); + } + + /** + * 鏌ヨ鏃ュ織 + * @param queryDto 鏌ヨ鏉′欢浼犺緭瀵硅薄 + * @return 鏌ヨ鏁版嵁 + * @throws PLException + */ + @Override + public BaseResult getLogListByContion(LogQueryCriteriaDTO queryDto) throws PLException { + 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(); + dto.setLogType(logInfo.logType); + dto.setDate(logInfo.date); + dto.setContent(logInfo.content); + dto.setPuid(logInfo.puid); + dto.setModuleName(logInfo.moduleName); + dto.setEntityDesc(logInfo.entityDesc); + dto.setResult(logInfo.result); + dto.setType(logInfo.type); + dto.setProperty(logInfo.property); + dto.setTruename(logInfo.truename); + dto.setNewVal(logInfo.newVal); + dto.setUserIp(logInfo.userIp); + dto.setUsername(logInfo.username); + dto.setPreviousVal(logInfo.previousVal); + dtos.add(dto); + } + long sumLogRows = platformClientUtil.getLogService().getSumLogRows(querySql); + BaseResult result = new BaseResult(); + result.setSuccess(true); + result.setCode(200); + result.setData(dtos); + result.setTotal(sumLogRows); + return result; + } + /** + * 鎿嶄綔鐢ㄦ埛鑾峰彇 + */ + @Override + public BaseResult getOperatingUsers() throws PLException { + List<UserObject> users = new ArrayList<UserObject>(); + if("secAdmin".equals(WebUtil.getCurrentUserId())){ + users.addAll(getUsersByUserNames(Arrays.asList("auditAdmin"))); + users.addAll(getUsersByUserNames(getUserNameByUserType(2))); + } + else if("auditAdmin".equals(WebUtil.getCurrentUserId())){ + users.addAll(getUsersByUserNames(Arrays.asList("secAdmin", "sysAdmin"))); + } else if("sysAdmin".equals(WebUtil.getCurrentUserId())){ + + } + return BaseResult.dataList(users); + } + + /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + * @param userNames 鐢ㄦ埛鍚嶇О + * @return 鐢ㄦ埛淇℃伅 + * @throws PLException + */ + private List<UserObject> getUsersByUserNames(List<String> userNames) throws PLException { + List<UserObject> userList = new ArrayList<UserObject>(); + for(String userName : userNames){ + UserInfo userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByName(userName); + UserObject user = new UserObject(); + user.setId(userInfo.id); + user.setUserName(userInfo.userName); + user.setPwd(userInfo.pwd); + user.setEmail(userInfo.email); + user.setTrueName(userInfo.trueName); + user.setSpecialties(userInfo.specialties); + user.setDesc(userInfo.desc); + user.setUserType(userInfo.userType); + user.setStatus(userInfo.status); + user.setCreateTime(userInfo.createTime); + user.setCreateUser(userInfo.createUser); + user.setUpdateTime(userInfo.updateTime); + user.setUpdateUser(userInfo.updateUser); + user.setPwdUpdateTime(userInfo.pwdUpdateTime); + user.setGrantor(userInfo.grantor); + user.setSecretGrade(userInfo.secretGrade); + user.setIsDeptLeader(userInfo.isDeptLeader); + userList.add(user); + } + + Collections.sort(userList, new Comparator<UserObject>(){ + @Override + public int compare(UserObject o1, UserObject o2) { + return o1.getUserName().compareTo(o2.getUserName()); + } + }); + return userList; + } + + /** + * 鏍规嵁鐢ㄦ埛绫诲瀷鑾峰彇鐢ㄦ埛鏁版嵁 + * @param userType 鐢ㄦ埛绫诲瀷 + * @return 鐢ㄦ埛鏁版嵁 + * @throws PLException + */ + private List<String> getUserNameByUserType(int userType) throws PLException{ + List<String> userNames = new ArrayList<String>(); + String sql = "select plusername,pltruename from pluser u where u.plusertype = " + String.valueOf(userType); + String[][] valss = platformClientUtil.getQueryService().queryBySqlWithoutKey(sql); + for(String[] vals : valss){ + userNames.add(vals[0]); + } + 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 = platformClientUtil.getLogService().getCurPeriod();;//鑾峰彇淇濆瓨鏈熼檺锛屼互鏈堜负鍗曚綅 + //涓嬮潰鏄嫾鍑篠QL + if(period != 0){ + sql.append(" to_date(PLDATE) >= add_months(to_date(sysdate),"+(-period)+")"); + } + if(dto.getStartDate()!=null&&!dto.getStartDate().trim().equals("")&&!dto.getStartDate().equals("null")){//璧峰鏃ユ湡 + if(!sql.toString().equals("")){ + sql.append(" and "); + } + sql.append(" to_date(PLDATE) >= to_date('"+dto.getStartDate().trim()+"','yyyy-MM-dd') "); + } + if(dto.getEndDate()!=null&&!dto.getEndDate().trim().equals("")&&!dto.getEndDate().equals("null")){//缁撴潫鏃ユ湡 + if(!sql.toString().equals("")){ + sql.append(" and "); + } + sql.append(" trunc(PLDATE) <= to_date('"+dto.getEndDate().trim()+"','yyyy-MM-dd')"); + } + + if(dto.getLogType() == LogType.Login.value()) {//鐧诲叆鐧诲嚭鏃ュ織 + if(!sql.toString().equals("")){ + sql.append(" and "); + } + sql.append("PLLOGTYPE in ('" + getLogTypeString(LogType.Login) +"','" + getLogTypeString(LogType.Logout)+ "')"); + } else if(dto.getLogType() == LogType.Grant.value()) {//鎺堟潈鏃ュ織 + if(!sql.toString().equals("")){ + sql.append(" and "); + } + sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.Grant) + "')"); + } else if(dto.getLogType() == LogType.General.value()) {//涓�鑸搷浣滄棩蹇� + if(!sql.toString().equals("")){ + sql.append(" and "); + } + sql.append("PLLOGTYPE in('" + getLogTypeString(LogType.General) + "')"); + } + if(StringUtils.isNotBlank(dto.getUserName())){//鎿嶄綔鐢ㄦ埛 + if(!dto.getUserName().trim().equals("")){//濡傛灉鐢ㄦ埛鍚嶄负绌烘牸鍒欎笉鍔犵敤鎴锋潯浠� + if(!sql.toString().equals("")){ + sql.append(" and "); + } + if(dto.getUserName().contains("*")){ + dto.setUserName(dto.getUserName().trim().replaceAll("\\*", "%")); + sql.append(" PLUSER like '").append(dto.getUserName().trim()).append("'"); + }else{ + sql.append(" PLUSER = '").append(dto.getUserName().trim()).append("'"); + } + } + } + //鎸塈P鏌ヨ + if(StringUtils.isNotBlank(dto.getIpText())){ + String ip = dto.getIpText().trim(); + if(!sql.toString().equals("")){ + sql.append(" and "); + } + if(ip.trim().contains("*")){//妯$硦鏌ヨ + ip = ip.trim().replaceAll("\\*", "%"); + sql.append(" PLIP like '").append(ip.trim()).append("'"); + }else{ + sql.append(" PLIP = '").append(ip.trim()).append("'"); + } + } + if(StringUtils.isNotBlank(dto.getTypeText())){ + String typeValue = dto.getTypeText(); + sql.append(" and pltype like '%").append(typeValue).append("%'"); + } + //杩囨护鎺塧dmin鍜宒eveloper鐢ㄦ埛鐨勬棩蹇楄褰� + sql.append(" and PLUSER !='admin' and PLUSER !='developer' "); + + sql.append(" and pluser != '" + WebUtil.getCurrentUserId() + "' "); + + + // 瀹夊叏淇濆瘑鍛樹笉鐪嬬郴缁熺鐞嗗憳鐨勬棩蹇� + if("secAdmin".equals(WebUtil.getCurrentUserId())){ + sql.append(" and pluser != 'sysAdmin' "); + } + // 瀹¤绠$悊鍛樺彧鐪嬬郴缁熺鐞嗗憳鍜屽畨鍏ㄤ繚瀵嗗憳鐨勬棩蹇� + else if("auditAdmin".equals(WebUtil.getCurrentUserId())){ + sql.append(" and pluser in ('secAdmin', 'sysAdmin')"); + } + return sql.toString(); + } + protected String getLogTypeString(LogType logType){ + String res = ""; + if(logType == LogType.Login) { + res = "鐧诲綍"; + } else if(logType == LogType.Logout) { + res = "鐧诲嚭"; + } else if(logType == LogType.Grant) { + res = "鎺堟潈"; + } else if(logType == LogType.General) { + res = "涓�鑸搷浣�"; + } else if(logType == LogType.Integration) { + res = "闆嗘垚搴旂敤"; + } + return res; + } + + /** + * 鏃ユ湡瀛楃涓插鐞� + * @param deleteDate 鏃ユ湡瀛楃涓� + * @return 澶勭悊瀹屾垚鐨勬棩鏈熷瓧绗︿覆 + */ + protected String getDeleteDateString(String deleteDate){ + int s = Integer.parseInt(deleteDate.substring(8))+1; + StringBuffer buff = new StringBuffer(); + buff.append(deleteDate.substring(0, 8)); + if(("0"+s).length()>2){ + buff.append(s+""); + }else{ + buff.append("0"+s); + } + return buff.toString(); + } + + /** + * 鍒犻櫎閫昏緫妫�鏌� + * @param deleteDate 鏃ユ湡瀛楃涓� + * @param monthSpan 鏈熼檺code + * @param monthLabel 鏈熼檺鏄剧ず鍊� + * @return + * @throws PLException + */ + private boolean checkCanDelete(String deleteDate, int monthSpan, String monthLabel) throws PLException { + boolean res = false; + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + sdf.parse(deleteDate); + } catch (ParseException e1) { + throw new PLException("500", new String[]{"灏�" + deleteDate + "杞崲鏃ユ湡鏃跺彂鐢熼敊璇紒"}); + } + String sql = "SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, to_date('" + deleteDate + "','yyyy-mm-dd'))) from dual"; + String[][] vals; + try { + vals = platformClientUtil.getQueryService().queryBySqlWithoutKey(sql); + if(vals != null && vals.length > 0 && vals[0].length > 0){ + int spval = Integer.valueOf(vals[0][0]); + if(spval <= monthSpan){ + throw new PLException("500", new String[]{"鍙兘鍒犻櫎 " + monthLabel + " 涔嬪墠鐨勬暟鎹紒"}); + } + } + } catch (PLException e) { + e.printStackTrace(); + e.messages[0] += "璁$畻鏄惁鍙互鍒犻櫎鎸囧畾鏃ユ湡涔嬪墠鐨勬暟鎹椂鍙戠敓閿欒锛�"; + throw new PLException("500", e.messages); + } + res = true; + return res; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java index 80c21c9..6a05746 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java @@ -98,6 +98,7 @@ PLActionCls pac = new PLActionCls(); pac.name = pLActionCls.getName(); pac.pid = pLActionCls.getPid(); + pac.id = pLActionCls.getId(); pac.description = pLActionCls.getDescription() == null ? "" : pLActionCls.getDescription(); pac.creator = WebUtil.getCurrentUserId(); pac.createTime = System.currentTimeMillis(); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PlatformClientUtil.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PlatformClientUtil.java index 5798c87..a2e9a69 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PlatformClientUtil.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/PlatformClientUtil.java @@ -4,7 +4,6 @@ import com.vci.corba.bofactory.BOFactoryServicePrx; import com.vci.corba.common.PLException; import com.vci.corba.framework.FrameworkServicePrx; -import com.vci.corba.log.LogServicePrx; import com.vci.corba.omd.atm.AttPoolServicePrx; import com.vci.corba.omd.btm.BTMServicePrx; import com.vci.corba.omd.data.AttributeValue; @@ -14,6 +13,7 @@ import com.vci.corba.omd.qtm.QTDServicePrx; import com.vci.corba.omd.stm.StatePoolServicePrx; import com.vci.corba.omd.vrm.VersionRuleServicePrx; +import com.vci.corba.pllog.LogServicePrx; import com.vci.corba.portal.PortalServicePrx; import com.vci.corba.query.ObjectQueryServicePrx; import com.vci.corba.volume.VolumeServicePrx; diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/ice.properties b/Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/ice.properties index 2fae8b8..3259ca1 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/ice.properties +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/resources/properties/ice.properties @@ -1,4 +1,5 @@ #NameService=PLT Adapter=PLT -Endpoints=default -h localhost -p 4601 +Endpoints=default -h localhost -p 4061 +Ice.MessageSizeMax=1048576 #Endpoints=VCI-PLT/Locator:default -h localhost -p 4601 \ No newline at end of file -- Gitblit v1.9.3