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
54f30328
Commit
54f30328
authored
Mar 06, 2018
by
技术部-任文超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
按主包逻辑规范文案和调整代码逻辑
parent
323eefa0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
39 deletions
+55
-39
InnerController.java
...tgroup/xyqb/controller/external/user/InnerController.java
+29
-12
UserController.java
...ntgroup/xyqb/controller/internal/user/UserController.java
+5
-27
ISmsService.java
...main/java/cn/quantgroup/xyqb/service/sms/ISmsService.java
+8
-0
SmsServiceImpl.java
...a/cn/quantgroup/xyqb/service/sms/impl/SmsServiceImpl.java
+13
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/user/InnerController.java
View file @
54f30328
...
...
@@ -196,7 +196,6 @@ public class InnerController implements IBaseController {
}
if
(
StringUtils
.
isBlank
(
password
))
{
password
=
genRandomPwd
();
password
=
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
);
}
if
(
StringUtils
.
isBlank
(
uuid
))
{
return
JsonResult
.
buildErrorStateResult
(
"用户uuid为空."
,
null
);
...
...
@@ -1121,7 +1120,10 @@ public class InnerController implements IBaseController {
count
++;
}
}
return
pwd
.
toString
();
String
password
=
pwd
.
toString
();
// 加密保存
password
=
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
);
return
password
;
}
/**
...
...
@@ -1135,20 +1137,35 @@ public class InnerController implements IBaseController {
@LogHttpCaller
@RequestMapping
(
"/verifyPhoneAndCode"
)
public
JsonResult
verifyPhoneAndCode
(
@RequestParam
String
phoneNo
,
@RequestParam
String
verificationCode
)
{
User
user
=
null
;
if
(
smsService
.
verifyPhoneAndCode
(
phoneNo
,
verificationCode
))
{
user
=
userService
.
findByPhoneWithCache
(
phoneNo
);
}
else
{
return
JsonResult
.
buildErrorStateResult
(
"校验失败"
,
""
);
// 验证手机号
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
LOGGER
.
info
(
"验证手机号和验证码是否匹配,手机号错误, phoneNo:{}"
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"手机号错误"
,
""
);
}
// 验证短信验证码
if
(!
smsService
.
verifyPhoneAndCode
(
phoneNo
,
verificationCode
))
{
// 是否需要重新获取
//if(smsService.needResendCode(phoneNo)){
// return JsonResult.buildErrorStateResult("验证码失效,请重新获取", "");
//}
LOGGER
.
info
(
"验证码校验失败,phoneNo:{} , verificationCode:{}"
,
phoneNo
,
verificationCode
);
return
JsonResult
.
buildErrorStateResult
(
"短信验证码错误"
,
""
);
}
if
(
user
==
null
)
{
user
=
userRegisterService
.
register
(
phoneNo
,
""
,
null
);
User
user
=
userService
.
findByPhoneWithCache
(
phoneNo
);
// 检查用户有效性
if
(
user
!=
null
&&
!
user
.
getEnable
())
{
LOGGER
.
error
(
"用户不存在,或者已经注销,phoneNo:{}"
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
// 用户不存在时自动注册
if
(
Objects
.
isNull
(
user
))
{
return
JsonResult
.
buildErrorStateResult
(
"用户不存在"
,
""
);
}
else
{
return
JsonResult
.
buildSuccessResult
(
"校验成功"
,
new
UserRet
(
user
));
user
=
userRegisterService
.
register
(
phoneNo
,
genRandomPwd
(),
null
);
// 注册失败
if
(
Objects
.
isNull
(
user
))
{
return
JsonResult
.
buildErrorStateResult
(
"用户不存在"
,
""
);
}
}
return
JsonResult
.
buildSuccessResult
(
"校验成功"
,
new
UserRet
(
user
));
}
@LogHttpCaller
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserController.java
View file @
54f30328
...
...
@@ -181,7 +181,7 @@ public class UserController implements IBaseController {
JsonResult
successResult
=
validMap
.
get
(
"success"
);
String
phoneNo
=
successResult
.
getData
().
toString
();
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
LOGGER
.
info
(
"用户快速
注册
失败,手机号错误, createdFrom:{},phoneNo:{}"
,
createdFrom
,
phoneNo
);
LOGGER
.
info
(
"用户快速
登录
失败,手机号错误, createdFrom:{},phoneNo:{}"
,
createdFrom
,
phoneNo
);
throw
new
UserNotExistException
(
"手机号错误"
);
}
String
verificationCode
=
successResult
.
getMsg
();
...
...
@@ -492,35 +492,13 @@ public class UserController implements IBaseController {
*/
private
void
verifyPhoneAndCode
(
String
phoneNo
,
String
verificationCode
)
{
if
(!
smsService
.
verifyPhoneAndCode
(
phoneNo
,
verificationCode
))
{
smsReSendOrNot
(
phoneNo
);
// 是否需要重新发送短信验证码
if
(
smsService
.
needResendCode
(
phoneNo
)){
throw
new
VerificationCodeErrorException
(
"验证码失效,请重新获取"
);
}
LOGGER
.
info
(
"验证码校验失败,phoneNo:{} , verificationCode:{}"
,
phoneNo
,
verificationCode
);
throw
new
VerificationCodeErrorException
(
"短信验证码错误"
);
}
}
/**
* 是否需要重新获取短信验证码
* @param phoneNo
*/
private
void
smsReSendOrNot
(
String
phoneNo
)
{
if
(
needRetSendCode
(
phoneNo
)){
String
key
=
Constants
.
REDIS_PREFIX_VERIFICATION_CODE
+
phoneNo
;
stringRedisTemplate
.
delete
(
key
);
String
verificationCountKey
=
Constants
.
REDIS_VERIFICATION_COUNT
+
phoneNo
;
stringRedisTemplate
.
opsForHash
().
delete
(
verificationCountKey
,
Constants
.
REDIS_VERIFICATION_COUNT
);
throw
new
VerificationCodeErrorException
(
"验证码失效,请重新获取"
);
}
}
/**
* 是否需要重新发送短信验证码
* @param phoneNo
* @return
*/
private
boolean
needRetSendCode
(
String
phoneNo
)
{
String
verificationCountKey
=
Constants
.
REDIS_VERIFICATION_COUNT
+
phoneNo
;
Long
getVerificationCount
=
stringRedisTemplate
.
opsForHash
().
increment
(
verificationCountKey
,
Constants
.
REDIS_VERIFICATION_COUNT
,
1
);
return
(
getVerificationCount
>=
Constants
.
VERIFICATION_CODE_FINITE_COUNT
);
}
}
src/main/java/cn/quantgroup/xyqb/service/sms/ISmsService.java
View file @
54f30328
package
cn
.
quantgroup
.
xyqb
.
service
.
sms
;
import
cn.quantgroup.sms.SmsSender
;
import
cn.quantgroup.xyqb.Constants
;
/**
* 短信发送服务
...
...
@@ -24,4 +25,11 @@ public interface ISmsService {
*/
boolean
verifyPhoneAndCode
(
String
phoneNo
,
String
verificationCode
);
/**
* 是否需要重新发送短信验证码
* @param phoneNo
* @return
*/
boolean
needResendCode
(
String
phoneNo
);
}
src/main/java/cn/quantgroup/xyqb/service/sms/impl/SmsServiceImpl.java
View file @
54f30328
...
...
@@ -110,4 +110,17 @@ public class SmsServiceImpl implements ISmsService {
return
StringUtils
.
equals
(
code
,
smsVerificationCode
);
}
@Override
public
boolean
needResendCode
(
String
phoneNo
)
{
String
verificationCountKey
=
Constants
.
REDIS_VERIFICATION_COUNT
+
phoneNo
;
Long
getVerificationCount
=
stringRedisTemplate
.
opsForHash
().
increment
(
verificationCountKey
,
Constants
.
REDIS_VERIFICATION_COUNT
,
1
);
boolean
needResend
=
getVerificationCount
>=
Constants
.
VERIFICATION_CODE_FINITE_COUNT
;
if
(
needResend
)
{
String
key
=
Constants
.
REDIS_PREFIX_VERIFICATION_CODE
+
phoneNo
;
stringRedisTemplate
.
delete
(
key
);
stringRedisTemplate
.
opsForHash
().
delete
(
verificationCountKey
,
Constants
.
REDIS_VERIFICATION_COUNT
);
}
return
needResend
;
}
}
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