Commit cbb11986b4922e817af7a96a59af59d147764b7f

Authored by YunaiV
1 parent e330bf0f

调整登陆日志表结构,开始迁移

Showing 26 changed files with 222 additions and 251 deletions
ruoyi-admin/pom.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <parent>  
6 - <artifactId>ruoyi</artifactId>  
7 - <groupId>com.ruoyi</groupId>  
8 - <version>3.3.0</version>  
9 - </parent>  
10 - <modelVersion>4.0.0</modelVersion>  
11 - <packaging>jar</packaging>  
12 - <artifactId>ruoyi-admin</artifactId>  
13 -  
14 - <description>  
15 - web服务入口  
16 - </description>  
17 -  
18 - <dependencies>  
19 -  
20 - <!-- spring-boot-devtools -->  
21 - <dependency>  
22 - <groupId>org.springframework.boot</groupId>  
23 - <artifactId>spring-boot-devtools</artifactId>  
24 - <optional>true</optional> <!-- 表示依赖不会传递 -->  
25 - </dependency>  
26 -  
27 - <!-- swagger2-->  
28 - <dependency>  
29 - <groupId>io.springfox</groupId>  
30 - <artifactId>springfox-swagger2</artifactId>  
31 - </dependency>  
32 -  
33 - <!--防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本-->  
34 - <dependency>  
35 - <groupId>io.swagger</groupId>  
36 - <artifactId>swagger-annotations</artifactId>  
37 - <version>1.5.21</version>  
38 - </dependency>  
39 -  
40 - <dependency>  
41 - <groupId>io.swagger</groupId>  
42 - <artifactId>swagger-models</artifactId>  
43 - <version>1.5.21</version>  
44 - </dependency>  
45 -  
46 - <!-- swagger2-UI-->  
47 - <dependency>  
48 - <groupId>io.springfox</groupId>  
49 - <artifactId>springfox-swagger-ui</artifactId>  
50 - </dependency>  
51 -  
52 - <!-- Mysql驱动包 -->  
53 - <dependency>  
54 - <groupId>mysql</groupId>  
55 - <artifactId>mysql-connector-java</artifactId>  
56 - </dependency>  
57 -  
58 - <!-- 核心模块-->  
59 - <dependency>  
60 - <groupId>com.ruoyi</groupId>  
61 - <artifactId>ruoyi-framework</artifactId>  
62 - </dependency>  
63 -  
64 - <!-- 定时任务-->  
65 - <dependency>  
66 - <groupId>com.ruoyi</groupId>  
67 - <artifactId>ruoyi-quartz</artifactId>  
68 - </dependency>  
69 -  
70 - <!-- 代码生成-->  
71 - <dependency>  
72 - <groupId>com.ruoyi</groupId>  
73 - <artifactId>ruoyi-generator</artifactId>  
74 - </dependency>  
75 -  
76 - </dependencies>  
77 -  
78 - <build>  
79 - <plugins>  
80 - <plugin>  
81 - <groupId>org.springframework.boot</groupId>  
82 - <artifactId>spring-boot-maven-plugin</artifactId>  
83 - <version>2.1.1.RELEASE</version>  
84 - <configuration>  
85 - <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->  
86 - </configuration>  
87 - <executions>  
88 - <execution>  
89 - <goals>  
90 - <goal>repackage</goal>  
91 - </goals>  
92 - </execution>  
93 - </executions>  
94 - </plugin>  
95 - <plugin>  
96 - <groupId>org.apache.maven.plugins</groupId>  
97 - <artifactId>maven-war-plugin</artifactId>  
98 - <version>3.1.0</version>  
99 - <configuration>  
100 - <failOnMissingWebXml>false</failOnMissingWebXml>  
101 - <warName>${project.artifactId}</warName>  
102 - </configuration>  
103 - </plugin>  
104 - </plugins>  
105 - <finalName>${project.artifactId}</finalName>  
106 - </build>  
107 -  
108 -</project>  
109 \ No newline at end of file 0 \ No newline at end of file
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
@@ -19,7 +19,7 @@ import com.ruoyi.system.service.ISysLogininforService; @@ -19,7 +19,7 @@ import com.ruoyi.system.service.ISysLogininforService;
19 19
20 /** 20 /**
21 * 系统访问记录 21 * 系统访问记录
22 - * 22 + *
23 * @author ruoyi 23 * @author ruoyi
24 */ 24 */
25 @RestController 25 @RestController
@@ -48,20 +48,4 @@ public class SysLogininforController extends BaseController @@ -48,20 +48,4 @@ public class SysLogininforController extends BaseController
48 return util.exportExcel(list, "登录日志"); 48 return util.exportExcel(list, "登录日志");
49 } 49 }
50 50
51 - @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")  
52 - @Log(title = "登录日志", businessType = BusinessType.DELETE)  
53 - @DeleteMapping("/{infoIds}")  
54 - public AjaxResult remove(@PathVariable Long[] infoIds)  
55 - {  
56 - return toAjax(logininforService.deleteLogininforByIds(infoIds));  
57 - }  
58 -  
59 - @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")  
60 - @Log(title = "登录日志", businessType = BusinessType.CLEAN)  
61 - @DeleteMapping("/clean")  
62 - public AjaxResult clean()  
63 - {  
64 - logininforService.cleanLogininfor();  
65 - return AjaxResult.success();  
66 - }  
67 } 51 }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java deleted
1 -package com.ruoyi.web.controller.monitor;  
2 -  
3 -import java.util.List;  
4 -  
5 -import org.springframework.beans.factory.annotation.Autowired;  
6 -import org.springframework.security.access.prepost.PreAuthorize;  
7 -import org.springframework.web.bind.annotation.DeleteMapping;  
8 -import org.springframework.web.bind.annotation.GetMapping;  
9 -import org.springframework.web.bind.annotation.PathVariable;  
10 -import org.springframework.web.bind.annotation.RequestMapping;  
11 -import org.springframework.web.bind.annotation.RestController;  
12 -import com.ruoyi.common.annotation.Log;  
13 -import com.ruoyi.common.core.controller.BaseController;  
14 -import com.ruoyi.common.core.domain.AjaxResult;  
15 -import com.ruoyi.common.core.page.TableDataInfo;  
16 -import com.ruoyi.common.enums.BusinessType;  
17 -import com.ruoyi.common.utils.poi.ExcelUtil;  
18 -import com.ruoyi.system.domain.SysOperLog;  
19 -import com.ruoyi.system.service.ISysOperLogService;  
20 -  
21 -/**  
22 - * 操作日志记录  
23 - *  
24 - * @author ruoyi  
25 - */  
26 -  
27 -public class SysOperlogController extends BaseController {  
28 -  
29 - @Autowired  
30 - private ISysOperLogService operLogService;  
31 -  
32 -  
33 -  
34 -}  
ruoyi-admin/src/main/resources/application.yml
@@ -42,13 +42,6 @@ spring: @@ -42,13 +42,6 @@ spring:
42 basename: i18n/messages 42 basename: i18n/messages
43 profiles: 43 profiles:
44 active: druid 44 active: druid
45 - # 文件上传  
46 - servlet:  
47 - multipart:  
48 - # 单个文件大小  
49 - max-file-size: 10MB  
50 - # 设置总上传的文件大小  
51 - max-request-size: 20MB  
52 # 服务模块 45 # 服务模块
53 devtools: 46 devtools:
54 restart: 47 restart:
@@ -77,13 +70,6 @@ spring: @@ -77,13 +70,6 @@ spring:
77 # #连接池最大阻塞等待时间(使用负值表示没有限制) 70 # #连接池最大阻塞等待时间(使用负值表示没有限制)
78 max-wait: -1ms 71 max-wait: -1ms
79 72
80 -# Swagger配置  
81 -swagger:  
82 - # 是否开启swagger  
83 - enabled: true  
84 - # 请求前缀  
85 - pathMapping: /dev-api  
86 -  
87 # 防止XSS攻击 73 # 防止XSS攻击
88 xss: 74 xss:
89 # 过滤开关 75 # 过滤开关
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java deleted
1 -package com.ruoyi.system.domain;  
2 -  
3 -import java.util.Date;  
4 -import com.fasterxml.jackson.annotation.JsonFormat;  
5 -import com.ruoyi.common.annotation.Excel;  
6 -import com.ruoyi.common.annotation.Excel.ColumnType;  
7 -import com.ruoyi.common.core.domain.BaseEntity;  
8 -  
9 -/**  
10 - * 系统访问记录表 sys_logininfor  
11 - *  
12 - * @author ruoyi  
13 - */  
14 -public class SysLogininfor extends BaseEntity  
15 -{  
16 - private static final long serialVersionUID = 1L;  
17 -  
18 - /** ID */  
19 - @Excel(name = "序号", cellType = ColumnType.NUMERIC)  
20 - private Long infoId;  
21 -  
22 - /** 用户账号 */  
23 - @Excel(name = "用户账号")  
24 - private String userName;  
25 -  
26 - /** 登录状态 0成功 1失败 */  
27 - @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败")  
28 - private String status;  
29 -  
30 - /** 登录IP地址 */  
31 - @Excel(name = "登录地址")  
32 - private String ipaddr;  
33 -  
34 - /** 登录地点 */  
35 - @Excel(name = "登录地点")  
36 - private String loginLocation;  
37 -  
38 - /** 浏览器类型 */  
39 - @Excel(name = "浏览器")  
40 - private String browser;  
41 -  
42 - /** 操作系统 */  
43 - @Excel(name = "操作系统")  
44 - private String os;  
45 -  
46 - /** 提示消息 */  
47 - @Excel(name = "提示消息")  
48 - private String msg;  
49 -  
50 - /** 访问时间 */  
51 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")  
52 - @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")  
53 - private Date loginTime;  
54 -  
55 -}  
src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/aop/OperateLogAspect.java
@@ -10,7 +10,7 @@ import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEn @@ -10,7 +10,7 @@ import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEn
10 import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; 10 import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService;
11 import cn.iocoder.dashboard.framework.security.core.util.SecurityUtils; 11 import cn.iocoder.dashboard.framework.security.core.util.SecurityUtils;
12 import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; 12 import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils;
13 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; 13 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO;
14 import cn.iocoder.dashboard.util.servlet.ServletUtils; 14 import cn.iocoder.dashboard.util.servlet.ServletUtils;
15 import com.alibaba.fastjson.JSON; 15 import com.alibaba.fastjson.JSON;
16 import com.google.common.collect.Maps; 16 import com.google.common.collect.Maps;
src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java
1 package cn.iocoder.dashboard.framework.logger.operatelog.core.service; 1 package cn.iocoder.dashboard.framework.logger.operatelog.core.service;
2 2
3 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO; 3 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO;
4 4
5 public interface OperateLogFrameworkService { 5 public interface OperateLogFrameworkService {
6 6
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/SysOperateLogController.java
@@ -6,10 +6,10 @@ import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; @@ -6,10 +6,10 @@ import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils;
6 import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; 6 import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog;
7 import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; 7 import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum;
8 import cn.iocoder.dashboard.framework.logger.operatelog.core.util.OperateLogUtils; 8 import cn.iocoder.dashboard.framework.logger.operatelog.core.util.OperateLogUtils;
9 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExcelVO;  
10 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO;  
11 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO;  
12 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; 9 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO;
  10 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
  11 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
  12 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO;
13 import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; 13 import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert;
14 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; 14 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO;
15 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; 15 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/loginlog/SysLoginLogBaseVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +
  6 +import javax.validation.constraints.NotBlank;
  7 +import javax.validation.constraints.NotEmpty;
  8 +import javax.validation.constraints.NotNull;
  9 +import javax.validation.constraints.Size;
  10 +
  11 +/**
  12 + * 登陆日志 Base VO,提供给添加、修改、详细的子 VO 使用
  13 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  14 + */
  15 +@Data
  16 +public class SysLoginLogBaseVO {
  17 +
  18 + @ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab")
  19 + @NotEmpty(message = "链路追踪编号不能为空")
  20 + private String traceId;
  21 +
  22 + @ApiModelProperty(value = "用户编号", required = true, example = "1024")
  23 + @NotNull(message = "用户编号不能为空")
  24 + private Long userId;
  25 +
  26 + @ApiModelProperty(value = "用户账号", required = true, example = "yudao")
  27 + @NotBlank(message = "用户账号不能为空")
  28 + @Size(max = 30, message = "用户账号长度不能超过30个字符")
  29 + private String username;
  30 +
  31 +
  32 + @ApiModelProperty(value = "登陆结果", required = true, example = "1", notes = "参见 SysLoginResultEnum 枚举类")
  33 + @NotNull(message = "登陆结果不能为空")
  34 + private Integer result;
  35 +
  36 + @ApiModelProperty(value = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。")
  37 + private String content;
  38 +
  39 + @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1")
  40 + @NotEmpty(message = "用户 IP 不能为空")
  41 + private String userIp;
  42 +
  43 + @ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0")
  44 + @NotEmpty(message = "浏览器 UserAgent 不能为空")
  45 + private String userAgent;
  46 +
  47 +}
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/loginlog/SysLoginLogCreateReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog;
  2 +
  3 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO;
  4 +import io.swagger.annotations.ApiModel;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +@ApiModel(value = "登陆日志创建 Request VO",
  10 + description = "暂时提供给前端,仅仅后端记录登陆日志时,进行使用")
  11 +@Data
  12 +@EqualsAndHashCode(callSuper = true)
  13 +@ToString(callSuper = true)
  14 +public class SysLoginLogCreateReqVO extends SysOperateLogCreateReqVO {
  15 +}
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/loginlog/SysLoginLogExcelVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog;
  2 +
  3 +import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat;
  4 +import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert;
  5 +import cn.iocoder.dashboard.modules.system.enums.dict.DictTypeEnum;
  6 +import com.alibaba.excel.annotation.ExcelProperty;
  7 +import lombok.Data;
  8 +
  9 +import java.util.Date;
  10 +
  11 +/**
  12 + * 登陆日志 Excel 导出响应 VO
  13 + */
  14 +@Data
  15 +public class SysLoginLogExcelVO {
  16 +
  17 + @ExcelProperty("日志主键")
  18 + private Long id;
  19 +
  20 + @ExcelProperty("用户编号")
  21 + private Long userId;
  22 +
  23 + @ExcelProperty("用户账号")
  24 + private String username;
  25 +
  26 + @ExcelProperty(value = "登陆结果", converter = DictConvert.class)
  27 + @DictFormat(DictTypeEnum.SYS_LOGIN_RESULT)
  28 + private Integer result;
  29 +
  30 + @ExcelProperty("登陆 IP")
  31 + private String userIp;
  32 +
  33 + @ExcelProperty("浏览器 UA")
  34 + private String userAgent;
  35 +
  36 + @ExcelProperty("登陆时间")
  37 + private Date createTime;
  38 +
  39 +}
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/loginlog/SysLoginLogRespVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +import java.util.Date;
  10 +
  11 +@ApiModel("操作日志 Response VO")
  12 +@Data
  13 +@EqualsAndHashCode(callSuper = true)
  14 +@ToString(callSuper = true)
  15 +public class SysLoginLogRespVO extends SysLoginLogBaseVO {
  16 +
  17 + @ApiModelProperty(value = "日志编号", required = true, example = "1024")
  18 + private Long id;
  19 +
  20 + @ApiModelProperty(value = "登陆时间", required = true)
  21 + private Date createTime;
  22 +
  23 +}
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogBaseVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogBaseVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import io.swagger.annotations.ApiModelProperty; 3 import io.swagger.annotations.ApiModelProperty;
4 import lombok.Data; 4 import lombok.Data;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogCreateReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogCreateReqVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import lombok.Data; 4 import lombok.Data;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogExcelVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogExcelVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogExportReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogExportReqVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogPageReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogPageReqVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import cn.iocoder.dashboard.common.pojo.PageParam; 3 import cn.iocoder.dashboard.common.pojo.PageParam;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/SysOperateLogRespVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogRespVO.java
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo; 1 +package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/package-info.java deleted
1 -package cn.iocoder.dashboard.modules.system.controller.logger.vo;  
src/main/java/cn/iocoder/dashboard/modules/system/convert/logger/SysOperateLogConvert.java
1 package cn.iocoder.dashboard.modules.system.convert.logger; 1 package cn.iocoder.dashboard.modules.system.convert.logger;
2 2
3 import cn.iocoder.dashboard.common.pojo.PageResult; 3 import cn.iocoder.dashboard.common.pojo.PageResult;
4 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO;  
5 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExcelVO;  
6 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; 4 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO;
  5 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO;
7 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; 7 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO;
8 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; 8 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO;
9 import cn.iocoder.dashboard.util.collection.MapUtils; 9 import cn.iocoder.dashboard.util.collection.MapUtils;
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/logger/SysOperateLogMapper.java
@@ -4,8 +4,8 @@ import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants; @@ -4,8 +4,8 @@ import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants;
4 import cn.iocoder.dashboard.common.pojo.PageResult; 4 import cn.iocoder.dashboard.common.pojo.PageResult;
5 import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX;
6 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
7 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO;  
8 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; 7 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
  8 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
9 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; 9 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 11
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/logger/SysLoginLogDO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger;
  2 +
  3 +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO;
  5 +import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginResultEnum;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +
  8 +/**
  9 + * 系统访问记录表
  10 + *
  11 + * @author ruoyi
  12 + */
  13 +@TableName("用户登陆日志")
  14 +public class SysLoginLogDO extends BaseDO {
  15 +
  16 + /**
  17 + * 日志主键
  18 + */
  19 + private Long id;
  20 + /**
  21 + * 链路追踪编号
  22 + */
  23 + private String traceId;
  24 + /**
  25 + * 用户编号
  26 + *
  27 + * 外键 {@link SysUserDO#getId()}
  28 + */
  29 + private Long userId;
  30 + /**
  31 + * 用户账号
  32 + *
  33 + * 冗余,因为账号可以变更
  34 + */
  35 + private String username;
  36 + /**
  37 + * 登陆结果
  38 + *
  39 + * 枚举 {@link SysLoginResultEnum}
  40 + */
  41 + private Integer result;
  42 +
  43 + /**
  44 + * 用户 IP
  45 + */
  46 + private String userIp;
  47 +
  48 + /**
  49 + * 浏览器 UA
  50 + */
  51 + private String userAgent;
  52 +
  53 +}
src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/DictTypeEnum.java
@@ -13,6 +13,7 @@ public enum DictTypeEnum { @@ -13,6 +13,7 @@ public enum DictTypeEnum {
13 SYS_USER_SEX("sys_user_sex"), // 用户性别 13 SYS_USER_SEX("sys_user_sex"), // 用户性别
14 SYS_COMMON_STATUS("sys_common_status"), // 系统状态 14 SYS_COMMON_STATUS("sys_common_status"), // 系统状态
15 SYS_OPERATE_TYPE("sys_operate_type"), // 操作类型 15 SYS_OPERATE_TYPE("sys_operate_type"), // 操作类型
  16 + SYS_LOGIN_RESULT("sys_login_result"), // 登陆结果
16 ; 17 ;
17 18
18 19
src/main/java/cn/iocoder/dashboard/modules/system/enums/logger/SysLoginResultEnum.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.enums.logger;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +/**
  7 + * 登陆结果的枚举类
  8 + */
  9 +@Getter
  10 +@AllArgsConstructor
  11 +public enum SysLoginResultEnum {
  12 +
  13 + SUCCESS(0), // 成功
  14 + ;
  15 +
  16 + /**
  17 + * 结果
  18 + */
  19 + private final Integer result;
  20 +
  21 +}
src/main/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogService.java
@@ -2,8 +2,8 @@ package cn.iocoder.dashboard.modules.system.service.logger; @@ -2,8 +2,8 @@ package cn.iocoder.dashboard.modules.system.service.logger;
2 2
3 import cn.iocoder.dashboard.common.pojo.PageResult; 3 import cn.iocoder.dashboard.common.pojo.PageResult;
4 import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; 4 import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService;
5 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO;  
6 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; 5 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
7 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; 7 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO;
8 8
9 import java.util.List; 9 import java.util.List;
src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java
@@ -3,9 +3,9 @@ package cn.iocoder.dashboard.modules.system.service.logger.impl; @@ -3,9 +3,9 @@ package cn.iocoder.dashboard.modules.system.service.logger.impl;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.dashboard.common.pojo.PageResult; 5 import cn.iocoder.dashboard.common.pojo.PageResult;
6 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogCreateReqVO;  
7 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO;  
8 -import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; 6 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO;
  7 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
  8 +import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
9 import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; 9 import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert;
10 import cn.iocoder.dashboard.modules.system.dal.mysql.dao.logger.SysOperateLogMapper; 10 import cn.iocoder.dashboard.modules.system.dal.mysql.dao.logger.SysOperateLogMapper;
11 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; 11 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO;