Commit 0c2e288d authored by 陈炎's avatar 陈炎

🎨 红旗数据api-优化2

parent 9d82b1f2
package com.afanticar.afantiopenapi.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -17,23 +17,8 @@ public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor());
//乐观锁
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
/**
* 分页插件,自动识别数据库类型
*/
public PaginationInnerInterceptor paginationInnerInterceptor() {
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置最大单页限制数量,默认 500 条,-1 不受限制 设置后无法使用临时不分页
// paginationInnerInterceptor.setMaxLimit(-1L);
// 分页合理化
paginationInnerInterceptor.setOverflow(true);
return paginationInnerInterceptor;
}
}
......@@ -50,7 +50,7 @@ public class CommonDataController extends BaseController {
@ApiOperation(value = "活动数据信息", notes = "活动数据", produces = "application/json")
@ApiImplicitParams({
@ApiImplicitParam(name = "page_num", value = "页码", paramType = "path", dataType = "Integer"),
@ApiImplicitParam(name = "current_page", value = "页码", paramType = "path", dataType = "Integer"),
@ApiImplicitParam(name = "page_size", value = "页数", paramType = "path", dataType = "Integer"),
})
@GetMapping("/activity")
......
......@@ -31,7 +31,7 @@ public class BaseService {
}
String fawKey = String.format("%s:limit", dataType);
RRateLimiter rateLimiter = redissonClient.getRateLimiter(fawKey);
rateLimiter.trySetRate(RateType.OVERALL, limit,limitPeriod, RateIntervalUnit.SECONDS);
rateLimiter.trySetRate(RateType.OVERALL, limit, limitPeriod, RateIntervalUnit.SECONDS);
if (!rateLimiter.tryAcquire(1, waiting, TimeUnit.MILLISECONDS)) {
return BaseController.error("403", "您的请求太过频繁,请稍后再试!");
}
......@@ -39,7 +39,7 @@ public class BaseService {
}
public BaseResponse baseLimit(HttpServletRequest request, String dataType, Integer limit, Integer limitPeriod) {
String fawKey = String.format("%s:%s:limit", dataType, request.getHeader(BaseController.header));
String fawKey = String.format("%s:%s:limit", dataType, request.getAttribute(BaseController.header));
RRateLimiter rateLimiter = redissonClient.getRateLimiter(fawKey);
rateLimiter.trySetRate(RateType.OVERALL, limit,limitPeriod, RateIntervalUnit.SECONDS);
if (!rateLimiter.tryAcquire(1, waiting, TimeUnit.MILLISECONDS)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment