feat:设备日志模块
This commit is contained in:
1 parent
41fa28775b
commit
06330260e5
18 files changed
+1217
-5
No files matched your search
+47
@@ -0,0 +1,47 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 终端日志管理端查询条件。
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "终端日志文件查询条件")
|
||||
public class HardTerminalLogFileQueryDto {
|
||||
|
||||
@Schema(description = "设备ID")
|
||||
private Long hardId;
|
||||
|
||||
@Schema(description = "设备名称")
|
||||
private String hardName;
|
||||
|
||||
@Schema(description = "设备唯一编号")
|
||||
private String uniqueCode;
|
||||
|
||||
@Schema(description = "商户ID")
|
||||
private Long merchantId;
|
||||
|
||||
@Schema(description = "部门ID")
|
||||
private Long deptId;
|
||||
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
||||
@Schema(description = "日志日期开始")
|
||||
private LocalDate logDateStart;
|
||||
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
||||
@Schema(description = "日志日期结束")
|
||||
private LocalDate logDateEnd;
|
||||
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
|
||||
@Schema(description = "上传时间开始")
|
||||
private LocalDateTime uploadTimeStart;
|
||||
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
|
||||
@Schema(description = "上传时间结束")
|
||||
private LocalDateTime uploadTimeEnd;
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 终端日志上传预检参数。
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "终端日志上传预检参数")
|
||||
public class HardTerminalLogPreflightDto {
|
||||
|
||||
@NotBlank(message = "日志相对路径不能为空")
|
||||
@Size(max = 255, message = "日志相对路径不能超过255个字符")
|
||||
@Schema(description = "终端日志根目录下的相对路径")
|
||||
private String relativePath;
|
||||
|
||||
@NotNull(message = "文件大小不能为空")
|
||||
@Min(value = 0, message = "文件大小不能小于0")
|
||||
@Schema(description = "脱敏文件大小")
|
||||
private Long fileSize;
|
||||
|
||||
@NotBlank(message = "文件哈希不能为空")
|
||||
@Pattern(regexp = "(?i)^[0-9a-f]{32}$", message = "文件哈希必须为32位MD5")
|
||||
@Schema(description = "脱敏文件MD5")
|
||||
private String fileHash;
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.bsd.pjcloud.hard.api.dto.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 终端日志上传元数据。设备快照由服务端根据请求头中的设备ID填充。
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "终端日志上传元数据")
|
||||
public class HardTerminalLogUploadDto {
|
||||
|
||||
@NotBlank(message = "日志相对路径不能为空")
|
||||
@Size(max = 255, message = "日志相对路径不能超过255个字符")
|
||||
@Schema(description = "终端日志根目录下的相对路径")
|
||||
private String relativePath;
|
||||
|
||||
@NotNull(message = "日志日期不能为空")
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
||||
@Schema(description = "日志所属日期")
|
||||
private LocalDate logDate;
|
||||
|
||||
@NotNull(message = "本地修改时间不能为空")
|
||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
|
||||
@Schema(description = "终端本地文件最后修改时间")
|
||||
private LocalDateTime fileModifiedTime;
|
||||
|
||||
@Size(max = 64, message = "应用版本不能超过64个字符")
|
||||
@Schema(description = "应用版本")
|
||||
private String appVersion;
|
||||
|
||||
@NotBlank(message = "脱敏规则版本不能为空")
|
||||
@Size(max = 32, message = "脱敏规则版本不能超过32个字符")
|
||||
@Schema(description = "脱敏规则版本")
|
||||
private String sanitizeVersion;
|
||||
}
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
package com.bsd.pjcloud.hard.api.entity.manager;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 终端日志文件
|
||||
*/
|
||||
@Data
|
||||
@TenantTable
|
||||
@TableName("hard_terminal_log_file")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Schema(description = "终端日志文件")
|
||||
public class HardTerminalLogFileEntity extends Model<HardTerminalLogFileEntity> {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId(type = IdType.AUTO)
|
||||
@Schema(description = "编号")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 设备ID(hard_manager.id)
|
||||
*/
|
||||
@Schema(description = "设备ID(hard_manager.id)")
|
||||
private Long hardId;
|
||||
|
||||
/**
|
||||
* 上传时设备名称快照
|
||||
*/
|
||||
@Schema(description = "上传时设备名称快照")
|
||||
private String hardName;
|
||||
|
||||
/**
|
||||
* 上传时设备唯一编号快照
|
||||
*/
|
||||
@Schema(description = "上传时设备唯一编号快照")
|
||||
private String uniqueCode;
|
||||
|
||||
/**
|
||||
* 上传时设备类型快照
|
||||
*/
|
||||
@Schema(description = "上传时设备类型快照")
|
||||
private String hardType;
|
||||
|
||||
/**
|
||||
* 上传时商户ID快照
|
||||
*/
|
||||
@Schema(description = "上传时商户ID快照")
|
||||
private Long merchantId;
|
||||
|
||||
/**
|
||||
* 上传时部门ID快照
|
||||
*/
|
||||
@Schema(description = "上传时部门ID快照")
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 日志所属日期
|
||||
*/
|
||||
@Schema(description = "日志所属日期")
|
||||
private LocalDate logDate;
|
||||
|
||||
/**
|
||||
* 终端日志根目录下的相对路径
|
||||
*/
|
||||
@Schema(description = "终端日志根目录下的相对路径")
|
||||
private String relativePath;
|
||||
|
||||
/**
|
||||
* 原日志文件名
|
||||
*/
|
||||
@Schema(description = "原日志文件名")
|
||||
private String originalName;
|
||||
|
||||
/**
|
||||
* 文件大小(字节)
|
||||
*/
|
||||
@Schema(description = "文件大小(字节)")
|
||||
private Long fileSize;
|
||||
|
||||
/**
|
||||
* 文件内容哈希(当前使用MD5)
|
||||
*/
|
||||
@Schema(description = "文件内容哈希(当前使用MD5)")
|
||||
private String fileHash;
|
||||
|
||||
/**
|
||||
* 终端本地文件最后修改时间
|
||||
*/
|
||||
@Schema(description = "终端本地文件最后修改时间")
|
||||
private LocalDateTime fileModifiedTime;
|
||||
|
||||
/**
|
||||
* 文件中心sys_file记录ID
|
||||
*/
|
||||
@Schema(description = "文件中心sys_file记录ID")
|
||||
private Long sysFileId;
|
||||
|
||||
/**
|
||||
* OSS对象文件名
|
||||
*/
|
||||
@Schema(description = "OSS对象文件名")
|
||||
private String storageFileName;
|
||||
|
||||
/**
|
||||
* 文件访问相对地址
|
||||
*/
|
||||
@Schema(description = "文件访问相对地址")
|
||||
private String storageUrl;
|
||||
|
||||
/**
|
||||
* 上传时应用版本
|
||||
*/
|
||||
@Schema(description = "上传时应用版本")
|
||||
private String appVersion;
|
||||
|
||||
/**
|
||||
* 日志脱敏规则版本
|
||||
*/
|
||||
@Schema(description = "日志脱敏规则版本")
|
||||
private String sanitizeVersion;
|
||||
|
||||
/**
|
||||
* 最近成功上传时间
|
||||
*/
|
||||
@Schema(description = "最近成功上传时间")
|
||||
private LocalDateTime uploadTime;
|
||||
|
||||
/**
|
||||
* 成功上传次数
|
||||
*/
|
||||
@Schema(description = "成功上传次数")
|
||||
private Integer uploadCount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@Schema(description = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@Schema(description = "修改人")
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@Schema(description = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 删除标记
|
||||
*/
|
||||
@TableLogic
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@Schema(description = "删除标记")
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
@Schema(description = "租户ID")
|
||||
private Long tenantId;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 终端日志设备聚合摘要。
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "终端日志设备摘要")
|
||||
public class HardTerminalLogDeviceVo {
|
||||
|
||||
private Long hardId;
|
||||
private String hardName;
|
||||
private String uniqueCode;
|
||||
private String hardType;
|
||||
private Long merchantId;
|
||||
private Long deptId;
|
||||
private Long fileCount;
|
||||
private LocalDateTime latestUploadTime;
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 终端日志文件树节点。
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "终端日志文件树节点")
|
||||
public class HardTerminalLogFileTreeVo {
|
||||
|
||||
private String key;
|
||||
private String label;
|
||||
private String relativePath;
|
||||
private Boolean directory;
|
||||
private Long fileId;
|
||||
private Long fileSize;
|
||||
private LocalDate logDate;
|
||||
private LocalDateTime uploadTime;
|
||||
private List<HardTerminalLogFileTreeVo> children = new ArrayList<>();
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 终端日志上传预检结果。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@Schema(description = "终端日志上传预检结果")
|
||||
public class HardTerminalLogPreflightVo {
|
||||
|
||||
private Long id;
|
||||
private Boolean needUpload;
|
||||
private String normalizedPath;
|
||||
private String message;
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 终端日志尾部预览。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@Schema(description = "终端日志预览")
|
||||
public class HardTerminalLogPreviewVo {
|
||||
|
||||
private Long id;
|
||||
private String originalName;
|
||||
private String relativePath;
|
||||
private String content;
|
||||
private Integer lineCount;
|
||||
private Long fileSize;
|
||||
private Boolean truncated;
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.bsd.pjcloud.hard.api.vo.manager;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 终端日志上传结果。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@Schema(description = "终端日志上传结果")
|
||||
public class HardTerminalLogUploadResultVo {
|
||||
|
||||
private Long id;
|
||||
private Boolean uploaded;
|
||||
private Boolean changed;
|
||||
private String relativePath;
|
||||
private Integer uploadCount;
|
||||
private String message;
|
||||
}
|
||||
Reference in new issue
Block a user