From a0adb415fa9fd99be4370b83fbf483bce3089698 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Mon, 26 Aug 2024 17:10:40 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E6=95=B0=E6=8D=AE=E6=B8=85=E7=90=86?= =?UTF-8?q?=E6=97=B6=E6=B7=BB=E5=8A=A0=E6=9D=A1=E6=95=B0=E9=99=90=E5=88=B6?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/common/entity/PageRequest.java | 10 +++-- .../framework/common/utils/SqlUtils.java | 38 +++++++++++++++++++ .../common/validator/group/Batch.java | 4 +- .../common/validator/group/Clear.java | 11 ++++++ .../common/validator/group/Export.java | 11 ++++++ .../framework/common/validator/group/Id.java | 4 +- .../common/validator/group/Import.java | 11 ++++++ .../common/validator/group/Page.java | 4 +- .../mybatis/core/query/DataQuery.java | 5 ++- .../controller/ExecCommandLogController.java | 4 +- .../controller/ExecJobLogController.java | 4 +- .../controller/HostConnectLogController.java | 3 +- .../controller/UploadTaskController.java | 3 +- .../request/exec/ExecLogQueryRequest.java | 17 +++++++++ .../host/HostConnectLogQueryRequest.java | 19 ++++++++++ .../request/host/HostCreateRequest.java | 6 ++- .../request/host/HostUpdateRequest.java | 9 ++--- .../upload/UploadTaskQueryRequest.java | 17 +++++++++ .../host/config/model/HostSshConfigModel.java | 8 ++-- .../service/impl/ExecLogServiceImpl.java | 4 +- .../impl/HostConnectLogServiceImpl.java | 9 ++++- .../service/impl/UploadTaskServiceImpl.java | 4 +- .../controller/OperatorLogController.java | 3 +- .../request/exoression/CronNextRequest.java | 6 ++- .../operator/OperatorLogQueryRequest.java | 17 +++++++++ .../service/impl/OperatorLogServiceImpl.java | 5 ++- .../src/api/asset/host-connect-log.ts | 1 + orion-visor-ui/src/api/exec/exec-log.ts | 1 + orion-visor-ui/src/api/exec/upload-task.ts | 1 + orion-visor-ui/src/api/user/operator-log.ts | 1 + .../components/exec/log/panel/log-item.vue | 2 +- .../components/connect-log-clear-modal.vue | 18 ++++++++- .../asset-audit/connect-log/types/const.ts | 3 ++ .../exec-command-log-clear-modal.vue | 19 +++++++++- .../exec/exec-command-log/types/const.ts | 2 + .../components/upload-task-clear-modal.vue | 17 ++++++++- .../src/views/exec/upload-task/types/const.ts | 3 ++ .../components/exec-job-log-clear-modal.vue | 19 +++++++++- .../src/views/job/exec-job-log/types/const.ts | 2 + .../components/operator-log-clear-modal.vue | 18 ++++++++- .../views/user/operator-log/types/const.ts | 3 ++ 41 files changed, 295 insertions(+), 51 deletions(-) create mode 100644 orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/SqlUtils.java create mode 100644 orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Clear.java create mode 100644 orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Export.java create mode 100644 orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Import.java diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/entity/PageRequest.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/entity/PageRequest.java index b9670b72..a7284fdf 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/entity/PageRequest.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/entity/PageRequest.java @@ -4,7 +4,9 @@ import com.orion.lang.define.wrapper.IPageRequest; import com.orion.visor.framework.common.validator.group.Page; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; /** * 公共页码请求 @@ -17,11 +19,13 @@ import org.hibernate.validator.constraints.Range; @Schema(description = "公共页码请求") public class PageRequest implements IPageRequest { - @Range(min = 1, max = 10000, groups = Page.class) + @Min(value = 1, groups = Page.class) + @Max(value = 10000, groups = Page.class) @Schema(description = "页码") private int page; - @Range(min = 1, max = 200, groups = Page.class) + @Min(value = 1, groups = Page.class) + @Max(value = 200, groups = Page.class) @Schema(description = "大小") private int limit; diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/SqlUtils.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/SqlUtils.java new file mode 100644 index 00000000..adb3d446 --- /dev/null +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/utils/SqlUtils.java @@ -0,0 +1,38 @@ +package com.orion.visor.framework.common.utils; + +import com.orion.visor.framework.common.constant.Const; + +/** + * sql 工具类 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2024/8/26 16:03 + */ +public class SqlUtils { + + private SqlUtils() { + } + + /** + * limit n + * + * @param limit limit + * @return limit + */ + public static String limit(Integer limit) { + return Const.LIMIT + Const.SPACE + limit; + } + + /** + * limit offset limit + * + * @param offset offset + * @param limit limit + * @return limit + */ + public static String limit(int offset, Integer limit) { + return Const.LIMIT + Const.SPACE + offset + Const.COMMA + limit; + } + +} diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Batch.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Batch.java index c1955512..16aa11ab 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Batch.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Batch.java @@ -1,7 +1,5 @@ package com.orion.visor.framework.common.validator.group; -import javax.validation.groups.Default; - /** * 批量验证分组 * @@ -9,5 +7,5 @@ import javax.validation.groups.Default; * @version 1.0.0 * @since 2023/9/1 19:13 */ -public interface Batch extends Default { +public interface Batch { } diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Clear.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Clear.java new file mode 100644 index 00000000..d5b6a285 --- /dev/null +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Clear.java @@ -0,0 +1,11 @@ +package com.orion.visor.framework.common.validator.group; + +/** + * 清理验证分组 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/9/1 19:13 + */ +public interface Clear { +} diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Export.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Export.java new file mode 100644 index 00000000..17c681e8 --- /dev/null +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Export.java @@ -0,0 +1,11 @@ +package com.orion.visor.framework.common.validator.group; + +/** + * 导出验证分组 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/9/1 19:13 + */ +public interface Export { +} diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Id.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Id.java index 675eeaf6..07e07a05 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Id.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Id.java @@ -1,7 +1,5 @@ package com.orion.visor.framework.common.validator.group; -import javax.validation.groups.Default; - /** * 分页验证分组 * @@ -9,5 +7,5 @@ import javax.validation.groups.Default; * @version 1.0.0 * @since 2023/9/1 19:13 */ -public interface Id extends Default { +public interface Id { } diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Import.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Import.java new file mode 100644 index 00000000..de59d240 --- /dev/null +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Import.java @@ -0,0 +1,11 @@ +package com.orion.visor.framework.common.validator.group; + +/** + * 导出验证分组 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/9/1 19:13 + */ +public interface Import { +} diff --git a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Page.java b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Page.java index 8d1722d7..7fc444a3 100644 --- a/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Page.java +++ b/orion-visor-framework/orion-visor-framework-common/src/main/java/com/orion/visor/framework/common/validator/group/Page.java @@ -1,7 +1,5 @@ package com.orion.visor.framework.common.validator.group; -import javax.validation.groups.Default; - /** * 分页验证分组 * @@ -9,5 +7,5 @@ import javax.validation.groups.Default; * @version 1.0.0 * @since 2023/9/1 19:13 */ -public interface Page extends Default { +public interface Page { } diff --git a/orion-visor-framework/orion-visor-spring-boot-starter-mybatis/src/main/java/com/orion/visor/framework/mybatis/core/query/DataQuery.java b/orion-visor-framework/orion-visor-spring-boot-starter-mybatis/src/main/java/com/orion/visor/framework/mybatis/core/query/DataQuery.java index 37dcef6c..025072a5 100644 --- a/orion-visor-framework/orion-visor-spring-boot-starter-mybatis/src/main/java/com/orion/visor/framework/mybatis/core/query/DataQuery.java +++ b/orion-visor-framework/orion-visor-spring-boot-starter-mybatis/src/main/java/com/orion/visor/framework/mybatis/core/query/DataQuery.java @@ -16,6 +16,7 @@ import com.orion.lang.utils.collect.Lists; import com.orion.lang.utils.reflect.Classes; import com.orion.spring.SpringHolder; import com.orion.visor.framework.common.constant.Const; +import com.orion.visor.framework.common.utils.SqlUtils; import com.orion.visor.framework.mybatis.core.domain.BaseDO; import java.io.Serializable; @@ -111,11 +112,11 @@ public class DataQuery { } public DataQuery limit(int limit) { - return this.last(Const.LIMIT + Const.SPACE + limit); + return this.last(SqlUtils.limit(limit)); } public DataQuery limit(int offset, int limit) { - return this.last(Const.LIMIT + Const.SPACE + offset + Const.COMMA + limit); + return this.last(SqlUtils.limit(offset, limit)); } public DataQuery only() { diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecCommandLogController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecCommandLogController.java index 6130c44c..ee2f5b4d 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecCommandLogController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecCommandLogController.java @@ -3,6 +3,7 @@ package com.orion.visor.module.asset.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.utils.Valid; +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; @@ -136,7 +137,7 @@ public class ExecCommandLogController { @PostMapping("/clear") @Operation(summary = "清空批量执行日志") @PreAuthorize("@ss.hasPermission('asset:exec-command-log:management:clear')") - public Integer clearExecCommandLog(@RequestBody ExecLogQueryRequest request) { + public Integer clearExecCommandLog(@Validated(Clear.class) @RequestBody ExecLogQueryRequest request) { request.setSource(SOURCE); return execLogService.clearExecLog(request); } @@ -178,4 +179,3 @@ public class ExecCommandLogController { } } - diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecJobLogController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecJobLogController.java index 892d5ab9..0a3d30b3 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecJobLogController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/ExecJobLogController.java @@ -3,6 +3,7 @@ package com.orion.visor.module.asset.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.utils.Valid; +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; @@ -125,7 +126,7 @@ public class ExecJobLogController { @PostMapping("/clear") @Operation(summary = "清空计划任务日志") @PreAuthorize("@ss.hasPermission('asset:exec-job-log:management:clear')") - public Integer clearExecJobLog(@RequestBody ExecLogQueryRequest request) { + public Integer clearExecJobLog(@Validated(Clear.class) @RequestBody ExecLogQueryRequest request) { request.setSource(SOURCE); return execLogService.clearExecLog(request); } @@ -167,4 +168,3 @@ public class ExecJobLogController { } } - diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostConnectLogController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostConnectLogController.java index 85198450..81103519 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostConnectLogController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/HostConnectLogController.java @@ -2,6 +2,7 @@ package com.orion.visor.module.asset.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.Id; import com.orion.visor.framework.common.validator.group.Page; import com.orion.visor.framework.log.core.annotation.IgnoreLog; @@ -84,7 +85,7 @@ public class HostConnectLogController { @PostMapping("/clear") @Operation(summary = "清空主机连接日志") @PreAuthorize("@ss.hasPermission('asset:host-connect-log:management:clear')") - public Integer clearHostConnectLog(@RequestBody HostConnectLogQueryRequest request) { + public Integer clearHostConnectLog(@Validated(Clear.class) @RequestBody HostConnectLogQueryRequest request) { return hostConnectLogService.clearHostConnectLog(request); } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/UploadTaskController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/UploadTaskController.java index 37e4796e..93bdb447 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/UploadTaskController.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/controller/UploadTaskController.java @@ -2,6 +2,7 @@ package com.orion.visor.module.asset.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; @@ -123,7 +124,7 @@ public class UploadTaskController { @PostMapping("/clear") @Operation(summary = "清空上传任务") @PreAuthorize("@ss.hasPermission('asset:upload-task:management:clear')") - public Integer clearUploadTask(@RequestBody UploadTaskQueryRequest request) { + public Integer clearUploadTask(@Validated(Clear.class) @RequestBody UploadTaskQueryRequest request) { return uploadTaskService.clearUploadTask(request); } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java index 4e42d0d3..66bb8d60 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java @@ -1,10 +1,15 @@ package com.orion.visor.module.asset.entity.request.exec; 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; import java.util.List; @@ -62,4 +67,16 @@ public class ExecLogQueryRequest extends PageRequest { @Schema(description = "状态") private List statusList; + @NotNull(groups = Clear.class) + @Min(value = 1, groups = Clear.class) + @Max(value = 1000, groups = Clear.class) + @Schema(description = "清理数量限制") + private Integer clearLimit; + + public void setClearLimit(Integer clearLimit) { + this.clearLimit = clearLimit; + this.setPage(Const.N_1); + this.setLimit(clearLimit); + } + } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostConnectLogQueryRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostConnectLogQueryRequest.java index 5d33a3b6..077b9825 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostConnectLogQueryRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostConnectLogQueryRequest.java @@ -1,10 +1,16 @@ package com.orion.visor.module.asset.entity.request.host; 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 com.orion.visor.framework.common.validator.group.Id; 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; import java.util.List; @@ -24,6 +30,7 @@ import java.util.List; @Schema(name = "HostConnectLogQueryRequest", description = "主机连接日志 查询请求对象") public class HostConnectLogQueryRequest extends PageRequest { + @NotNull(groups = Id.class) @Schema(description = "id") private Long id; @@ -63,4 +70,16 @@ public class HostConnectLogQueryRequest extends PageRequest { @Schema(description = "状态") private List statusList; + @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); + } + } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostCreateRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostCreateRequest.java index 15527c51..af781b15 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostCreateRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostCreateRequest.java @@ -5,8 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Range; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; import java.io.Serializable; @@ -45,7 +46,8 @@ public class HostCreateRequest implements Serializable { @Schema(description = "主机地址") private String address; - @Range(min = 1, max = 65535) + @Min(value = 1) + @Max(value = 65535) @Schema(description = "主机端口") private Integer port; diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostUpdateRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostUpdateRequest.java index 7b7e3b35..e282e0a5 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostUpdateRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/host/HostUpdateRequest.java @@ -5,11 +5,8 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import javax.validation.constraints.*; import java.io.Serializable; import java.util.List; @@ -46,7 +43,9 @@ public class HostUpdateRequest implements Serializable { @Schema(description = "主机地址") private String address; - @Range(min = 1, max = 65535) + @NotNull + @Min(value = 1) + @Max(value = 65535) @Schema(description = "主机端口") private Integer port; diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/upload/UploadTaskQueryRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/upload/UploadTaskQueryRequest.java index ab77d3b4..f572606f 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/upload/UploadTaskQueryRequest.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/entity/request/upload/UploadTaskQueryRequest.java @@ -1,10 +1,15 @@ package com.orion.visor.module.asset.entity.request.upload; 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; @@ -44,4 +49,16 @@ public class UploadTaskQueryRequest extends PageRequest { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date[] createTimeRange; + @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); + } + } diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/config/model/HostSshConfigModel.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/config/model/HostSshConfigModel.java index 485c8cb3..a55bcaa6 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/config/model/HostSshConfigModel.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/handler/host/config/model/HostSshConfigModel.java @@ -6,11 +6,8 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import javax.validation.constraints.*; /** * 主机 SSH 配置 @@ -64,7 +61,8 @@ public class HostSshConfigModel implements GenericsDataModel, UpdatePasswordActi * 连接超时时间 */ @NotNull - @Range(min = 0, max = 100000) + @Min(value = 1) + @Max(value = 100000) private Integer connectTimeout; /** diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/ExecLogServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/ExecLogServiceImpl.java index 835ce5a3..4b36f730 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/ExecLogServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/ExecLogServiceImpl.java @@ -18,6 +18,7 @@ import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.common.constant.FileConst; import com.orion.visor.framework.common.enums.EndpointDefine; import com.orion.visor.framework.common.file.FileClient; +import com.orion.visor.framework.common.utils.SqlUtils; import com.orion.visor.framework.common.utils.Valid; import com.orion.visor.framework.redis.core.utils.RedisStrings; import com.orion.visor.framework.security.core.utils.SecurityUtils; @@ -227,7 +228,8 @@ public class ExecLogServiceImpl implements ExecLogService { log.info("ExecLogService.clearExecLog start {}", JSON.toJSONString(request)); // 查询 LambdaQueryWrapper wrapper = this.buildQueryWrapper(request) - .select(ExecLogDO::getId); + .select(ExecLogDO::getId) + .last(SqlUtils.limit(request.getClearLimit())); List idList = execLogDAO.selectList(wrapper) .stream() .map(ExecLogDO::getId) diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostConnectLogServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostConnectLogServiceImpl.java index bac1b741..0fd59a57 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostConnectLogServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/HostConnectLogServiceImpl.java @@ -8,6 +8,7 @@ import com.orion.lang.utils.collect.Lists; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.common.constant.Const; import com.orion.visor.framework.common.constant.ErrorMessage; +import com.orion.visor.framework.common.utils.SqlUtils; import com.orion.visor.framework.common.utils.Valid; import com.orion.visor.framework.security.core.utils.SecurityUtils; import com.orion.visor.module.asset.convert.HostConnectLogConvert; @@ -26,6 +27,7 @@ import com.orion.visor.module.asset.service.HostConnectLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -167,13 +169,14 @@ public class HostConnectLogServiceImpl implements HostConnectLogService { } @Override + @Transactional(rollbackFor = Exception.class) public Integer deleteHostConnectLog(List idList) { log.info("HostConnectLogService.deleteHostConnectLog start {}", JSON.toJSONString(idList)); if (Lists.isEmpty(idList)) { OperatorLogs.add(OperatorLogs.COUNT, Const.N_0); return Const.N_0; } - // 删除 + // 删除日志表 int effect = hostConnectLogDAO.deleteBatchIds(idList); log.info("HostConnectLogService.deleteHostConnectLog finish {}", effect); // 设置日志参数 @@ -187,11 +190,13 @@ public class HostConnectLogServiceImpl implements HostConnectLogService { } @Override + @Transactional(rollbackFor = Exception.class) public Integer clearHostConnectLog(HostConnectLogQueryRequest request) { log.info("HostConnectLogService.clearHostConnectLog start {}", JSON.toJSONString(request)); // 查询 LambdaQueryWrapper wrapper = this.buildQueryWrapper(request) - .select(HostConnectLogDO::getId); + .select(HostConnectLogDO::getId) + .last(SqlUtils.limit(request.getClearLimit())); List list = hostConnectLogDAO.selectList(wrapper); if (list.isEmpty()) { log.info("HostConnectLogService.clearHostConnectLog empty"); diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/UploadTaskServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/UploadTaskServiceImpl.java index c9cb2353..6c1964e1 100644 --- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/UploadTaskServiceImpl.java +++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/com/orion/visor/module/asset/service/impl/UploadTaskServiceImpl.java @@ -18,6 +18,7 @@ import com.orion.visor.framework.common.constant.ErrorMessage; import com.orion.visor.framework.common.enums.EndpointDefine; import com.orion.visor.framework.common.file.FileClient; import com.orion.visor.framework.common.security.LoginUser; +import com.orion.visor.framework.common.utils.SqlUtils; import com.orion.visor.framework.common.utils.Valid; import com.orion.visor.framework.mybatis.core.query.Conditions; import com.orion.visor.framework.security.core.utils.SecurityUtils; @@ -226,7 +227,8 @@ public class UploadTaskServiceImpl implements UploadTaskService { public Integer clearUploadTask(UploadTaskQueryRequest request) { // 查询id LambdaQueryWrapper wrapper = this.buildQueryWrapper(request) - .select(UploadTaskDO::getId); + .select(UploadTaskDO::getId) + .last(SqlUtils.limit(request.getClearLimit())); List idList = uploadTaskDAO.of(wrapper) .list(UploadTaskDO::getId); // 删除 diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/OperatorLogController.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/OperatorLogController.java index f9e72eb4..1970a1cb 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/OperatorLogController.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/controller/OperatorLogController.java @@ -2,6 +2,7 @@ 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; @@ -67,7 +68,7 @@ public class OperatorLogController { @PostMapping("/clear") @Operation(summary = "清空操作日志") @PreAuthorize("@ss.hasPermission('infra:operator-log:management:clear')") - public Integer clearOperatorLog(@RequestBody OperatorLogQueryRequest request) { + public Integer clearOperatorLog(@Validated(Clear.class) @RequestBody OperatorLogQueryRequest request) { return operatorLogService.clearOperatorLog(request); } diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/exoression/CronNextRequest.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/exoression/CronNextRequest.java index a8c2e093..35bf2c83 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/exoression/CronNextRequest.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/exoression/CronNextRequest.java @@ -5,8 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Range; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -30,7 +31,8 @@ public class CronNextRequest implements Serializable { private String expression; @NotNull - @Range(min = 1, max = 100) + @Min(value = 1) + @Max(value = 100) @Schema(description = "次数") private Integer times; diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/operator/OperatorLogQueryRequest.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/operator/OperatorLogQueryRequest.java index c8466c76..6176ef5b 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/operator/OperatorLogQueryRequest.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/entity/request/operator/OperatorLogQueryRequest.java @@ -1,10 +1,15 @@ 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; @@ -48,4 +53,16 @@ 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); + } + } diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/OperatorLogServiceImpl.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/OperatorLogServiceImpl.java index 37fe8062..7dedd02c 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/OperatorLogServiceImpl.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/com/orion/visor/module/infra/service/impl/OperatorLogServiceImpl.java @@ -8,6 +8,7 @@ import com.orion.lang.utils.Valid; import com.orion.visor.framework.biz.operator.log.core.model.OperatorLogModel; import com.orion.visor.framework.biz.operator.log.core.utils.OperatorLogs; import com.orion.visor.framework.common.constant.ErrorMessage; +import com.orion.visor.framework.common.utils.SqlUtils; 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; @@ -72,8 +73,10 @@ public class OperatorLogServiceImpl implements OperatorLogService { @Override public Integer clearOperatorLog(OperatorLogQueryRequest request) { log.info("OperatorLogService.clearOperatorLog start {}", JSON.toJSONString(request)); - // 删除 + // 删除参数 LambdaQueryWrapper wrapper = this.buildQueryWrapper(request); + wrapper.last(SqlUtils.limit(request.getClearLimit())); + // 删除 int effect = operatorLogDAO.delete(wrapper); log.info("OperatorLogService.clearOperatorLog finish {}", effect); // 设置日志参数 diff --git a/orion-visor-ui/src/api/asset/host-connect-log.ts b/orion-visor-ui/src/api/asset/host-connect-log.ts index 38f2d4d9..6b14c528 100644 --- a/orion-visor-ui/src/api/asset/host-connect-log.ts +++ b/orion-visor-ui/src/api/asset/host-connect-log.ts @@ -15,6 +15,7 @@ export interface HostConnectLogQueryRequest extends Pagination { token?: string; status?: string; startTimeRange?: string[]; + clearLimit?: number; } /** diff --git a/orion-visor-ui/src/api/exec/exec-log.ts b/orion-visor-ui/src/api/exec/exec-log.ts index bd15063b..39fcca37 100644 --- a/orion-visor-ui/src/api/exec/exec-log.ts +++ b/orion-visor-ui/src/api/exec/exec-log.ts @@ -13,6 +13,7 @@ export interface ExecLogQueryRequest extends Pagination { command?: string; status?: string; startTimeRange?: string[]; + clearLimit?: number; } /** diff --git a/orion-visor-ui/src/api/exec/upload-task.ts b/orion-visor-ui/src/api/exec/upload-task.ts index 6801b6ce..1eecc851 100644 --- a/orion-visor-ui/src/api/exec/upload-task.ts +++ b/orion-visor-ui/src/api/exec/upload-task.ts @@ -40,6 +40,7 @@ export interface UploadTaskQueryRequest extends Pagination { description?: string; status?: string; createTimeRange?: string[]; + clearLimit?: number; } /** diff --git a/orion-visor-ui/src/api/user/operator-log.ts b/orion-visor-ui/src/api/user/operator-log.ts index a1e652d7..850792b5 100644 --- a/orion-visor-ui/src/api/user/operator-log.ts +++ b/orion-visor-ui/src/api/user/operator-log.ts @@ -13,6 +13,7 @@ export interface OperatorLogQueryRequest extends Pagination { riskLevel?: string; result?: number; startTimeRange?: string[]; + clearLimit?: number; } /** diff --git a/orion-visor-ui/src/components/exec/log/panel/log-item.vue b/orion-visor-ui/src/components/exec/log/panel/log-item.vue index 4ea0ff37..a9d809a9 100644 --- a/orion-visor-ui/src/components/exec/log/panel/log-item.vue +++ b/orion-visor-ui/src/components/exec/log/panel/log-item.vue @@ -222,7 +222,7 @@ // 下载计划任务日志 fileGetter = downloadExecJobLogFile(id); } - // 瞎子啊 + // 下载 const data = await fileGetter; downloadFile(data); }; diff --git a/orion-visor-ui/src/views/asset-audit/connect-log/components/connect-log-clear-modal.vue b/orion-visor-ui/src/views/asset-audit/connect-log/components/connect-log-clear-modal.vue index f2a2060d..c04f6e33 100644 --- a/orion-visor-ui/src/views/asset-audit/connect-log/components/connect-log-clear-modal.vue +++ b/orion-visor-ui/src/views/asset-audit/connect-log/components/connect-log-clear-modal.vue @@ -55,6 +55,15 @@ :options="toOptions(connectTypeKey)" allow-clear /> + + + + @@ -71,7 +80,7 @@ import { ref } from 'vue'; import useLoading from '@/hooks/loading'; import useVisible from '@/hooks/visible'; - import { connectStatusKey, connectTypeKey } from '../types/const'; + import { connectStatusKey, connectTypeKey, clearLimit } from '../types/const'; import { getHostConnectLogCount, clearHostConnectLog } from '@/api/asset/host-connect-log'; import { Message, Modal } from '@arco-design/web-vue'; import { useDictStore } from '@/store'; @@ -92,6 +101,7 @@ type: undefined, status: undefined, startTimeRange: undefined, + clearLimit, }; }; @@ -112,6 +122,10 @@ // 确定 const handlerOk = async () => { + if (!formModel.value.clearLimit) { + Message.error('请输入清理数量'); + return false; + } setLoading(true); try { // 获取总数量 @@ -134,7 +148,7 @@ const doClear = (count: number) => { Modal.confirm({ title: '删除清空', - content: `确定要删除 ${count} 条数据吗? 确定后将立即删除且无法恢复!`, + content: `确定要删除 ${Math.min(count, formModel.value.clearLimit || 0)} 条数据吗? 确定后将立即删除且无法恢复!`, onOk: async () => { setLoading(true); try { diff --git a/orion-visor-ui/src/views/asset-audit/connect-log/types/const.ts b/orion-visor-ui/src/views/asset-audit/connect-log/types/const.ts index e7fff782..69be99e0 100644 --- a/orion-visor-ui/src/views/asset-audit/connect-log/types/const.ts +++ b/orion-visor-ui/src/views/asset-audit/connect-log/types/const.ts @@ -12,6 +12,9 @@ export const HostConnectStatus = { FORCE_OFFLINE: 'FORCE_OFFLINE', }; +// 清理数量 +export const clearLimit = 2000; + // 主机连接状态 字典项 export const connectStatusKey = 'hostConnectStatus'; diff --git a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-clear-modal.vue b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-clear-modal.vue index d1c4842f..026cebb1 100644 --- a/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-clear-modal.vue +++ b/orion-visor-ui/src/views/exec/exec-command-log/components/exec-command-log-clear-modal.vue @@ -48,6 +48,15 @@ :options="toOptions(execStatusKey)" placeholder="请选择执行状态" /> + + + + @@ -68,6 +77,7 @@ import { getExecCommandLogCount, clearExecCommandLog } from '@/api/exec/exec-command-log'; import { Message, Modal } from '@arco-design/web-vue'; import { useDictStore } from '@/store'; + import { clearLimit } from '../types/const'; import UserSelector from '@/components/user/user/selector/index.vue'; const emits = defineEmits(['clear']); @@ -86,7 +96,8 @@ description: undefined, command: undefined, status: undefined, - startTimeRange: undefined + startTimeRange: undefined, + clearLimit, }; }; @@ -105,6 +116,10 @@ // 确定 const handlerOk = async () => { + if (!formModel.value.clearLimit) { + Message.error('请输入清理数量'); + return false; + } setLoading(true); try { // 获取总数量 @@ -127,7 +142,7 @@ const doClear = (count: number) => { Modal.confirm({ title: '删除清空', - content: `确定要删除 ${count} 条数据吗? 确定后将立即删除且无法恢复!`, + content: `确定要删除 ${Math.min(count, formModel.value.clearLimit || 0)} 条数据吗? 确定后将立即删除且无法恢复!`, onOk: async () => { setLoading(true); try { diff --git a/orion-visor-ui/src/views/exec/exec-command-log/types/const.ts b/orion-visor-ui/src/views/exec/exec-command-log/types/const.ts index e69de29b..b5aa01d8 100644 --- a/orion-visor-ui/src/views/exec/exec-command-log/types/const.ts +++ b/orion-visor-ui/src/views/exec/exec-command-log/types/const.ts @@ -0,0 +1,2 @@ +// 清理数量 +export const clearLimit = 1000; diff --git a/orion-visor-ui/src/views/exec/upload-task/components/upload-task-clear-modal.vue b/orion-visor-ui/src/views/exec/upload-task/components/upload-task-clear-modal.vue index 56249106..70d2191e 100644 --- a/orion-visor-ui/src/views/exec/upload-task/components/upload-task-clear-modal.vue +++ b/orion-visor-ui/src/views/exec/upload-task/components/upload-task-clear-modal.vue @@ -49,6 +49,15 @@ placeholder="请选择状态" allow-clear /> + + + + @@ -65,7 +74,7 @@ import { ref } from 'vue'; import useLoading from '@/hooks/loading'; import useVisible from '@/hooks/visible'; - import { uploadTaskStatusKey } from '../types/const'; + import { clearLimit, uploadTaskStatusKey } from '../types/const'; import { getUploadTaskCount, clearUploadTask } from '@/api/exec/upload-task'; import { Message, Modal } from '@arco-design/web-vue'; import { useDictStore } from '@/store'; @@ -105,6 +114,10 @@ // 确定 const handlerOk = async () => { + if (!formModel.value.clearLimit) { + Message.error('请输入清理数量'); + return false; + } setLoading(true); try { // 获取总数量 @@ -127,7 +140,7 @@ const doClear = (count: number) => { Modal.confirm({ title: '删除清空', - content: `确定要删除 ${count} 条数据吗? 确定后将立即删除且无法恢复!`, + content: `确定要删除 ${Math.min(count, formModel.value.clearLimit || 0)} 条数据吗? 确定后将立即删除且无法恢复!`, onOk: async () => { setLoading(true); try { diff --git a/orion-visor-ui/src/views/exec/upload-task/types/const.ts b/orion-visor-ui/src/views/exec/upload-task/types/const.ts index eb24662c..94cab063 100644 --- a/orion-visor-ui/src/views/exec/upload-task/types/const.ts +++ b/orion-visor-ui/src/views/exec/upload-task/types/const.ts @@ -26,6 +26,9 @@ export const UploadTaskFileStatus = { CANCELED: 'CANCELED', }; +// 清理数量 +export const clearLimit = 2000; + // 上传任务状态 字典项 export const uploadTaskStatusKey = 'uploadTaskStatus'; diff --git a/orion-visor-ui/src/views/job/exec-job-log/components/exec-job-log-clear-modal.vue b/orion-visor-ui/src/views/job/exec-job-log/components/exec-job-log-clear-modal.vue index 055d42e7..af839ae7 100644 --- a/orion-visor-ui/src/views/job/exec-job-log/components/exec-job-log-clear-modal.vue +++ b/orion-visor-ui/src/views/job/exec-job-log/components/exec-job-log-clear-modal.vue @@ -43,6 +43,15 @@ :options="toOptions(execStatusKey)" placeholder="请选择执行状态" /> + + + + @@ -63,6 +72,7 @@ import { getExecJobLogCount, clearExecJobLog } from '@/api/job/exec-job-log'; import { Message, Modal } from '@arco-design/web-vue'; import { useDictStore } from '@/store'; + import { clearLimit } from '../types/const'; import ExecJobSelector from '@/components/exec/job/selector/index.vue'; const emits = defineEmits(['clear']); @@ -81,7 +91,8 @@ description: undefined, command: undefined, status: undefined, - startTimeRange: undefined + startTimeRange: undefined, + clearLimit, }; }; @@ -100,6 +111,10 @@ // 确定 const handlerOk = async () => { + if (!formModel.value.clearLimit) { + Message.error('请输入清理数量'); + return false; + } setLoading(true); try { // 获取总数量 @@ -122,7 +137,7 @@ const doClear = (count: number) => { Modal.confirm({ title: '删除清空', - content: `确定要删除 ${count} 条数据吗? 确定后将立即删除且无法恢复!`, + content: `确定要删除 ${Math.min(count, formModel.value.clearLimit || 0)} 条数据吗? 确定后将立即删除且无法恢复!`, onOk: async () => { setLoading(true); try { diff --git a/orion-visor-ui/src/views/job/exec-job-log/types/const.ts b/orion-visor-ui/src/views/job/exec-job-log/types/const.ts index e69de29b..b5aa01d8 100644 --- a/orion-visor-ui/src/views/job/exec-job-log/types/const.ts +++ b/orion-visor-ui/src/views/job/exec-job-log/types/const.ts @@ -0,0 +1,2 @@ +// 清理数量 +export const clearLimit = 1000; diff --git a/orion-visor-ui/src/views/user/operator-log/components/operator-log-clear-modal.vue b/orion-visor-ui/src/views/user/operator-log/components/operator-log-clear-modal.vue index 8d4af630..0c97e97a 100644 --- a/orion-visor-ui/src/views/user/operator-log/components/operator-log-clear-modal.vue +++ b/orion-visor-ui/src/views/user/operator-log/components/operator-log-clear-modal.vue @@ -61,6 +61,15 @@ placeholder="请选择执行结果" allow-clear /> + + + + @@ -81,7 +90,7 @@ import { getOperatorLogCount, clearOperatorLog } from '@/api/user/operator-log'; import { Message, Modal } from '@arco-design/web-vue'; import { useDictStore } from '@/store'; - import { operatorLogModuleKey, operatorLogResultKey, operatorLogTypeKey, operatorRiskLevelKey } from '@/views/user/operator-log/types/const'; + import { operatorLogModuleKey, operatorLogResultKey, operatorLogTypeKey, operatorRiskLevelKey, clearLimit } from '../types/const'; import { labelFilter } from '@/types/form'; import UserSelector from '@/components/user/user/selector/index.vue'; @@ -96,6 +105,7 @@ riskLevel: undefined, result: undefined, startTimeRange: undefined, + clearLimit, }; }; @@ -136,6 +146,10 @@ // 确定 const handlerOk = async () => { + if (!formModel.value.clearLimit) { + Message.error('请输入清理数量'); + return false; + } setLoading(true); try { // 获取总数量 @@ -158,7 +172,7 @@ const doClear = (count: number) => { Modal.confirm({ title: '删除清空', - content: `确定要删除 ${count} 条数据吗? 确定后将立即删除且无法恢复!`, + content: `确定要删除 ${Math.min(count, formModel.value.clearLimit || 0)} 条数据吗? 确定后将立即删除且无法恢复!`, onOk: async () => { setLoading(true); try { diff --git a/orion-visor-ui/src/views/user/operator-log/types/const.ts b/orion-visor-ui/src/views/user/operator-log/types/const.ts index f37780b4..63247bdd 100644 --- a/orion-visor-ui/src/views/user/operator-log/types/const.ts +++ b/orion-visor-ui/src/views/user/operator-log/types/const.ts @@ -27,6 +27,9 @@ export const getLogDetail = (record: OperatorLogQueryResponse): Record