Treasure导入生成
  1. 优化Api
Treasure导入生成
  • 优化Api
    • 深分页查询优化
      POST
  • 代码生成
    • GenerateEnumController
      • 生成
  • 统一认证
    • LoginController: 登录
      • 登录 </br>
    • ManageFeignController: 模拟远程调用 manage 进行登录接口 (目前问题: 登录信息返回、用户锁定等功能不方便实现)
      • 测试 feign 调用
  • TreasureFileController
    • 根据主键查询,返回单个对象
      GET
    • 查询所有,返回对象 List
      GET
    • 根据对象 id 查询对象是否存在,返回布尔值
      GET
    • 保存一个对象到数据库,返回布尔值
      POST
    • 删除单条记录,返回布尔值
      DELETE
    • 搜索所有符合条件的列表
      POST
    • 分页搜索所有符合条件的列表
      POST
    • 搜索符合条件的第一条记录
      POST
    • 搜索符合条件的记录条数
      POST
  • SystemOperateLogController
    • 根据主键查询,返回单个对象
      GET
    • 根据主键集合查询,返回对象 List
      POST
    • 查询所有,返回对象 List
      GET
    • 分页查询,返回 对象 page
      GET
    • 获取数据表总记录条数,返回统计数量
      GET
    • 根据对象 id 查询对象是否存在,返回布尔值
      GET
    • 保存一个对象到数据库,返回布尔值
      POST
    • 批量添加,返回布尔值
      POST
    • 删除单条记录,返回布尔值
      DELETE
    • 批量删除记录,返回布尔值
      DELETE
  • 最佳实践
    • 支付控制器:简单工厂 + 模版方法 + 策略模式 + 函数式接口
      • 支付测试
    • 短信API
      • aliyunSmsSend
    • CorsController: Cross Origin Resource Sharing
      • 测试跨域请求
    • AsyncController <
      • br>
        • 异步任务测试1
        • 异步任务测试2
        • 测试线程池提供异步任务
        • 测试线程池提供异步任务
    • 订单控制器: 观察者模式 <
      • br>
        • 创建订单
        • 创建订单2
    • 国际化 控制器
      • 中文
      • US
    • OweFeeController: 欠费用户模拟发送消息,进行异步短信处理;异步,请求削峰 <
      • br>
        • 欠费用户模拟发送消息
    • MessageController: 消息可靠投递、可靠、顺序消费案例
      • 模拟订阅消杀业务
      • 消息投递
    • AreaUtilController
      • 测试
    • ReSubmit 控制器
      • 防止重复提交测试
    • 批量存储控制器
      • mybatis实现批量插入
      • 多线程实现批量插入(自带线程池,存在OOM问题)
      • 多线程实现批量插入,自定义线程池
    • EasyCache 控制器
      • 测试方法
    • ExceptionController
      • 测试
    • MarketingController: 活动营销 (状态模式实现)<
      • br>
        • 更新活动状态
    • RedisLockController
      • redis lock 实现测试
    • 加解密、脱敏 API
      • 解密脱敏
      • 加密脱敏
    • 测试 feign 调用: business --> task
      • feign: business --> task
    • 微信公众号API
      • 月早安通知立即发送
      • 月晚安通知立即发送
    • DictionaryController: AOP 动态字典实现业务案例
      • 测试
    • JavaScriptController
      • 测试
    • EnumConvertController: 枚举序列化和反序列化案例 <
      • br>
        • 枚举序列化和反序列化DTO
        • 枚举序列化和反序列化 enum
    • Mybatis Plus控制器 <
      • br>
        • mybatis plus
    • redis限流实现API
      • redis限流测试
    • DeserializerController <
      • br>
        • 反序列化程序测试
    • OptimizeUtilController: 优化工具测试
      • API使用测试
    • TaskGenerateController
      • 测试
    • 自定义规则校验 <
      • br>
        • 校验案例
    • DesensitizationController: 数据脱敏测试API
      • 数据脱敏测试
    • 进度条任务API
      • 提交进度条任务
      • 查询任务进度
    • CompletableFutureController
      • 测试
    • OperationLogRecordController: AOP 操作日志案例
      • 操作日志记录案例
    • ResponseBodyAdviceController: 统一返回测试
      • 无返回值测试
      • Boolean返回值测试
      • String返回值测试
      • Result返回值测试
      • 参数校验测试
  • 测试控制器
  • QuartzController
    • 获取所有执行中的任务列表
    • 获取定时任务信息列表
    • 添加一个定时任务信息
    • 修改运行中的任务信息
    • 立即执行
    • 分页查询所有日志信息
    • 修改定时任务状态
    • 删除定时任务
  • SysMenuController
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • SysRoleController
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • 系统用户控制器
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • SysConfigController
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • SysElementController
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • UserSearchController
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • SysDepartmentController
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  • SysDictionaryController: TODO 搜索暂不能用,默认数据源,BeanSearch 数据源切换问题待处理
    • 根据主键查询,返回单个对象,默认开启持久层对象到视图对象的转换
    • 根据主键集合查询,返回对象列表,默认开启持久层对象到视图对象的转换
    • 查询所有,返回对象列表,默认开启持久层对象到视图对象的转换(数据量大时慎用)
    • 分页查询,返回 对象 page
    • 获取数据表总记录条数,返回统计数量
    • 根据对象 id 查询对象是否存在,返回布尔值
    • 修改数据表单条记录,返回布尔值
    • 批量修改,返回布尔值
    • 批量添加,返回布尔值
    • 保存一个对象到数据库,返回布尔值
    • 删除单条记录,返回布尔值
    • 批量删除记录,返回布尔值
    • 搜索所有符合条件的列表
    • 分页搜索所有符合条件的列表
    • 搜索符合条件的第一条记录
    • 搜索符合条件的记录条数
  1. 优化Api

深分页查询优化

POST
/optimize/deep-page
适用于自增id
数据总条数:4301000
自带查询分页性能:
  • 第 1 页 10 条关闭count查询优化耗时:4秒
  • 第 100,00 页 100 条关闭count查询优化耗时:5秒
  • 第 100,000 页 100 条关闭count查询优化耗时:5秒
  • 第 1 页 10 条打开count查询优化耗时:4秒
  • 第 100,00 页 100 条打开count查询优化耗时:4秒
  • 第 100,000 页 100 条打开count查询优化耗时:4秒
优化后性能:
  • 第 1 页 10 条耗时:30~80毫秒
  • 第 100,00 页 100 条耗时:30~80毫秒
  • 第 100,000 页 100 条耗时:30~80秒
再进行统计总记录条数时会遇到瓶颈,正确的处理方式应该是杜绝深分页,不会有用户往下翻到地100页
一般选择50页即可

请求参数

Header 参数
Content-Type
string 
必需
Body 参数application/json
current
integer 
当前页
必需
pageSize
integer 
页面大小
必需
示例
{
    "current": 0,
    "pageSize": 0
}

示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'http://test-cn.your-api-server.com/optimize/deep-page' \
--header 'Content-Type: application/json' \
--data-raw '{
    "current": 0,
    "pageSize": 0
}'

返回响应

🟢200成功
application/json
Body
当前时间,默认显示当前时间
code
integer 
可选
message
string 
可选
data
object (PageData«SysUser») 
可选
data
array[object (SysUser) {13}] 
可选
totalNum
integer 
总页数
可选
pageSize
integer 
页面大小
可选
pageNum
integer 
当前页
可选
currentTime
string 
可选
示例
{
  "code": 0,
  "message": "",
  "data": {
    "pageSize": 0,
    "pageNum": 0,
    "totalNum": 0,
    "data": [
      {
        "id": 0,
        "account": "",
        "nickname": "",
        "gender": "",
        "lastLoginTime": "",
        "status": "",
        "createTime": "",
        "updateTime": "",
        "deleted": 0,
        "version": 0,
        "createBy": "",
        "updateBy": "",
        "remark": ""
      }
    ]
  },
  "currentTime": ""
}
下一页
生成
Built with