mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	调整登陆日志表结构,开始迁移
This commit is contained in:
		| @@ -10,7 +10,7 @@ import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEn | ||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; | ||||
| import cn.iocoder.dashboard.framework.security.core.util.SecurityUtils; | ||||
| import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.util.servlet.ServletUtils; | ||||
| import com.alibaba.fastjson.JSON; | ||||
| import com.google.common.collect.Maps; | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| package cn.iocoder.dashboard.framework.logger.operatelog.core.service; | ||||
|  | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | ||||
|  | ||||
| public interface OperateLogFrameworkService { | ||||
|  | ||||
|   | ||||
| @@ -6,10 +6,10 @@ import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; | ||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; | ||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; | ||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.util.OperateLogUtils; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExcelVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO; | ||||
| import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; | ||||
|   | ||||
| @@ -0,0 +1,47 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog; | ||||
|  | ||||
| import io.swagger.annotations.ApiModelProperty; | ||||
| import lombok.Data; | ||||
|  | ||||
| import javax.validation.constraints.NotBlank; | ||||
| import javax.validation.constraints.NotEmpty; | ||||
| import javax.validation.constraints.NotNull; | ||||
| import javax.validation.constraints.Size; | ||||
|  | ||||
| /** | ||||
|  * 登陆日志 Base VO,提供给添加、修改、详细的子 VO 使用 | ||||
|  * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||||
|  */ | ||||
| @Data | ||||
| public class SysLoginLogBaseVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab") | ||||
|     @NotEmpty(message = "链路追踪编号不能为空") | ||||
|     private String traceId; | ||||
|  | ||||
|     @ApiModelProperty(value = "用户编号", required = true, example = "1024") | ||||
|     @NotNull(message = "用户编号不能为空") | ||||
|     private Long userId; | ||||
|  | ||||
|     @ApiModelProperty(value = "用户账号", required = true, example = "yudao") | ||||
|     @NotBlank(message = "用户账号不能为空") | ||||
|     @Size(max = 30, message = "用户账号长度不能超过30个字符") | ||||
|     private String username; | ||||
|  | ||||
|  | ||||
|     @ApiModelProperty(value = "登陆结果", required = true, example = "1", notes = "参见 SysLoginResultEnum 枚举类") | ||||
|     @NotNull(message = "登陆结果不能为空") | ||||
|     private Integer result; | ||||
|  | ||||
|     @ApiModelProperty(value = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。") | ||||
|     private String content; | ||||
|  | ||||
|     @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1") | ||||
|     @NotEmpty(message = "用户 IP 不能为空") | ||||
|     private String userIp; | ||||
|  | ||||
|     @ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0") | ||||
|     @NotEmpty(message = "浏览器 UserAgent 不能为空") | ||||
|     private String userAgent; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,15 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog; | ||||
|  | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | ||||
| import io.swagger.annotations.ApiModel; | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import lombok.ToString; | ||||
|  | ||||
| @ApiModel(value = "登陆日志创建 Request VO", | ||||
|         description = "暂时提供给前端,仅仅后端记录登陆日志时,进行使用") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class SysLoginLogCreateReqVO extends SysOperateLogCreateReqVO { | ||||
| } | ||||
| @@ -0,0 +1,39 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog; | ||||
|  | ||||
| import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; | ||||
| import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert; | ||||
| import cn.iocoder.dashboard.modules.system.enums.dict.DictTypeEnum; | ||||
| import com.alibaba.excel.annotation.ExcelProperty; | ||||
| import lombok.Data; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * 登陆日志 Excel 导出响应 VO | ||||
|  */ | ||||
| @Data | ||||
| public class SysLoginLogExcelVO { | ||||
|  | ||||
|     @ExcelProperty("日志主键") | ||||
|     private Long id; | ||||
|  | ||||
|     @ExcelProperty("用户编号") | ||||
|     private Long userId; | ||||
|  | ||||
|     @ExcelProperty("用户账号") | ||||
|     private String username; | ||||
|  | ||||
|     @ExcelProperty(value = "登陆结果", converter = DictConvert.class) | ||||
|     @DictFormat(DictTypeEnum.SYS_LOGIN_RESULT) | ||||
|     private Integer result; | ||||
|  | ||||
|     @ExcelProperty("登陆 IP") | ||||
|     private String userIp; | ||||
|  | ||||
|     @ExcelProperty("浏览器 UA") | ||||
|     private String userAgent; | ||||
|  | ||||
|     @ExcelProperty("登陆时间") | ||||
|     private Date createTime; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,23 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog; | ||||
|  | ||||
| import io.swagger.annotations.ApiModel; | ||||
| import io.swagger.annotations.ApiModelProperty; | ||||
| import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | ||||
| import lombok.ToString; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| @ApiModel("操作日志 Response VO") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class SysLoginLogRespVO extends SysLoginLogBaseVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "日志编号", required = true, example = "1024") | ||||
|     private Long id; | ||||
|  | ||||
|     @ApiModelProperty(value = "登陆时间", required = true) | ||||
|     private Date createTime; | ||||
|  | ||||
| } | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import io.swagger.annotations.ApiModelProperty; | ||||
| import lombok.Data; | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import io.swagger.annotations.ApiModel; | ||||
| import lombok.Data; | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; | ||||
| import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert; | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import io.swagger.annotations.ApiModel; | ||||
| import io.swagger.annotations.ApiModelProperty; | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import cn.iocoder.dashboard.common.pojo.PageParam; | ||||
| import io.swagger.annotations.ApiModel; | ||||
| @@ -1,4 +1,4 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; | ||||
| 
 | ||||
| import io.swagger.annotations.ApiModel; | ||||
| import io.swagger.annotations.ApiModelProperty; | ||||
| @@ -1 +0,0 @@ | ||||
| package cn.iocoder.dashboard.modules.system.controller.logger.vo; | ||||
| @@ -1,9 +1,9 @@ | ||||
| package cn.iocoder.dashboard.modules.system.convert.logger; | ||||
|  | ||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExcelVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; | ||||
| import cn.iocoder.dashboard.util.collection.MapUtils; | ||||
|   | ||||
| @@ -4,8 +4,8 @@ import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants; | ||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | ||||
| import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; | ||||
| import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||
| import org.apache.ibatis.annotations.Mapper; | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,53 @@ | ||||
| package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger; | ||||
|  | ||||
| import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; | ||||
| import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginResultEnum; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
|  | ||||
| /** | ||||
|  * 系统访问记录表 | ||||
|  * | ||||
|  * @author ruoyi | ||||
|  */ | ||||
| @TableName("用户登陆日志") | ||||
| public class SysLoginLogDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 日志主键 | ||||
|      */ | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 链路追踪编号 | ||||
|      */ | ||||
|     private String traceId; | ||||
|     /** | ||||
|      * 用户编号 | ||||
|      * | ||||
|      * 外键 {@link SysUserDO#getId()} | ||||
|      */ | ||||
|     private Long userId; | ||||
|     /** | ||||
|      * 用户账号 | ||||
|      * | ||||
|      * 冗余,因为账号可以变更 | ||||
|      */ | ||||
|     private String username; | ||||
|     /** | ||||
|      * 登陆结果 | ||||
|      * | ||||
|      * 枚举 {@link SysLoginResultEnum} | ||||
|      */ | ||||
|     private Integer result; | ||||
|  | ||||
|     /** | ||||
|      * 用户 IP | ||||
|      */ | ||||
|     private String userIp; | ||||
|  | ||||
|     /** | ||||
|      * 浏览器 UA | ||||
|      */ | ||||
|     private String userAgent; | ||||
|  | ||||
| } | ||||
| @@ -13,6 +13,7 @@ public enum DictTypeEnum { | ||||
|     SYS_USER_SEX("sys_user_sex"), // 用户性别 | ||||
|     SYS_COMMON_STATUS("sys_common_status"), // 系统状态 | ||||
|     SYS_OPERATE_TYPE("sys_operate_type"), // 操作类型 | ||||
|     SYS_LOGIN_RESULT("sys_login_result"), // 登陆结果 | ||||
|     ; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,21 @@ | ||||
| package cn.iocoder.dashboard.modules.system.enums.logger; | ||||
|  | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Getter; | ||||
|  | ||||
| /** | ||||
|  * 登陆结果的枚举类 | ||||
|  */ | ||||
| @Getter | ||||
| @AllArgsConstructor | ||||
| public enum SysLoginResultEnum { | ||||
|  | ||||
|     SUCCESS(0), // 成功 | ||||
|     ; | ||||
|  | ||||
|     /** | ||||
|      * 结果 | ||||
|      */ | ||||
|     private final Integer result; | ||||
|  | ||||
| } | ||||
| @@ -2,8 +2,8 @@ package cn.iocoder.dashboard.modules.system.service.logger; | ||||
|  | ||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | ||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||
|  | ||||
| import java.util.List; | ||||
|   | ||||
| @@ -3,9 +3,9 @@ package cn.iocoder.dashboard.modules.system.service.logger.impl; | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||
| import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dao.logger.SysOperateLogMapper; | ||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV