🔨 数据清理时添加条数限制.

This commit is contained in:
lijiahang
2024-08-29 18:26:26 +08:00
parent d7b747eac4
commit 104a9a0aa3
61 changed files with 490 additions and 283 deletions

View File

@@ -2,12 +2,12 @@ package com.orion.visor.module.infra.controller;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.framework.biz.operator.log.core.annotation.OperatorLog;
import com.orion.visor.framework.common.validator.group.Clear;
import com.orion.visor.framework.common.validator.group.Page;
import com.orion.visor.framework.log.core.annotation.IgnoreLog;
import com.orion.visor.framework.log.core.enums.IgnoreLogMode;
import com.orion.visor.framework.web.core.annotation.RestWrapper;
import com.orion.visor.module.infra.define.operator.OperatorLogOperatorType;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogClearRequest;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogQueryRequest;
import com.orion.visor.module.infra.entity.vo.OperatorLogVO;
import com.orion.visor.module.infra.service.OperatorLogService;
@@ -57,10 +57,10 @@ public class OperatorLogController {
return operatorLogService.deleteOperatorLog(idList);
}
@PostMapping("/query-count")
@PostMapping("/count")
@Operation(summary = "查询操作日志数量")
@PreAuthorize("@ss.hasPermission('infra:operator-log:management:clear')")
public Long getOperatorLogCount(@RequestBody OperatorLogQueryRequest request) {
@PreAuthorize("@ss.hasPermission('infra:operator-log:query')")
public Long getOperatorLogCount(@Validated @RequestBody OperatorLogQueryRequest request) {
return operatorLogService.getOperatorLogCount(request);
}
@@ -68,7 +68,7 @@ public class OperatorLogController {
@PostMapping("/clear")
@Operation(summary = "清空操作日志")
@PreAuthorize("@ss.hasPermission('infra:operator-log:management:clear')")
public Integer clearOperatorLog(@Validated(Clear.class) @RequestBody OperatorLogQueryRequest request) {
public Integer clearOperatorLog(@Validated @RequestBody OperatorLogClearRequest request) {
return operatorLogService.clearOperatorLog(request);
}

View File

@@ -0,0 +1,30 @@
package com.orion.visor.module.infra.entity.request.operator;
import com.orion.visor.framework.common.entity.DataClearRequest;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* 操作日志 清理请求对象
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023-10-10 17:08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "OperatorLogClearRequest", description = "操作日志 清理请求对象")
public class OperatorLogClearRequest extends OperatorLogQueryRequest implements DataClearRequest {
@NotNull
@Min(value = 1)
@Max(value = 2000)
@Schema(description = "清理数量限制")
private Integer limit;
}

View File

@@ -1,15 +1,10 @@
package com.orion.visor.module.infra.entity.request.operator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.orion.visor.framework.common.constant.Const;
import com.orion.visor.framework.common.entity.PageRequest;
import com.orion.visor.framework.common.validator.group.Clear;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
@@ -53,16 +48,4 @@ public class OperatorLogQueryRequest extends PageRequest {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date[] startTimeRange;
@NotNull(groups = Clear.class)
@Min(value = 1, groups = Clear.class)
@Max(value = 2000, groups = Clear.class)
@Schema(description = "清理数量限制")
private Integer clearLimit;
public void setClearLimit(Integer clearLimit) {
this.clearLimit = clearLimit;
this.setPage(Const.N_1);
this.setLimit(clearLimit);
}
}

View File

@@ -1,8 +1,8 @@
package com.orion.visor.module.infra.handler.upload;
import com.alibaba.fastjson.JSON;
import com.orion.lang.annotation.Keep;
import com.orion.lang.utils.io.Streams;
import com.orion.visor.framework.common.annotation.Keep;
import com.orion.visor.framework.common.constant.ExtraFieldConst;
import com.orion.visor.framework.common.file.FileClient;
import com.orion.visor.framework.websocket.core.utils.WebSockets;

View File

@@ -2,6 +2,7 @@ package com.orion.visor.module.infra.service;
import com.orion.lang.define.wrapper.DataGrid;
import com.orion.visor.framework.biz.operator.log.core.model.OperatorLogModel;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogClearRequest;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogQueryRequest;
import com.orion.visor.module.infra.entity.vo.LoginHistoryVO;
import com.orion.visor.module.infra.entity.vo.OperatorLogVO;
@@ -54,7 +55,7 @@ public interface OperatorLogService {
* @param request request
* @return effect
*/
Integer clearOperatorLog(OperatorLogQueryRequest request);
Integer clearOperatorLog(OperatorLogClearRequest request);
/**
* 查询用户登录日志

View File

@@ -1,8 +1,8 @@
package com.orion.visor.module.infra.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.annotation.Keep;
import com.orion.lang.utils.collect.Lists;
import com.orion.visor.framework.common.annotation.Keep;
import com.orion.visor.framework.common.utils.Valid;
import com.orion.visor.framework.redis.core.utils.RedisLists;
import com.orion.visor.framework.redis.core.utils.barrier.CacheBarriers;

View File

@@ -13,6 +13,7 @@ import com.orion.visor.module.infra.convert.OperatorLogConvert;
import com.orion.visor.module.infra.dao.OperatorLogDAO;
import com.orion.visor.module.infra.define.operator.AuthenticationOperatorType;
import com.orion.visor.module.infra.entity.domain.OperatorLogDO;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogClearRequest;
import com.orion.visor.module.infra.entity.request.operator.OperatorLogQueryRequest;
import com.orion.visor.module.infra.entity.vo.LoginHistoryVO;
import com.orion.visor.module.infra.entity.vo.OperatorLogVO;
@@ -67,15 +68,17 @@ public class OperatorLogServiceImpl implements OperatorLogService {
@Override
public Long getOperatorLogCount(OperatorLogQueryRequest request) {
return operatorLogDAO.selectCount(this.buildQueryWrapper(request));
return operatorLogDAO.of()
.wrapper(this.buildQueryWrapper(request))
.countMax(request.getLimit());
}
@Override
public Integer clearOperatorLog(OperatorLogQueryRequest request) {
public Integer clearOperatorLog(OperatorLogClearRequest request) {
log.info("OperatorLogService.clearOperatorLog start {}", JSON.toJSONString(request));
// 删除参数
LambdaQueryWrapper<OperatorLogDO> wrapper = this.buildQueryWrapper(request);
wrapper.last(SqlUtils.limit(request.getClearLimit()));
LambdaQueryWrapper<OperatorLogDO> wrapper = this.buildQueryWrapper(request)
.last(SqlUtils.limit(request.getLimit()));
// 删除
int effect = operatorLogDAO.delete(wrapper);
log.info("OperatorLogService.clearOperatorLog finish {}", effect);

View File

@@ -2,9 +2,9 @@ package com.orion.visor.module.infra.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.annotation.Keep;
import com.orion.lang.utils.collect.Lists;
import com.orion.lang.utils.collect.Maps;
import com.orion.visor.framework.common.annotation.Keep;
import com.orion.visor.framework.redis.core.utils.RedisStrings;
import com.orion.visor.module.infra.convert.TagRelConvert;
import com.orion.visor.module.infra.dao.TagDAO;