河北安全测评整改需求

This commit is contained in:
2024-07-22 13:53:04 +08:00
parent 6fa63a7f3e
commit ec051827ac
15 changed files with 254 additions and 76 deletions

View File

@@ -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可模糊匹配IpCreateTime
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;