mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	调整登陆日志表结构,开始迁移
This commit is contained in:
		| @ -1,108 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" |  | ||||||
|          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |  | ||||||
|          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |  | ||||||
|     <parent> |  | ||||||
|         <artifactId>ruoyi</artifactId> |  | ||||||
|         <groupId>com.ruoyi</groupId> |  | ||||||
|         <version>3.3.0</version> |  | ||||||
|     </parent> |  | ||||||
|     <modelVersion>4.0.0</modelVersion> |  | ||||||
|     <packaging>jar</packaging> |  | ||||||
|     <artifactId>ruoyi-admin</artifactId> |  | ||||||
|  |  | ||||||
|     <description> |  | ||||||
|         web服务入口 |  | ||||||
|     </description> |  | ||||||
|  |  | ||||||
|     <dependencies> |  | ||||||
|  |  | ||||||
|         <!-- spring-boot-devtools --> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>org.springframework.boot</groupId> |  | ||||||
|             <artifactId>spring-boot-devtools</artifactId> |  | ||||||
|             <optional>true</optional> <!-- 表示依赖不会传递 --> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!-- swagger2--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>io.springfox</groupId> |  | ||||||
|             <artifactId>springfox-swagger2</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!--防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>io.swagger</groupId> |  | ||||||
|             <artifactId>swagger-annotations</artifactId> |  | ||||||
|             <version>1.5.21</version> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>io.swagger</groupId> |  | ||||||
|             <artifactId>swagger-models</artifactId> |  | ||||||
|             <version>1.5.21</version> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!-- swagger2-UI--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>io.springfox</groupId> |  | ||||||
|             <artifactId>springfox-swagger-ui</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|          <!-- Mysql驱动包 --> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>mysql</groupId> |  | ||||||
|             <artifactId>mysql-connector-java</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!-- 核心模块--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>com.ruoyi</groupId> |  | ||||||
|             <artifactId>ruoyi-framework</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!-- 定时任务--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>com.ruoyi</groupId> |  | ||||||
|             <artifactId>ruoyi-quartz</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|         <!-- 代码生成--> |  | ||||||
|         <dependency> |  | ||||||
|             <groupId>com.ruoyi</groupId> |  | ||||||
|             <artifactId>ruoyi-generator</artifactId> |  | ||||||
|         </dependency> |  | ||||||
|  |  | ||||||
|     </dependencies> |  | ||||||
|  |  | ||||||
|     <build> |  | ||||||
|         <plugins> |  | ||||||
|             <plugin> |  | ||||||
|                 <groupId>org.springframework.boot</groupId> |  | ||||||
|                 <artifactId>spring-boot-maven-plugin</artifactId> |  | ||||||
|                 <version>2.1.1.RELEASE</version> |  | ||||||
|                 <configuration> |  | ||||||
|                     <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --> |  | ||||||
|                 </configuration> |  | ||||||
|                 <executions> |  | ||||||
|                     <execution> |  | ||||||
|                         <goals> |  | ||||||
|                             <goal>repackage</goal> |  | ||||||
|                         </goals> |  | ||||||
|                     </execution> |  | ||||||
|                 </executions> |  | ||||||
|             </plugin> |  | ||||||
|             <plugin>    |  | ||||||
|                 <groupId>org.apache.maven.plugins</groupId>    |  | ||||||
|                 <artifactId>maven-war-plugin</artifactId>    |  | ||||||
|                 <version>3.1.0</version>    |  | ||||||
|                 <configuration> |  | ||||||
|                     <failOnMissingWebXml>false</failOnMissingWebXml> |  | ||||||
|                     <warName>${project.artifactId}</warName> |  | ||||||
|                 </configuration>    |  | ||||||
|            </plugin>    |  | ||||||
|         </plugins> |  | ||||||
|         <finalName>${project.artifactId}</finalName> |  | ||||||
|     </build> |  | ||||||
|  |  | ||||||
| </project> |  | ||||||
| @ -48,20 +48,4 @@ public class SysLogininforController extends BaseController | |||||||
|         return util.exportExcel(list, "登录日志"); |         return util.exportExcel(list, "登录日志"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") |  | ||||||
|     @Log(title = "登录日志", businessType = BusinessType.DELETE) |  | ||||||
|     @DeleteMapping("/{infoIds}") |  | ||||||
|     public AjaxResult remove(@PathVariable Long[] infoIds) |  | ||||||
|     { |  | ||||||
|         return toAjax(logininforService.deleteLogininforByIds(infoIds)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") |  | ||||||
|     @Log(title = "登录日志", businessType = BusinessType.CLEAN) |  | ||||||
|     @DeleteMapping("/clean") |  | ||||||
|     public AjaxResult clean() |  | ||||||
|     { |  | ||||||
|         logininforService.cleanLogininfor(); |  | ||||||
|         return AjaxResult.success(); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,34 +0,0 @@ | |||||||
| package com.ruoyi.web.controller.monitor; |  | ||||||
|  |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| import org.springframework.beans.factory.annotation.Autowired; |  | ||||||
| import org.springframework.security.access.prepost.PreAuthorize; |  | ||||||
| import org.springframework.web.bind.annotation.DeleteMapping; |  | ||||||
| import org.springframework.web.bind.annotation.GetMapping; |  | ||||||
| import org.springframework.web.bind.annotation.PathVariable; |  | ||||||
| import org.springframework.web.bind.annotation.RequestMapping; |  | ||||||
| import org.springframework.web.bind.annotation.RestController; |  | ||||||
| import com.ruoyi.common.annotation.Log; |  | ||||||
| import com.ruoyi.common.core.controller.BaseController; |  | ||||||
| import com.ruoyi.common.core.domain.AjaxResult; |  | ||||||
| import com.ruoyi.common.core.page.TableDataInfo; |  | ||||||
| import com.ruoyi.common.enums.BusinessType; |  | ||||||
| import com.ruoyi.common.utils.poi.ExcelUtil; |  | ||||||
| import com.ruoyi.system.domain.SysOperLog; |  | ||||||
| import com.ruoyi.system.service.ISysOperLogService; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * 操作日志记录 |  | ||||||
|  * |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| public class SysOperlogController extends BaseController { |  | ||||||
|  |  | ||||||
|     @Autowired |  | ||||||
|     private ISysOperLogService operLogService; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @ -42,13 +42,6 @@ spring: | |||||||
|     basename: i18n/messages |     basename: i18n/messages | ||||||
|   profiles: |   profiles: | ||||||
|     active: druid |     active: druid | ||||||
|   # 文件上传 |  | ||||||
|   servlet: |  | ||||||
|      multipart: |  | ||||||
|        # 单个文件大小 |  | ||||||
|        max-file-size:  10MB |  | ||||||
|        # 设置总上传的文件大小 |  | ||||||
|        max-request-size:  20MB |  | ||||||
|   # 服务模块 |   # 服务模块 | ||||||
|   devtools: |   devtools: | ||||||
|     restart: |     restart: | ||||||
| @ -77,13 +70,6 @@ spring: | |||||||
|         # #连接池最大阻塞等待时间(使用负值表示没有限制) |         # #连接池最大阻塞等待时间(使用负值表示没有限制) | ||||||
|         max-wait: -1ms |         max-wait: -1ms | ||||||
|  |  | ||||||
| # Swagger配置 |  | ||||||
| swagger: |  | ||||||
|   # 是否开启swagger |  | ||||||
|   enabled: true |  | ||||||
|   # 请求前缀 |  | ||||||
|   pathMapping: /dev-api |  | ||||||
|  |  | ||||||
| # 防止XSS攻击 | # 防止XSS攻击 | ||||||
| xss: | xss: | ||||||
|   # 过滤开关 |   # 过滤开关 | ||||||
|  | |||||||
| @ -1,55 +0,0 @@ | |||||||
| package com.ruoyi.system.domain; |  | ||||||
|  |  | ||||||
| import java.util.Date; |  | ||||||
| import com.fasterxml.jackson.annotation.JsonFormat; |  | ||||||
| import com.ruoyi.common.annotation.Excel; |  | ||||||
| import com.ruoyi.common.annotation.Excel.ColumnType; |  | ||||||
| import com.ruoyi.common.core.domain.BaseEntity; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * 系统访问记录表 sys_logininfor |  | ||||||
|  * |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
| public class SysLogininfor extends BaseEntity |  | ||||||
| { |  | ||||||
|     private static final long serialVersionUID = 1L; |  | ||||||
|  |  | ||||||
|     /** ID */ |  | ||||||
|     @Excel(name = "序号", cellType = ColumnType.NUMERIC) |  | ||||||
|     private Long infoId; |  | ||||||
|  |  | ||||||
|     /** 用户账号 */ |  | ||||||
|     @Excel(name = "用户账号") |  | ||||||
|     private String userName; |  | ||||||
|  |  | ||||||
|     /** 登录状态 0成功 1失败 */ |  | ||||||
|     @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败") |  | ||||||
|     private String status; |  | ||||||
|  |  | ||||||
|     /** 登录IP地址 */ |  | ||||||
|     @Excel(name = "登录地址") |  | ||||||
|     private String ipaddr; |  | ||||||
|  |  | ||||||
|     /** 登录地点 */ |  | ||||||
|     @Excel(name = "登录地点") |  | ||||||
|     private String loginLocation; |  | ||||||
|  |  | ||||||
|     /** 浏览器类型 */ |  | ||||||
|     @Excel(name = "浏览器") |  | ||||||
|     private String browser; |  | ||||||
|  |  | ||||||
|     /** 操作系统 */ |  | ||||||
|     @Excel(name = "操作系统") |  | ||||||
|     private String os; |  | ||||||
|  |  | ||||||
|     /** 提示消息 */ |  | ||||||
|     @Excel(name = "提示消息") |  | ||||||
|     private String msg; |  | ||||||
|  |  | ||||||
|     /** 访问时间 */ |  | ||||||
|     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |  | ||||||
|     @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") |  | ||||||
|     private Date loginTime; |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @ -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.logger.operatelog.core.service.OperateLogFrameworkService; | ||||||
| import cn.iocoder.dashboard.framework.security.core.util.SecurityUtils; | import cn.iocoder.dashboard.framework.security.core.util.SecurityUtils; | ||||||
| import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | 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 cn.iocoder.dashboard.util.servlet.ServletUtils; | ||||||
| import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||||
| import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| package cn.iocoder.dashboard.framework.logger.operatelog.core.service; | 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 { | 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.annotations.OperateLog; | ||||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; | import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; | ||||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.util.OperateLogUtils; | 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.operatelog.SysOperateLogExcelVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; | 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.convert.logger.SysOperateLogConvert; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | 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.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 io.swagger.annotations.ApiModelProperty; | ||||||
| import lombok.Data; | 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 io.swagger.annotations.ApiModel; | ||||||
| import lombok.Data; | 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.annotations.DictFormat; | ||||||
| import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert; | 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.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | 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 cn.iocoder.dashboard.common.pojo.PageParam; | ||||||
| import io.swagger.annotations.ApiModel; | 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.ApiModel; | ||||||
| import io.swagger.annotations.ApiModelProperty; | 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; | package cn.iocoder.dashboard.modules.system.convert.logger; | ||||||
|  |  | ||||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | 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.operatelog.SysOperateLogCreateReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExcelVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogRespVO; | 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.logger.SysOperateLogDO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO; | ||||||
| import cn.iocoder.dashboard.util.collection.MapUtils; | 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.common.pojo.PageResult; | ||||||
| import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; | import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | 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.operatelog.SysOperateLogExportReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | 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_USER_SEX("sys_user_sex"), // 用户性别 | ||||||
|     SYS_COMMON_STATUS("sys_common_status"), // 系统状态 |     SYS_COMMON_STATUS("sys_common_status"), // 系统状态 | ||||||
|     SYS_OPERATE_TYPE("sys_operate_type"), // 操作类型 |     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.common.pojo.PageResult; | ||||||
| import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; | 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.operatelog.SysOperateLogExportReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||||
|  |  | ||||||
| import java.util.List; | 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.collection.CollUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
| import cn.iocoder.dashboard.common.pojo.PageResult; | 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.operatelog.SysOperateLogCreateReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogExportReqVO; | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.logger.vo.SysOperateLogPageReqVO; | 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.convert.logger.SysOperateLogConvert; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dao.logger.SysOperateLogMapper; | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.logger.SysOperateLogMapper; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.logger.SysOperateLogDO; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV