From 4462de25308726e85ec7fdaa42db996cd9104536 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Sat, 19 Oct 2024 02:37:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/generator/WebGeneratorCode.java | 12 +- .../bunny/dao/dto/log/UserLoginLogAddDto.java | 86 ++++++++++++ .../cn/bunny/dao/dto/log/UserLoginLogDto.java | 16 ++- .../dao/dto/log/UserLoginLogUpdateDto.java | 16 ++- .../cn/bunny/dao/entity/log/UserLoginLog.java | 14 +- .../cn/bunny/dao/vo/log/UserLoginLogVo.java | 18 ++- .../controller/UserLoginLogController.java | 11 +- .../bunny/services/factory/UserFactory.java | 124 ++++++++++++------ .../services/mapper/UserLoginLogMapper.java | 2 +- .../services/service/UserLoginLogService.java | 11 +- .../service/impl/UserLoginLogServiceImpl.java | 17 +-- .../service/impl/UserServiceImpl.java | 5 - .../resources/mapper/UserLoginLogMapper.xml | 31 ++++- 13 files changed, 266 insertions(+), 97 deletions(-) create mode 100644 dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogAddDto.java diff --git a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java index 9337d4e..4af12f9 100644 --- a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java +++ b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java @@ -3,7 +3,11 @@ package cn.bunny.common.generator.generator; import cn.bunny.common.generator.entity.BaseField; import cn.bunny.common.generator.entity.BaseResultMap; import cn.bunny.common.generator.utils.GeneratorCodeUtils; +import cn.bunny.dao.dto.log.UserLoginLogAddDto; +import cn.bunny.dao.dto.log.UserLoginLogDto; +import cn.bunny.dao.dto.log.UserLoginLogUpdateDto; import cn.bunny.dao.entity.log.UserLoginLog; +import cn.bunny.dao.vo.log.UserLoginLogVo; import com.baomidou.mybatisplus.annotation.TableName; import com.google.common.base.CaseFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -48,10 +52,10 @@ public class WebGeneratorCode { public static void main(String[] args) throws Exception { Class> originalClass = UserLoginLog.class; - Class> dtoClass = UserLoginLog.class; - Class> addDtoClass = UserLoginLog.class; - Class> updateDtoClass = UserLoginLog.class; - Class> voClass = UserLoginLog.class; + Class> dtoClass = UserLoginLogDto.class; + Class> addDtoClass = UserLoginLogAddDto.class; + Class> updateDtoClass = UserLoginLogUpdateDto.class; + Class> voClass = UserLoginLogVo.class; // 设置velocity资源加载器 Properties prop = new Properties(); diff --git a/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogAddDto.java new file mode 100644 index 0000000..9a56874 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogAddDto.java @@ -0,0 +1,86 @@ +package cn.bunny.dao.dto.log; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "UserLoginLogDto对象", title = "用户登录日志分页查询", description = "用户登录日志分页查询") +public class UserLoginLogAddDto { + + @Schema(name = "userId", title = "用户Id") + private Long userId; + + @Schema(name = "username", title = "用户名") + private String username; + + @Schema(name = "token", title = "登录token") + private String token; + + @Schema(name = "ipAddress", title = "登录Ip") + private String ipAddress; + + @Schema(name = "ipRegion", title = "登录Ip归属地") + private String ipRegion; + + @Schema(name = "userAgent", title = "登录时代理") + private String userAgent; + + @Schema(name = "type", title = "操作类型") + private String type; + + @Schema(name = "xRequestedWith", title = "标识客户端是否是通过Ajax发送请求的") + private String xRequestedWith; + + @Schema(name = "secChUa", title = "用户代理的品牌和版本") + private String secChUa; + + @Schema(name = "secChUaArch", title = "用户代理的底层平台架构") + private String secChUaArch; + + @Schema(name = "secChUaBitness", title = "用户代理的底层CPU架构位数") + private String secChUaBitness; + + @Schema(name = "secChUaMobile", title = "用户代理是否在手机设备上运行") + private String secChUaMobile; + + @Schema(name = "secChUaModel", title = "用户代理的设备模型") + private String secChUaModel; + + @Schema(name = "secChUaPlatform", title = "用户代理的底层操作系统/平台") + private String secChUaPlatform; + + @Schema(name = "secChUaPlatformVersion", title = "用户代理的底层操作系统版本") + private String secChUaPlatformVersion; + + @Schema(name = "contentDpr", title = "客户端设备像素比") + private String contentDpr; + + @Schema(name = "deviceMemory", title = "客户端RAM内存的近似值") + private String deviceMemory; + + @Schema(name = "dpr", title = "客户端设备像素比") + private String dpr; + + @Schema(name = "viewportWidth", title = "布局视口宽度") + private String viewportWidth; + + @Schema(name = "width", title = "所需资源宽度") + private String width; + + @Schema(name = "downlink", title = "客户端连接到服务器的近似带宽") + private String downlink; + + @Schema(name = "ect", title = "有效连接类型") + private String ect; + + @Schema(name = "rtt", title = "应用层往返时间") + private String rtt; + +} + diff --git a/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogDto.java b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogDto.java index d1126f8..c2a8bfa 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogDto.java @@ -22,10 +22,10 @@ public class UserLoginLogDto { @Schema(name = "token", title = "登录token") private String token; - @Schema(name = "ipAddress", title = "登录Ip地点") + @Schema(name = "ipAddress", title = "登录Ip") private String ipAddress; - @Schema(name = "ipRegion", title = "登录Ip") + @Schema(name = "ipRegion", title = "登录Ip归属地") private String ipRegion; @Schema(name = "userAgent", title = "登录时代理") @@ -34,5 +34,17 @@ public class UserLoginLogDto { @Schema(name = "type", title = "操作类型") private String type; + @Schema(name = "xRequestedWith", title = "标识客户端是否是通过Ajax发送请求的") + private String xRequestedWith; + + @Schema(name = "secChUa", title = "用户代理的品牌和版本") + private String secChUa; + + @Schema(name = "secChUaMobile", title = "用户代理是否在手机设备上运行") + private String secChUaMobile; + + @Schema(name = "secChUaPlatform", title = "用户代理的底层操作系统/平台") + private String secChUaPlatform; + } diff --git a/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogUpdateDto.java index 2db78f2..700f717 100644 --- a/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogUpdateDto.java +++ b/dao/src/main/java/cn/bunny/dao/dto/log/UserLoginLogUpdateDto.java @@ -22,10 +22,10 @@ public class UserLoginLogUpdateDto { @Schema(name = "token", title = "登录token") private String token; - @Schema(name = "ipAddress", title = "登录Ip地点") + @Schema(name = "ipAddress", title = "登录Ip") private String ipAddress; - @Schema(name = "ipRegion", title = "登录Ip") + @Schema(name = "ipRegion", title = "登录Ip归属地") private String ipRegion; @Schema(name = "userAgent", title = "登录时代理") @@ -34,4 +34,16 @@ public class UserLoginLogUpdateDto { @Schema(name = "type", title = "操作类型") private String type; + @Schema(name = "xRequestedWith", title = "标识客户端是否是通过Ajax发送请求的") + private String xRequestedWith; + + @Schema(name = "secChUa", title = "用户代理的品牌和版本") + private String secChUa; + + @Schema(name = "secChUaMobile", title = "用户代理是否在手机设备上运行") + private String secChUaMobile; + + @Schema(name = "secChUaPlatform", title = "用户代理的底层操作系统/平台") + private String secChUaPlatform; + } \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/entity/log/UserLoginLog.java b/dao/src/main/java/cn/bunny/dao/entity/log/UserLoginLog.java index f3440b5..2ce28e7 100644 --- a/dao/src/main/java/cn/bunny/dao/entity/log/UserLoginLog.java +++ b/dao/src/main/java/cn/bunny/dao/entity/log/UserLoginLog.java @@ -13,7 +13,7 @@ import lombok.experimental.Accessors; *
* * @author Bunny - * @since 2024-10-18 + * @since 2024-10-19 */ @Getter @Setter @@ -43,4 +43,16 @@ public class UserLoginLog extends BaseEntity { @Schema(name = "type", title = "操作类型") private String type; + @Schema(name = "xRequestedWith", title = "标识客户端是否是通过Ajax发送请求的") + private String xRequestedWith; + + @Schema(name = "secChUa", title = "用户代理的品牌和版本") + private String secChUa; + + @Schema(name = "secChUaMobile", title = "用户代理是否在手机设备上运行") + private String secChUaMobile; + + @Schema(name = "secChUaPlatform", title = "用户代理的底层操作系统/平台") + private String secChUaPlatform; + } diff --git a/dao/src/main/java/cn/bunny/dao/vo/log/UserLoginLogVo.java b/dao/src/main/java/cn/bunny/dao/vo/log/UserLoginLogVo.java index 7ad9190..d333d7e 100644 --- a/dao/src/main/java/cn/bunny/dao/vo/log/UserLoginLogVo.java +++ b/dao/src/main/java/cn/bunny/dao/vo/log/UserLoginLogVo.java @@ -1,6 +1,7 @@ package cn.bunny.dao.vo.log; import cn.bunny.dao.vo.common.BaseVo; +import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -21,10 +22,10 @@ public class UserLoginLogVo extends BaseVo { @Schema(name = "token", title = "登录token") private String token; - @Schema(name = "ipAddress", title = "登录Ip地点") + @Schema(name = "ipAddress", title = "登录Ip") private String ipAddress; - @Schema(name = "ipRegion", title = "登录Ip") + @Schema(name = "ipRegion", title = "登录Ip归属地") private String ipRegion; @Schema(name = "userAgent", title = "登录时代理") @@ -33,4 +34,17 @@ public class UserLoginLogVo extends BaseVo { @Schema(name = "type", title = "操作类型") private String type; + @Schema(name = "xRequestedWith", title = "标识客户端是否是通过Ajax发送请求的") + @JsonProperty("xRequestedWith") + private String xRequestedWith; + + @Schema(name = "secChUa", title = "用户代理的品牌和版本") + private String secChUa; + + @Schema(name = "secChUaMobile", title = "用户代理是否在手机设备上运行") + private String secChUaMobile; + + @Schema(name = "secChUaPlatform", title = "用户代理的底层操作系统/平台") + private String secChUaPlatform; + } \ No newline at end of file diff --git a/service/src/main/java/cn/bunny/services/controller/UserLoginLogController.java b/service/src/main/java/cn/bunny/services/controller/UserLoginLogController.java index 0f46f4c..809a082 100644 --- a/service/src/main/java/cn/bunny/services/controller/UserLoginLogController.java +++ b/service/src/main/java/cn/bunny/services/controller/UserLoginLogController.java @@ -1,7 +1,6 @@ package cn.bunny.services.controller; import cn.bunny.dao.dto.log.UserLoginLogDto; -import cn.bunny.dao.dto.log.UserLoginLogUpdateDto; import cn.bunny.dao.entity.log.UserLoginLog; import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.dao.pojo.result.Result; @@ -12,7 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Mono; @@ -25,7 +23,7 @@ import java.util.List; * * * @author Bunny - * @since 2024-10-18 22:36:07 + * @since 2024-10-19 01:01:01 */ @Tag(name = "用户登录日志", description = "用户登录日志相关接口") @RestController @@ -48,13 +46,6 @@ public class UserLoginLogController { return Mono.just(Result.success(pageResult)); } - @Operation(summary = "更新用户登录日志", description = "更新用户登录日志") - @PutMapping("updateUserLoginLog") - public Mono