河北安全测评整改需求
This commit is contained in:
@@ -26,6 +26,7 @@ import com.njcn.common.pojo.constant.LogInfo;
|
||||
import com.njcn.common.pojo.constant.OperateType;
|
||||
import com.njcn.common.pojo.constant.SecurityConstants;
|
||||
import com.njcn.common.pojo.dto.UserTokenInfo;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
import com.njcn.redis.utils.RedisUtil;
|
||||
@@ -34,9 +35,11 @@ import com.njcn.system.excel.UserLogExcel;
|
||||
import com.njcn.system.mapper.AuditMapper;
|
||||
import com.njcn.system.mapper.UserLogMapper;
|
||||
import com.njcn.system.pojo.param.AuditParam;
|
||||
import com.njcn.system.pojo.po.Config;
|
||||
import com.njcn.system.pojo.po.UserLog;
|
||||
import com.njcn.system.pojo.vo.*;
|
||||
import com.njcn.system.service.AuditService;
|
||||
import com.njcn.system.service.IConfigService;
|
||||
import com.njcn.user.api.UserFeignClient;
|
||||
import com.njcn.user.pojo.po.User;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -62,6 +65,8 @@ import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.njcn.common.pojo.constant.LogInfo.UNKNOWN_USER;
|
||||
|
||||
/**
|
||||
* @version 1.0.0
|
||||
* @author: chenchao
|
||||
@@ -81,28 +86,38 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
|
||||
private final UserFeignClient userFeignClient;
|
||||
|
||||
@Value("${clear.num}")
|
||||
private Integer clearHistoryLog;
|
||||
private Integer clearHistoryLog;
|
||||
|
||||
private IConfigService iConfigService;
|
||||
|
||||
@Override
|
||||
public Page<AuditLogVO> getAuditLog(AuditParam auditParam) {
|
||||
List<AuditLogVO> auditLogVOS = new ArrayList<>();
|
||||
|
||||
Page<UserLog> info = this.page(new Page<>(auditParam.getPageNum(), auditParam.getPageSize()), new LambdaQueryWrapper<UserLog>()
|
||||
.and(StrUtil.isNotBlank(auditParam.getLoginName()), qw ->
|
||||
//如果Objects.equals(auditParam.getOperateType(), OperateType.AUTHENTICATE)则是用户登陆信息查询页面,loginname可模糊匹配Ip,CreateTime
|
||||
qw.like(UserLog::getLoginName, auditParam.getLoginName()).or(Objects.equals(auditParam.getOperateType(), OperateType.AUTHENTICATE)).like(
|
||||
UserLog::getIp, auditParam.getLoginName()
|
||||
).or(Objects.equals(auditParam.getOperateType(), OperateType.AUTHENTICATE)).like(
|
||||
UserLog::getCreateTime, auditParam.getLoginName()
|
||||
))
|
||||
.ne(UserLog::getLoginName, LogInfo.UNKNOWN_USER)
|
||||
.ne(UserLog::getLoginName, "")
|
||||
.ne(UserLog::getOperate, LogInfo.UNKNOWN_OPERATE)
|
||||
.eq(auditParam.getType() != null, UserLog::getType, auditParam.getType())
|
||||
.eq(StrUtil.isNotBlank(auditParam.getOperateType()), UserLog::getOperateType, auditParam.getOperateType())
|
||||
.ge(StrUtil.isNotBlank(auditParam.getSearchBeginTime()), UserLog::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime())))
|
||||
.le(StrUtil.isNotBlank(auditParam.getSearchEndTime()), UserLog::getCreateTime, DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime())))
|
||||
.orderByDesc(UserLog::getCreateTime)
|
||||
);
|
||||
LambdaQueryWrapper<UserLog> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper
|
||||
.between(UserLog::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(auditParam.getSearchBeginTime())),
|
||||
DateUtil.endOfDay(DateUtil.parse(auditParam.getSearchEndTime())))
|
||||
.ne(UserLog::getLoginName,UNKNOWN_USER)
|
||||
.orderByDesc(UserLog::getCreateTime);
|
||||
|
||||
|
||||
if (StrUtil.isNotBlank(auditParam.getLoginName())) {
|
||||
lambdaQueryWrapper.eq(UserLog::getLoginName, auditParam.getLoginName());
|
||||
}
|
||||
if (StrUtil.isNotBlank(auditParam.getOperateType())) {
|
||||
lambdaQueryWrapper.eq(UserLog::getOperateType, auditParam.getOperateType());
|
||||
}
|
||||
if (Objects.nonNull(auditParam.getType())) {
|
||||
lambdaQueryWrapper.eq(UserLog::getType, auditParam.getType());
|
||||
}
|
||||
if (Objects.nonNull(auditParam.getResult())) {
|
||||
lambdaQueryWrapper.eq(UserLog::getResult, auditParam.getResult());
|
||||
}
|
||||
|
||||
|
||||
Page<UserLog> info = this.page(new Page<>(auditParam.getPageNum(), auditParam.getPageSize()), lambdaQueryWrapper);
|
||||
|
||||
Page<AuditLogVO> page = BeanUtil.copyProperties(info, Page.class);
|
||||
if (CollUtil.isNotEmpty(info.getRecords())) {
|
||||
for (UserLog userLog : info.getRecords()) {
|
||||
@@ -148,8 +163,11 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
|
||||
throw new BusinessException(AuditLogEnum.MULTIPLE_CLICKS_LOGFILEWRITER);
|
||||
}
|
||||
redisUtil.saveByKey("logFileWriter", "1");
|
||||
|
||||
|
||||
Config config = iConfigService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getState, DataStateEnum.ENABLE.getCode()));
|
||||
LocalDateTime nowDate = LocalDateTime.now();
|
||||
LocalDateTime agoDate = nowDate.minusMonths(6).with(TemporalAdjusters.firstDayOfMonth());
|
||||
LocalDateTime agoDate = nowDate.minusMonths(config.getLogTime()).with(TemporalAdjusters.firstDayOfMonth());
|
||||
String date = agoDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
||||
//结束时间
|
||||
String endTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH_mm_ss").format(nowDate);
|
||||
@@ -258,7 +276,7 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
|
||||
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||
}
|
||||
}).sheet().doRead();
|
||||
if(CollUtil.isNotEmpty(userLogs)){
|
||||
if (CollUtil.isNotEmpty(userLogs)) {
|
||||
// 执行批量插入
|
||||
saveLogsBatch(userLogs, 1500);
|
||||
}
|
||||
@@ -365,13 +383,13 @@ public class AuditServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implem
|
||||
public LogParamVO saveLogParam() {
|
||||
LogParamVO logParamVO = new LogParamVO();
|
||||
List<UserLog> userLogs = auditMapper.selectUserLog();
|
||||
List<ValuePO> loginNameList = userLogs.stream().map(UserLog::getLoginName).distinct().map(temp->{
|
||||
List<ValuePO> loginNameList = userLogs.stream().map(UserLog::getLoginName).distinct().map(temp -> {
|
||||
ValuePO valuePO = new ValuePO();
|
||||
valuePO.setValue(temp);
|
||||
return valuePO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
List<ValuePO> operateTypeList = userLogs.stream().map(UserLog::getOperateType).distinct().map(temp->{
|
||||
List<ValuePO> operateTypeList = userLogs.stream().map(UserLog::getOperateType).distinct().map(temp -> {
|
||||
ValuePO valuePO = new ValuePO();
|
||||
valuePO.setValue(temp);
|
||||
return valuePO;
|
||||
|
||||
Reference in New Issue
Block a user