Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
9cb45a05
Commit
9cb45a05
authored
Feb 15, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加短信发送太频繁提示
parent
620adf45
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
10 deletions
+14
-10
src/main/java/cn/meteor/beyondclouds/core/flow/CollectAccessInfo.java
+2
-0
src/main/java/cn/meteor/beyondclouds/core/interceptor/IpAccessInfoCollectInterceptor.java
+10
-9
src/main/java/cn/meteor/beyondclouds/modules/sms/api/SmsApi.java
+2
-1
No files found.
src/main/java/cn/meteor/beyondclouds/core/flow/CollectAccessInfo.java
View file @
9cb45a05
...
...
@@ -29,4 +29,6 @@ public @interface CollectAccessInfo {
* @return
*/
TransmitType
transmitType
()
default
TransmitType
.
PATH
;
long
timeout
()
default
10
*
60
;
}
src/main/java/cn/meteor/beyondclouds/core/interceptor/IpAccessInfoCollectInterceptor.java
View file @
9cb45a05
...
...
@@ -56,9 +56,10 @@ public class IpAccessInfoCollectInterceptor implements HandlerInterceptor {
String
paramName
=
collectAccessInfo
.
paramName
();
ParamType
paramType
=
collectAccessInfo
.
type
();
TransmitType
transmitType
=
collectAccessInfo
.
transmitType
();
long
timeout
=
collectAccessInfo
.
timeout
();
String
paramValue
=
resolveParamValue
(
request
,
paramName
,
transmitType
);
AccessInfo
accessInfo
=
getAccessInfo
(
ipAddress
,
paramType
,
paramValue
);
AccessInfo
accessInfo
=
getAccessInfo
(
ipAddress
,
paramType
,
paramValue
,
timeout
);
accessInfo
.
setVisitCount
(
visitCount
);
accessInfo
.
setLatestVisitTime
(
latestVisitTime
);
request
.
setAttribute
(
SysConstants
.
HTTP_ATTRIBUTE_ACCESS_INFO
,
accessInfo
);
...
...
@@ -67,12 +68,12 @@ public class IpAccessInfoCollectInterceptor implements HandlerInterceptor {
return
true
;
}
private
AccessInfo
getAccessInfo
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
)
{
private
AccessInfo
getAccessInfo
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
,
long
timeout
)
{
AccessInfo
accessInfo
=
new
AccessInfo
();
accessInfo
.
setIpAddress
(
ipAddress
);
if
(!
StringUtils
.
isEmpty
(
paramValue
))
{
accessInfo
.
setFieldVisitCount
(
getAndIncreaseFieldVisitCount
(
ipAddress
,
paramType
,
paramValue
));
accessInfo
.
setFieldLatestVisitTime
(
getAndSetFieldLatestVisitTime
(
ipAddress
,
paramType
,
paramValue
));
accessInfo
.
setFieldVisitCount
(
getAndIncreaseFieldVisitCount
(
ipAddress
,
paramType
,
paramValue
,
timeout
));
accessInfo
.
setFieldLatestVisitTime
(
getAndSetFieldLatestVisitTime
(
ipAddress
,
paramType
,
paramValue
,
timeout
));
}
return
accessInfo
;
}
...
...
@@ -84,9 +85,9 @@ public class IpAccessInfoCollectInterceptor implements HandlerInterceptor {
* @param paramValue
* @return
*/
private
Long
getAndSetFieldLatestVisitTime
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
)
{
private
Long
getAndSetFieldLatestVisitTime
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
,
long
timeout
)
{
Long
latestVisitTime
=
redisHelper
.
get
(
RedisKey
.
IP_FILED_LATEST_VISIT_TIME
(
ipAddress
,
paramType
,
paramValue
),
Long
.
class
);
redisHelper
.
set
(
RedisKey
.
IP_FILED_LATEST_VISIT_TIME
(
ipAddress
,
paramType
,
paramValue
),
System
.
currentTimeMillis
(),
60
*
10
);
redisHelper
.
set
(
RedisKey
.
IP_FILED_LATEST_VISIT_TIME
(
ipAddress
,
paramType
,
paramValue
),
System
.
currentTimeMillis
(),
timeout
);
return
latestVisitTime
;
}
...
...
@@ -97,13 +98,13 @@ public class IpAccessInfoCollectInterceptor implements HandlerInterceptor {
* @param paramValue
* @return
*/
private
int
getAndIncreaseFieldVisitCount
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
)
{
private
int
getAndIncreaseFieldVisitCount
(
String
ipAddress
,
ParamType
paramType
,
String
paramValue
,
long
timeout
)
{
Integer
visitCount
=
redisHelper
.
get
(
RedisKey
.
IP_FILED_VISIT_COUNT
(
ipAddress
,
paramType
,
paramValue
),
Integer
.
class
);
if
(
null
==
visitCount
)
{
redisHelper
.
set
(
RedisKey
.
IP_FILED_VISIT_COUNT
(
ipAddress
,
paramType
,
paramValue
),
1
,
60
*
10
);
redisHelper
.
set
(
RedisKey
.
IP_FILED_VISIT_COUNT
(
ipAddress
,
paramType
,
paramValue
),
1
,
timeout
);
return
0
;
}
else
{
redisHelper
.
set
(
RedisKey
.
IP_FILED_VISIT_COUNT
(
ipAddress
,
paramType
,
paramValue
),
visitCount
+
1
,
60
*
10
);
redisHelper
.
set
(
RedisKey
.
IP_FILED_VISIT_COUNT
(
ipAddress
,
paramType
,
paramValue
),
visitCount
+
1
,
timeout
);
return
visitCount
;
}
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/sms/api/SmsApi.java
View file @
9cb45a05
...
...
@@ -6,6 +6,7 @@ import cn.meteor.beyondclouds.core.constant.RegexPatterns;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
import
cn.meteor.beyondclouds.core.flow.CollectAccessInfo
;
import
cn.meteor.beyondclouds.core.flow.ParamType
;
import
cn.meteor.beyondclouds.core.flow.TransmitType
;
import
cn.meteor.beyondclouds.modules.sms.enums.SmsErrorCode
;
import
cn.meteor.beyondclouds.modules.sms.exception.SmsServiceException
;
import
cn.meteor.beyondclouds.modules.sms.service.ISmsService
;
...
...
@@ -40,7 +41,7 @@ public class SmsApi {
@ApiOperation
(
"发送验证码"
)
@GetMapping
(
"/verifyCode"
)
public
Response
sendVerify
(
@RequestParam
(
"mobile"
)
String
mobile
,
@CollectAccessInfo
(
paramName
=
"mobile"
,
type
=
ParamType
.
SMS_CODE
)
AccessInfo
accessInfo
)
{
@CollectAccessInfo
(
transmitType
=
TransmitType
.
PARAM
,
paramName
=
"mobile"
,
type
=
ParamType
.
SMS_CODE
)
AccessInfo
accessInfo
)
{
if
(!
mobile
.
matches
(
RegexPatterns
.
MOBILE
))
{
return
Response
.
error
(
SmsErrorCode
.
INVALID_MOBILE
);
}
...
...
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