mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10:57:13 +08:00 
			
		
		
		
	chore: continew-starter 2.5.1 => 2.5.2
接口文档显示优化 增强 SQL 注入防御
This commit is contained in:
		| @@ -13,7 +13,7 @@ | |||||||
| <img src="https://sonarcloud.io/api/project_badges/measure?project=Charles7c_continew-admin&metric=alert_status" alt="Sonar Status" /> | <img src="https://sonarcloud.io/api/project_badges/measure?project=Charles7c_continew-admin&metric=alert_status" alt="Sonar Status" /> | ||||||
| </a> | </a> | ||||||
| <a href="https://github.com/continew-org/continew-starter" target="_blank"> | <a href="https://github.com/continew-org/continew-starter" target="_blank"> | ||||||
| <img src="https://img.shields.io/badge/ContiNew Starter-2.5.1-%236CB52D.svg" alt="ContiNew Starter" /> | <img src="https://img.shields.io/badge/ContiNew Starter-2.5.2-%236CB52D.svg" alt="ContiNew Starter" /> | ||||||
| </a> | </a> | ||||||
| <a href="https://spring.io/projects/spring-boot" target="_blank"> | <a href="https://spring.io/projects/spring-boot" target="_blank"> | ||||||
| <img src="https://img.shields.io/badge/Spring Boot-3.2.7-%236CB52D.svg?logo=Spring-Boot" alt="Spring Boot" /> | <img src="https://img.shields.io/badge/Spring Boot-3.2.7-%236CB52D.svg?logo=Spring-Boot" alt="Spring Boot" /> | ||||||
| @@ -216,7 +216,7 @@ public class DeptController extends BaseController<DeptService, DeptResp, DeptDe | |||||||
| | <a href="https://arco.design/vue/docs/start" target="_blank">Arco Design</a> | 2.55.0       | 字节跳动推出的前端 UI 框架,年轻化的色彩和组件设计。         | | | <a href="https://arco.design/vue/docs/start" target="_blank">Arco Design</a> | 2.55.0       | 字节跳动推出的前端 UI 框架,年轻化的色彩和组件设计。         | | ||||||
| | <a href="https://www.typescriptlang.org/zh/" target="_blank">TypeScript</a> | 5.0.4        | TypeScript 是微软开发的一个开源的编程语言,通过在 JavaScript 的基础上添加静态类型定义构建而成。 | | | <a href="https://www.typescriptlang.org/zh/" target="_blank">TypeScript</a> | 5.0.4        | TypeScript 是微软开发的一个开源的编程语言,通过在 JavaScript 的基础上添加静态类型定义构建而成。 | | ||||||
| | <a href="https://cn.vitejs.dev/" target="_blank">Vite</a>    | 5.1.5        | 下一代的前端工具链,为开发提供极速响应。                     | | | <a href="https://cn.vitejs.dev/" target="_blank">Vite</a>    | 5.1.5        | 下一代的前端工具链,为开发提供极速响应。                     | | ||||||
| | [ContiNew Starter](https://github.com/continew-org/continew-starter) | 2.5.1        | ContiNew Starter 包含了一系列经过企业实践优化的依赖包(如 MyBatis-Plus、SaToken),可轻松集成到应用中,为开发人员减少手动引入依赖及配置的麻烦,为 Spring Boot Web 项目的灵活快速构建提供支持。 | | | [ContiNew Starter](https://github.com/continew-org/continew-starter) | 2.5.2        | ContiNew Starter 包含了一系列经过企业实践优化的依赖包(如 MyBatis-Plus、SaToken),可轻松集成到应用中,为开发人员减少手动引入依赖及配置的麻烦,为 Spring Boot Web 项目的灵活快速构建提供支持。 | | ||||||
| | <a href="https://spring.io/projects/spring-boot" target="_blank">Spring Boot</a> | 3.2.7        | 简化 Spring 应用的初始搭建和开发过程,基于“约定优于配置”的理念,使开发人员不再需要定义样板化的配置。(Spring Boot 3.0 开始,要求 Java 17 作为最低版本) | | | <a href="https://spring.io/projects/spring-boot" target="_blank">Spring Boot</a> | 3.2.7        | 简化 Spring 应用的初始搭建和开发过程,基于“约定优于配置”的理念,使开发人员不再需要定义样板化的配置。(Spring Boot 3.0 开始,要求 Java 17 作为最低版本) | | ||||||
| | <a href="https://undertow.io/" target="_blank">Undertow</a>  | 2.3.13.Final | 采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。 | | | <a href="https://undertow.io/" target="_blank">Undertow</a>  | 2.3.13.Final | 采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。 | | ||||||
| | <a href="https://sa-token.dev33.cn/" target="_blank">Sa-Token + JWT</a> | 1.38.0       | 轻量级 Java 权限认证框架,让鉴权变得简单、优雅。             | | | <a href="https://sa-token.dev33.cn/" target="_blank">Sa-Token + JWT</a> | 1.38.0       | 轻量级 Java 权限认证框架,让鉴权变得简单、优雅。             | | ||||||
|   | |||||||
| @@ -19,11 +19,11 @@ package top.continew.admin.system.service.impl; | |||||||
| import cn.crane4j.annotation.AutoOperate; | import cn.crane4j.annotation.AutoOperate; | ||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.lang.Opt; |  | ||||||
| import cn.hutool.core.text.CharSequenceUtil; | import cn.hutool.core.text.CharSequenceUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.metadata.IPage; | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||||
| import jakarta.servlet.http.HttpServletResponse; | import jakarta.servlet.http.HttpServletResponse; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| @@ -67,7 +67,8 @@ public class LogServiceImpl implements LogService { | |||||||
|     @Override |     @Override | ||||||
|     public PageResp<LogResp> page(LogQuery query, PageQuery pageQuery) { |     public PageResp<LogResp> page(LogQuery query, PageQuery pageQuery) { | ||||||
|         QueryWrapper<LogDO> queryWrapper = this.buildQueryWrapper(query); |         QueryWrapper<LogDO> queryWrapper = this.buildQueryWrapper(query); | ||||||
|         IPage<LogResp> page = baseMapper.selectLogPage(pageQuery.toPage(), queryWrapper); |         IPage<LogResp> page = baseMapper.selectLogPage(new Page<>(pageQuery.getPage(), pageQuery | ||||||
|  |             .getSize()), queryWrapper); | ||||||
|         return PageResp.build(page); |         return PageResp.build(page); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -132,14 +133,14 @@ public class LogServiceImpl implements LogService { | |||||||
|      * @param sortQuery    排序查询条件 |      * @param sortQuery    排序查询条件 | ||||||
|      */ |      */ | ||||||
|     private void sort(QueryWrapper<LogDO> queryWrapper, SortQuery sortQuery) { |     private void sort(QueryWrapper<LogDO> queryWrapper, SortQuery sortQuery) { | ||||||
|         Sort sort = Opt.ofNullable(sortQuery).orElseGet(SortQuery::new).getSort(); |         if (sortQuery == null || sortQuery.getSort().isUnsorted()) { | ||||||
|         for (Sort.Order order : sort) { |             return; | ||||||
|             if (null != order) { |         } | ||||||
|  |         for (Sort.Order order : sortQuery.getSort()) { | ||||||
|             String property = order.getProperty(); |             String property = order.getProperty(); | ||||||
|             queryWrapper.orderBy(true, order.isAscending(), CharSequenceUtil.toUnderlineCase(property)); |             queryWrapper.orderBy(true, order.isAscending(), CharSequenceUtil.toUnderlineCase(property)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 构建 QueryWrapper |      * 构建 QueryWrapper | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ import cn.hutool.core.bean.BeanUtil; | |||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.metadata.IPage; | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
|  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||||
| @@ -32,7 +33,7 @@ import top.continew.admin.system.model.resp.MessageResp; | |||||||
| import top.continew.admin.system.service.MessageService; | import top.continew.admin.system.service.MessageService; | ||||||
| import top.continew.admin.system.service.MessageUserService; | import top.continew.admin.system.service.MessageUserService; | ||||||
| import top.continew.starter.core.util.validate.CheckUtils; | import top.continew.starter.core.util.validate.CheckUtils; | ||||||
| import top.continew.starter.data.mybatis.plus.query.QueryWrapperHelper; | import top.continew.starter.data.mybatis.plus.util.QueryWrapperHelper; | ||||||
| import top.continew.starter.extension.crud.model.query.PageQuery; | import top.continew.starter.extension.crud.model.query.PageQuery; | ||||||
| import top.continew.starter.extension.crud.model.resp.PageResp; | import top.continew.starter.extension.crud.model.resp.PageResp; | ||||||
|  |  | ||||||
| @@ -54,10 +55,11 @@ public class MessageServiceImpl implements MessageService { | |||||||
|     @Override |     @Override | ||||||
|     @AutoOperate(type = MessageResp.class, on = "list") |     @AutoOperate(type = MessageResp.class, on = "list") | ||||||
|     public PageResp<MessageResp> page(MessageQuery query, PageQuery pageQuery) { |     public PageResp<MessageResp> page(MessageQuery query, PageQuery pageQuery) { | ||||||
|         QueryWrapper<MessageDO> queryWrapper = QueryWrapperHelper.build(query); |         QueryWrapper<MessageDO> queryWrapper = QueryWrapperHelper.build(query, pageQuery.getSort()); | ||||||
|         queryWrapper.apply(null != query.getUserId(), "t2.user_id={0}", query.getUserId()) |         queryWrapper.apply(null != query.getUserId(), "t2.user_id={0}", query.getUserId()) | ||||||
|             .apply(null != query.getIsRead(), "t2.is_read={0}", query.getIsRead()); |             .apply(null != query.getIsRead(), "t2.is_read={0}", query.getIsRead()); | ||||||
|         IPage<MessageResp> page = baseMapper.selectPageByUserId(pageQuery.toPage(), queryWrapper); |         IPage<MessageResp> page = baseMapper.selectPageByUserId(new Page<>(pageQuery.getPage(), pageQuery | ||||||
|  |             .getSize()), queryWrapper); | ||||||
|         return PageResp.build(page); |         return PageResp.build(page); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ import top.continew.starter.cache.redisson.util.RedisUtils; | |||||||
| import top.continew.starter.core.constant.StringConstants; | import top.continew.starter.core.constant.StringConstants; | ||||||
| import top.continew.starter.core.util.validate.CheckUtils; | import top.continew.starter.core.util.validate.CheckUtils; | ||||||
| import top.continew.starter.core.util.validate.ValidationUtils; | import top.continew.starter.core.util.validate.ValidationUtils; | ||||||
| import top.continew.starter.data.mybatis.plus.query.QueryWrapperHelper; | import top.continew.starter.data.mybatis.plus.util.QueryWrapperHelper; | ||||||
|  |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|   | |||||||
| @@ -40,6 +40,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||||||
| import com.baomidou.mybatisplus.core.metadata.IPage; | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.support.SFunction; | import com.baomidou.mybatisplus.core.toolkit.support.SFunction; | ||||||
|  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||||
| import jakarta.annotation.Resource; | import jakarta.annotation.Resource; | ||||||
| import jakarta.servlet.http.HttpServletResponse; | import jakarta.servlet.http.HttpServletResponse; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
| @@ -116,7 +117,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|     @Override |     @Override | ||||||
|     public PageResp<UserResp> page(UserQuery query, PageQuery pageQuery) { |     public PageResp<UserResp> page(UserQuery query, PageQuery pageQuery) { | ||||||
|         QueryWrapper<UserDO> queryWrapper = this.buildQueryWrapper(query); |         QueryWrapper<UserDO> queryWrapper = this.buildQueryWrapper(query); | ||||||
|         IPage<UserDetailResp> page = baseMapper.selectUserPage(pageQuery.toPage(), queryWrapper); |         super.sort(queryWrapper, pageQuery); | ||||||
|  |         IPage<UserDetailResp> page = baseMapper.selectUserPage(new Page<>(pageQuery.getPage(), pageQuery | ||||||
|  |             .getSize()), queryWrapper); | ||||||
|         PageResp<UserResp> pageResp = PageResp.build(page, super.getListClass()); |         PageResp<UserResp> pageResp = PageResp.build(page, super.getListClass()); | ||||||
|         pageResp.getList().forEach(this::fill); |         pageResp.getList().forEach(this::fill); | ||||||
|         return pageResp; |         return pageResp; | ||||||
|   | |||||||
| @@ -5,5 +5,5 @@ | |||||||
|   \____|\___/ |_| |_| \__||_||_| \_| \___|  \_/\_/       /_/   \_\\__,_||_| |_| |_||_||_| |_| |   \____|\___/ |_| |_| \__||_||_| \_| \___|  \_/\_/       /_/   \_\\__,_||_| |_| |_||_||_| |_| | ||||||
|  |  | ||||||
|  :: ${project.name}   ::                                               v${project.version} |  :: ${project.name}   ::                                               v${project.version} | ||||||
|  :: ContiNew Starter ::                                               v2.5.1 |  :: ContiNew Starter ::                                               v2.5.2 | ||||||
|  :: Spring Boot      ::                                               v${spring-boot.version} |  :: Spring Boot      ::                                               v${spring-boot.version} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -13,7 +13,7 @@ | |||||||
|     <parent> |     <parent> | ||||||
|         <groupId>top.continew</groupId> |         <groupId>top.continew</groupId> | ||||||
|         <artifactId>continew-starter</artifactId> |         <artifactId>continew-starter</artifactId> | ||||||
|         <version>2.5.1</version> |         <version>2.5.2</version> | ||||||
|     </parent> |     </parent> | ||||||
|  |  | ||||||
|     <groupId>top.continew</groupId> |     <groupId>top.continew</groupId> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user