Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
afanti-open-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
java-ms
afanti-open-api
Commits
0c2e288d
Commit
0c2e288d
authored
Apr 28, 2023
by
陈炎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🎨
红旗数据api-优化2
parent
9d82b1f2
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
5 additions
and
20 deletions
+5
-20
MybatisPlusConfig.java
...com/afanticar/afantiopenapi/config/MybatisPlusConfig.java
+2
-17
CommonDataController.java
...nticar/afantiopenapi/controller/CommonDataController.java
+1
-1
BaseService.java
...java/com/afanticar/afantiopenapi/service/BaseService.java
+2
-2
No files found.
src/main/java/com/afanticar/afantiopenapi/config/MybatisPlusConfig.java
View file @
0c2e288d
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
;
}
}
src/main/java/com/afanticar/afantiopenapi/controller/CommonDataController.java
View file @
0c2e288d
...
...
@@ -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"
)
...
...
src/main/java/com/afanticar/afantiopenapi/service/BaseService.java
View file @
0c2e288d
...
...
@@ -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
.
get
Header
(
BaseController
.
header
));
String
fawKey
=
String
.
format
(
"%s:%s:limit"
,
dataType
,
request
.
get
Attribute
(
BaseController
.
header
));
RRateLimiter
rateLimiter
=
redissonClient
.
getRateLimiter
(
fawKey
);
rateLimiter
.
trySetRate
(
RateType
.
OVERALL
,
limit
,
limitPeriod
,
RateIntervalUnit
.
SECONDS
);
if
(!
rateLimiter
.
tryAcquire
(
1
,
waiting
,
TimeUnit
.
MILLISECONDS
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment