Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
4e6f3b8c
Commit
4e6f3b8c
authored
Jul 21, 2023
by
王亮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix an issue.(batch query)
parent
b3bf7eb3
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
84 additions
and
5 deletions
+84
-5
BehaviorApiV2Controller.java
...group/xyqb/controller/api/v2/BehaviorApiV2Controller.java
+12
-0
BehaviorRefreshReq.java
...quantgroup/xyqb/controller/req/v2/BehaviorRefreshReq.java
+9
-0
BehaviorV2Controller.java
...n/quantgroup/xyqb/controller/v2/BehaviorV2Controller.java
+12
-0
BizExceptionEnum.java
...n/java/cn/quantgroup/xyqb/exception/BizExceptionEnum.java
+1
-1
TokenInterceptor.java
...main/java/cn/quantgroup/xyqb/filter/TokenInterceptor.java
+1
-0
BehaviorContext.java
...n/java/cn/quantgroup/xyqb/service/v2/BehaviorContext.java
+10
-0
BehaviorStrategy.java
.../java/cn/quantgroup/xyqb/service/v2/BehaviorStrategy.java
+3
-0
GeetestBehaviorStrategy.java
...n/quantgroup/xyqb/service/v2/GeetestBehaviorStrategy.java
+6
-0
QuantGroupBehaviorStrategy.java
...uantgroup/xyqb/service/v2/QuantGroupBehaviorStrategy.java
+30
-4
No files found.
src/main/java/cn/quantgroup/xyqb/controller/api/v2/BehaviorApiV2Controller.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
controller
.
api
.
v2
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.model.BehaviorCodeBean
;
import
cn.quantgroup.xyqb.model.JsonResult
;
...
...
@@ -27,4 +28,15 @@ public class BehaviorApiV2Controller {
public
JsonResult
<
BehaviorCodeBean
>
getCode
(
@Valid
@RequestBody
BehaviorReq
behaviorReq
){
return
JsonResult
.
buildSuccessResultGeneric
(
behaviorContext
.
generate
(
behaviorReq
));
}
/**
* 统一刷新行为验证码
* @return JsonResult<SMSCodeBean>
* @see <a href="http://yapi.quantgroups.com/project/17/interface/api/65824">统一获取行为验证码</a>
*/
@PostMapping
(
"/refresh"
)
public
JsonResult
<
BehaviorCodeBean
>
refreshCode
(
@Valid
@RequestBody
BehaviorRefreshReq
behaviorRefreshReq
){
return
JsonResult
.
buildSuccessResultGeneric
(
behaviorContext
.
refresh
(
behaviorRefreshReq
));
}
}
src/main/java/cn/quantgroup/xyqb/controller/req/v2/BehaviorRefreshReq.java
0 → 100644
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
controller
.
req
.
v2
;
import
lombok.Data
;
@Data
public
class
BehaviorRefreshReq
{
private
String
id
;
private
Integer
type
;
}
src/main/java/cn/quantgroup/xyqb/controller/v2/BehaviorV2Controller.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
controller
.
v2
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.model.BehaviorCodeBean
;
import
cn.quantgroup.xyqb.model.JsonResult
;
...
...
@@ -27,4 +28,15 @@ public class BehaviorV2Controller {
public
JsonResult
<
BehaviorCodeBean
>
getCode
(
@Valid
@RequestBody
BehaviorReq
behaviorReq
){
return
JsonResult
.
buildSuccessResultGeneric
(
behaviorContext
.
generate
(
behaviorReq
));
}
/**
* 统一刷新行为验证码
* @return JsonResult<SMSCodeBean>
* @see <a href="http://yapi.quantgroups.com/project/17/interface/api/65824">统一获取行为验证码</a>
*/
@PostMapping
(
"/refresh"
)
public
JsonResult
<
BehaviorCodeBean
>
refreshCode
(
@Valid
@RequestBody
BehaviorRefreshReq
behaviorReq
){
return
JsonResult
.
buildSuccessResultGeneric
(
behaviorContext
.
refresh
(
behaviorReq
));
}
}
src/main/java/cn/quantgroup/xyqb/exception/BizExceptionEnum.java
View file @
4e6f3b8c
...
...
@@ -31,7 +31,7 @@ public enum BizExceptionEnum {
// 验证码相关 20 开头
FAIL_GENERATE_IMAGE
(
"2001"
,
"生成图片失败"
),
FAIL_VERIFY_CODE
(
"2002"
,
"图形验证码错误"
),
FAIL_VERIFY_CODE
(
"2002"
,
"图形验证码
验证
错误"
),
UN_EXIT_VERIFY_TYPE
(
"2003"
,
"不存在的验证码方式"
),
UN_EXIT_VERIFY_CODE
(
"2004"
,
"验证模式下验证码参数不能为空"
),
EX_GET_VERIFY_CODE
(
"2005"
,
"获取验证码失败"
),
...
...
src/main/java/cn/quantgroup/xyqb/filter/TokenInterceptor.java
View file @
4e6f3b8c
...
...
@@ -24,6 +24,7 @@ public class TokenInterceptor implements HandlerInterceptor {
public
TokenInterceptor
(
ISessionService
sessionService
)
{
this
.
sessionService
=
sessionService
;
excludes
.
add
(
"/v2/oauth/login"
);
excludes
.
add
(
"/v2/behavior/refresh"
);
excludes
.
add
(
"/v2/sms/code"
);
excludes
.
add
(
"/v2/sms/verify"
);
}
...
...
src/main/java/cn/quantgroup/xyqb/service/v2/BehaviorContext.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
service
.
v2
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior
;
import
cn.quantgroup.xyqb.exception.BizException
;
...
...
@@ -27,6 +28,15 @@ public class BehaviorContext {
}
return
behaviorStrategy
.
generate
(
behaviorReq
);
}
public
BehaviorCodeBean
refresh
(
BehaviorRefreshReq
behaviorRefreshReq
){
BehaviorStrategy
behaviorStrategy
=
behaviorStrategyMap
.
get
(
behaviorRefreshReq
.
getType
());
if
(
behaviorStrategy
==
null
){
throw
new
BizException
(
BizExceptionEnum
.
UN_EXIT_VERIFY_TYPE
);
}
return
behaviorStrategy
.
refresh
(
behaviorRefreshReq
);
}
public
boolean
validate
(
ValidateBehavior
validateBehavior
){
BehaviorStrategy
behaviorStrategy
=
behaviorStrategyMap
.
get
(
validateBehavior
.
getType
());
...
...
src/main/java/cn/quantgroup/xyqb/service/v2/BehaviorStrategy.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
service
.
v2
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior
;
import
cn.quantgroup.xyqb.model.BehaviorCodeBean
;
...
...
@@ -9,4 +10,6 @@ public interface BehaviorStrategy {
boolean
validate
(
ValidateBehavior
validateBehavior
);
BehaviorCodeBean
generate
(
BehaviorReq
behaviorReq
);
BehaviorCodeBean
refresh
(
BehaviorRefreshReq
behaviorRefreshReq
);
}
src/main/java/cn/quantgroup/xyqb/service/v2/GeetestBehaviorStrategy.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
service
.
v2
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior
;
import
cn.quantgroup.xyqb.entity.GeetestLogEntity
;
...
...
@@ -106,4 +107,9 @@ public class GeetestBehaviorStrategy implements BehaviorStrategy {
}
return
behaviorCodeBean
;
}
@Override
public
BehaviorCodeBean
refresh
(
BehaviorRefreshReq
behaviorRefreshReq
)
{
throw
new
UnsupportedOperationException
();
}
}
src/main/java/cn/quantgroup/xyqb/service/v2/QuantGroupBehaviorStrategy.java
View file @
4e6f3b8c
package
cn
.
quantgroup
.
xyqb
.
service
.
v2
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.constant.UserConstant
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorRefreshReq
;
import
cn.quantgroup.xyqb.controller.req.v2.BehaviorReq
;
import
cn.quantgroup.xyqb.controller.req.v2.ValidateBehavior
;
import
cn.quantgroup.xyqb.exception.BizException
;
...
...
@@ -9,13 +11,19 @@ import cn.quantgroup.xyqb.model.BehaviorCodeBean;
import
cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService
;
import
cn.quantgroup.xyqb.thirdparty.jcaptcha.AbstractManageableImageCaptchaService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.binary.Base64
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
/**
* 公司自有验证码模式
...
...
@@ -41,11 +49,11 @@ public class QuantGroupBehaviorStrategy implements BehaviorStrategy {
@Override
public
boolean
validate
(
ValidateBehavior
validateBehavior
)
{
boolean
result
=
quantgroupCaptchaService
.
validQuantgroupCaptcha
(
validateBehavior
.
getData
().
get
(
Constants
.
X_BEHAVIOR_ID
),
validateBehavior
.
getData
().
get
(
Constants
.
X_BEHAVIOR_IMAGEVALUE
));
if
(
result
)
{
boolean
result
=
quantgroupCaptchaService
.
validQuantgroupCaptcha
(
validateBehavior
.
getData
().
get
(
Constants
.
X_BEHAVIOR_ID
),
validateBehavior
.
getData
().
get
(
Constants
.
X_BEHAVIOR_IMAGEVALUE
));
if
(
result
)
{
return
true
;
}
else
{
throw
new
BizException
(
BizExceptionEnum
.
FAIL_VERIFY_CODE
);
}
else
{
throw
new
BizException
(
BizExceptionEnum
.
FAIL_VERIFY_CODE
);
}
}
...
...
@@ -61,4 +69,22 @@ public class QuantGroupBehaviorStrategy implements BehaviorStrategy {
behaviorCodeBean
.
setId
(
challenge
.
get
(
"imageId"
));
return
behaviorCodeBean
;
}
@Override
public
BehaviorCodeBean
refresh
(
BehaviorRefreshReq
behaviorRefreshReq
)
{
BufferedImage
challenge
=
imageCaptchaService
.
getImageChallengeForID
(
Constants
.
IMAGE_CAPTCHA_KEY
+
behaviorRefreshReq
.
getId
(),
Locale
.
CHINA
);
ByteArrayOutputStream
jpegOutputStream
=
new
ByteArrayOutputStream
();
try
{
ImageIO
.
write
(
challenge
,
UserConstant
.
IMAGE_FORMAT_PNG
,
jpegOutputStream
);
}
catch
(
IOException
e
)
{
throw
new
BizException
(
BizExceptionEnum
.
FAIL_GENERATE_IMAGE
);
}
String
imageBase64
=
Base64
.
encodeBase64String
(
jpegOutputStream
.
toByteArray
());
BehaviorCodeBean
behaviorCodeBean
=
new
BehaviorCodeBean
();
behaviorCodeBean
.
setId
(
behaviorRefreshReq
.
getId
());
behaviorCodeBean
.
setType
(
2
);
behaviorCodeBean
.
setQtCode
(
BehaviorCodeBean
.
QtCode
.
builder
().
imageData
(
String
.
format
(
UserConstant
.
IMG_BASE64_PATTREN
,
imageBase64
)).
build
());
redisTemplate
.
opsForValue
().
set
(
Constants
.
IMAGE_CAPTCHA_REDIS_CACHE_KEY
.
concat
(
behaviorRefreshReq
.
getId
()),
"1"
,
Constants
.
IMAGE_CAPTCHA_REDIS_CACHE_TIME_OUT
,
TimeUnit
.
MINUTES
);
return
behaviorCodeBean
;
}
}
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