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
d18fa48c
Commit
d18fa48c
authored
Jun 06, 2017
by
技术部—现金贷—曾丽宾
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into wechat-forward
parents
44f8aeee
b3d357c3
Changes
32
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
941 additions
and
71 deletions
+941
-71
pom.xml
pom.xml
+1
-1
MotanUserServiceImpl.java
.../xyqb/controller/external/motan/MotanUserServiceImpl.java
+214
-17
AppController.java
...antgroup/xyqb/controller/external/user/AppController.java
+32
-5
InnerController.java
...tgroup/xyqb/controller/external/user/InnerController.java
+130
-20
UserCenterController.java
...controller/external/user/center/UserCenterController.java
+6
-4
AuthInfoController.java
...up/xyqb/controller/internal/login/AuthInfoController.java
+16
-1
UserController.java
...ntgroup/xyqb/controller/internal/user/UserController.java
+24
-7
Contact.java
src/main/java/cn/quantgroup/xyqb/entity/Contact.java
+1
-1
UserBtRegister.java
src/main/java/cn/quantgroup/xyqb/entity/UserBtRegister.java
+62
-0
UserExtInfo.java
src/main/java/cn/quantgroup/xyqb/entity/UserExtInfo.java
+19
-1
UserSpouse.java
src/main/java/cn/quantgroup/xyqb/entity/UserSpouse.java
+1
-1
ContactRet.java
src/main/java/cn/quantgroup/xyqb/model/ContactRet.java
+1
-1
LoginProperties.java
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
+1
-0
UserDetailRet.java
src/main/java/cn/quantgroup/xyqb/model/UserDetailRet.java
+1
-1
UserExtInfoRet.java
src/main/java/cn/quantgroup/xyqb/model/UserExtInfoRet.java
+1
-1
UserSpouseRet.java
src/main/java/cn/quantgroup/xyqb/model/UserSpouseRet.java
+1
-1
LoginInfo.java
...main/java/cn/quantgroup/xyqb/model/session/LoginInfo.java
+9
-1
IUserBtRegisterRepository.java
...quantgroup/xyqb/repository/IUserBtRegisterRepository.java
+11
-0
UserBtRegisterFill.java
...group/xyqb/service/session/aspect/UserBtRegisterFill.java
+13
-0
UserBtRegisterFillAspect.java
...xyqb/service/session/aspect/UserBtRegisterFillAspect.java
+58
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+2
-0
IUserBtRegisterService.java
.../quantgroup/xyqb/service/user/IUserBtRegisterService.java
+13
-0
IUserService.java
...in/java/cn/quantgroup/xyqb/service/user/IUserService.java
+34
-0
UserBtRegisterServiceImpl.java
...oup/xyqb/service/user/impl/UserBtRegisterServiceImpl.java
+42
-0
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+190
-2
UserDetailVO.java
...java/cn/quantgroup/xyqb/service/user/vo/UserDetailVO.java
+2
-0
XyqbSessionContextHolder.java
.../cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
+24
-0
logback.xml
src/main/resources/config/dev/logback.xml
+1
-1
xyqb.properties
src/main/resources/config/dev/xyqb.properties
+4
-2
logback.xml
src/main/resources/config/test/logback.xml
+1
-1
DemoApplicationTests.java
src/test/java/demo/DemoApplicationTests.java
+2
-2
TestUserLogin.java
src/test/java/user/TestUserLogin.java
+24
-0
No files found.
pom.xml
View file @
d18fa48c
...
@@ -257,7 +257,7 @@
...
@@ -257,7 +257,7 @@
<dependency>
<dependency>
<groupId>
cn.quantgroup
</groupId>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
xyqb-user-rpc-commons
</artifactId>
<artifactId>
xyqb-user-rpc-commons
</artifactId>
<version>
1.
0
-SNAPSHOT
</version>
<version>
1.
1.2
-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/motan/MotanUserServiceImpl.java
View file @
d18fa48c
...
@@ -6,45 +6,53 @@ import cn.quantgroup.motan.service.UserMotanService;
...
@@ -6,45 +6,53 @@ import cn.quantgroup.motan.service.UserMotanService;
import
cn.quantgroup.motan.vo.UserSysResult
;
import
cn.quantgroup.motan.vo.UserSysResult
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.enumerate.*
;
//import cn.quantgroup.xyqb.entity.enumerate.*;
import
cn.quantgroup.xyqb.model.IdCardInfo
;
import
cn.quantgroup.user.enums.*
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.LoginProperties
;
import
cn.quantgroup.xyqb.model.UserRet
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.service.api.IUserApiService
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.vo.UserDetailVO
;
import
cn.quantgroup.xyqb.service.user.vo.UserDetailVO
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.session.XyqbSessionContextHolder
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.google.common.collect.ImmutableMap
;
import
com.weibo.api.motan.config.springsupport.annotation.MotanService
;
import
com.weibo.api.motan.config.springsupport.annotation.MotanService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.Random
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
cn
.
quantgroup
.
xyqb
.
constant
.
UserConstant
.
USER_ERROR_OR_PASSWORD_ERROR
;
/**
/**
* Created by 11 on 2017/2/27.
* Created by 11 on 2017/2/27.
*/
*/
@Slf4j
@Slf4j
@MotanService
(
basicService
=
"baseServiceConfig"
)
@MotanService
(
basicService
=
"baseServiceConfig"
)
public
class
MotanUserServiceImpl
implements
UserMotanService
{
public
class
MotanUserServiceImpl
implements
UserMotanService
{
private
static
final
ObjectMapper
MAPPER
=
new
ObjectMapper
();
private
static
final
ObjectMapper
MAPPER
=
new
ObjectMapper
();
private
final
static
Random
random
=
new
Random
();
private
final
static
Random
random
=
new
Random
();
...
@@ -52,6 +60,10 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -52,6 +60,10 @@ public class MotanUserServiceImpl implements UserMotanService {
MAPPER
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
MAPPER
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
}
}
@Value
(
"${xyqb.auth.url}"
)
private
String
xyqbAuthUrl
;
@Autowired
@Autowired
private
IIdCardService
idCardService
;
private
IIdCardService
idCardService
;
@Autowired
@Autowired
...
@@ -79,6 +91,16 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -79,6 +91,16 @@ public class MotanUserServiceImpl implements UserMotanService {
@Autowired
@Autowired
private
IUserSpouseService
userSpouseService
;
private
IUserSpouseService
userSpouseService
;
@Autowired
private
IHttpService
httpService
;
@Autowired
private
IUserApiService
userApiService
;
@Override
public
UserSysResult
<
XUser
>
saveUserRelatedInfo
(
UserRelatedBean
userRelatedBean
)
{
return
null
;
}
@Override
@Override
public
UserSysResult
<
XUser
>
findUserByPhoneNo
(
String
phoneNo
)
{
public
UserSysResult
<
XUser
>
findUserByPhoneNo
(
String
phoneNo
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
...
@@ -257,7 +279,7 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -257,7 +279,7 @@ public class MotanUserServiceImpl implements UserMotanService {
log
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
appLoginParam
.
getRegisterFrom
(),
requestIp
);
log
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
appLoginParam
.
getRegisterFrom
(),
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
appLoginParam
.
getPhoneNo
());
User
user
=
userService
.
findByPhoneInDb
(
appLoginParam
.
getPhoneNo
());
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
register
(
appLoginParam
.
getRegisterFrom
(),
appLoginParam
.
getPhoneNo
(),
appLoginParam
.
getIdNo
(),
appLoginParam
.
getName
());
user
=
register
(
appLoginParam
.
getRegisterFrom
(),
appLoginParam
.
getPhoneNo
(),
appLoginParam
.
getIdNo
(),
appLoginParam
.
getName
()
,
appLoginParam
.
getChannelId
()
);
}
}
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
returnErrorValue
(
"账户或者密码错误"
);
return
returnErrorValue
(
"账户或者密码错误"
);
...
@@ -389,11 +411,12 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -389,11 +411,12 @@ public class MotanUserServiceImpl implements UserMotanService {
return
returnSuccessValue
(
xAddress
);
return
returnSuccessValue
(
xAddress
);
}
}
@Override
@Override
public
UserSysResult
<
XUserExtInfo
>
updateUserExtInfo
(
public
UserSysResult
<
XUserExtInfo
>
updateUserExtInfo
(
Long
userId
,
cn
.
quantgroup
.
motan
.
enums
.
IncomeEnum
incomeEnum
,
cn
.
quantgroup
.
motan
.
enums
.
IncomeRangeEnum
incomeRangeEnum
,
Long
userId
,
IncomeEnum
incomeEnum
,
IncomeRangeEnum
incomeRangeEnum
,
cn
.
quantgroup
.
motan
.
enums
.
OccupationEnum
occupationEnum
,
cn
.
quantgroup
.
motan
.
enums
.
EducationEnum
educationEnum
,
Boolean
hasCar
,
OccupationEnum
occupationEnum
,
EducationEnum
educationEnum
,
Boolean
hasCar
,
Boolean
hasSocialSecurity
,
Boolean
hasHouse
,
Boolean
hasCreditCard
,
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
maritalStatus
)
{
Boolean
hasSocialSecurity
,
Boolean
hasHouse
,
Boolean
hasCreditCard
,
MaritalStatus
maritalStatus
)
{
UserSysResult
<
XUserExtInfo
>
userSysResult
=
returnValue
(
null
,
null
);
UserSysResult
<
XUserExtInfo
>
userSysResult
=
returnValue
(
null
,
null
);
if
(
null
==
userId
||
0L
==
userId
)
{
if
(
null
==
userId
||
0L
==
userId
)
{
return
returnErrorValue
(
"用户id为空"
);
return
returnErrorValue
(
"用户id为空"
);
...
@@ -450,7 +473,21 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -450,7 +473,21 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
@Override
public
UserSysResult
<
Boolean
>
disableUser
(
Long
userId
)
{
public
UserSysResult
<
Boolean
>
disableUser
(
Long
userId
)
{
return
null
;
if
(
null
==
userId
||
0L
==
userId
)
{
throw
new
RuntimeException
(
"userId不能为空"
);
}
User
user
=
userService
.
findById
(
userId
);
if
(
null
==
user
)
{
throw
new
RuntimeException
(
"未查询到该用户,用户id:"
+
userId
);
}
user
.
setEnable
(
false
);
user
.
setUpdatedAt
(
new
Timestamp
(
System
.
currentTimeMillis
()));
log
.
info
(
"注销用户的信息,userId={}"
,
userId
);
user
=
userService
.
saveUser
(
user
);
if
(!
user
.
getEnable
())
{
sessionService
.
deleteByUserId
(
userId
);
}
return
returnSuccessValue
(
Boolean
.
TRUE
);
}
}
@Override
@Override
...
@@ -500,7 +537,18 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -500,7 +537,18 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
@Override
public
UserSysResult
<
XUserExtInfo
>
findUserExtInfoByUserId
(
Long
userId
)
{
public
UserSysResult
<
XUserExtInfo
>
findUserExtInfoByUserId
(
Long
userId
)
{
return
null
;
if
(
userId
==
null
)
{
return
returnErrorValue
(
"userId不能为空"
);
}
UserExtInfo
userExtInfo
=
userExtInfoService
.
findByUserId
(
userId
);
if
(
userExtInfo
==
null
)
{
return
returnErrorValue
(
"未找到用户扩展信息"
);
}
return
returnSuccessValue
(
fromUserExtInfo
(
userExtInfo
));
}
private
XUserExtInfo
fromUserExtInfo
(
UserExtInfo
userExtInfo
)
{
return
null
==
userExtInfo
?
null
:
userExtInfo
.
toXUserExtInfo
();
}
}
@Override
@Override
...
@@ -515,12 +563,22 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -515,12 +563,22 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
@Override
public
UserSysResult
<
String
>
loginWithUuid
(
String
uuid
)
{
public
UserSysResult
<
String
>
loginWithUuid
(
String
uuid
)
{
return
null
;
return
returnErrorValue
(
"MotanUserServiceImpl loginWithUuid(String uuid) need to be finish."
)
;
}
}
@Override
@Override
public
UserSysResult
<
Boolean
>
userImportCheck
(
String
phoneNo
,
String
registerFrom
)
{
public
UserSysResult
<
Boolean
>
userImportCheck
(
String
phoneNo
,
String
registerFrom
)
{
return
null
;
if
(
"244"
.
equals
(
registerFrom
))
{
return
returnErrorValue
(
"用户导入检查拒绝"
);
}
if
(
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isEmpty
(
phoneNo
)
||
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isEmpty
(
registerFrom
))
{
return
returnErrorValue
(
"检查传入的参数,参数不全。"
);
}
boolean
checkPassed
=
userApiService
.
userImportCheck
(
phoneNo
);
if
(
checkPassed
)
{
return
returnValue
(
Boolean
.
TRUE
,
"success"
);
}
return
returnErrorValue
(
"用户导入检查拒绝"
);
}
}
@Override
@Override
...
@@ -547,16 +605,134 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -547,16 +605,134 @@ public class MotanUserServiceImpl implements UserMotanService {
}
}
userSpouse
.
setSpouseName
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpouseName
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpousePhone
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setSpousePhone
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setStatus
(
MaritalStatus
.
valueOf
(
status
.
name
()));
userSpouse
.
setStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
valueOf
(
status
.
name
()));
userSpouse
.
setUpdateAt
(
timestamp
);
userSpouse
.
setUpdateAt
(
timestamp
);
userSpouse
=
userSpouseService
.
save
(
userSpouse
);
userSpouse
=
userSpouseService
.
save
(
userSpouse
);
return
returnSuccessValue
(
fromUserSpouse
(
userSpouse
));
return
returnSuccessValue
(
fromUserSpouse
(
userSpouse
));
}
}
@Override
@Override
public
UserSysResult
<
AppLoginResultBean
>
appLogin
(
AppLoginParam
param
)
{
public
UserSysResult
<
AppLoginResultBean
>
appLogin
(
AppLoginParam
appLoginParam
)
{
return
null
;
if
(!
ValidationUtil
.
validatePhoneNo
(
appLoginParam
.
getPhoneNo
()))
{
throw
new
RuntimeException
(
USER_ERROR_OR_PASSWORD_ERROR
);
}
log
.
info
(
"第三方用户登录, appLoginParam:{} "
,
appLoginParam
);
User
user
=
userService
.
findByPhoneInDb
(
appLoginParam
.
getPhoneNo
());
if
(
user
==
null
)
{
user
=
register
(
appLoginParam
.
getRegisterFrom
(),
appLoginParam
.
getPhoneNo
(),
appLoginParam
.
getIdNo
(),
appLoginParam
.
getName
(),
appLoginParam
.
getChannelId
());
}
if
(
user
==
null
)
{
throw
new
RuntimeException
(
USER_ERROR_OR_PASSWORD_ERROR
);
}
if
(!
user
.
getEnable
())
{
throw
new
RuntimeException
(
"登录失败"
);
}
Merchant
merchant
=
merchantService
.
findMerchantByName
(
appLoginParam
.
getKey
());
if
(
merchant
==
null
)
{
throw
new
RuntimeException
(
"无效的商户"
);
}
}
LoginProperties
loginProperties
=
new
LoginProperties
();
loginProperties
.
setChannelId
(
appLoginParam
.
getChannelId
());
loginProperties
.
setMerchantName
(
merchant
.
getName
());
loginProperties
.
setCreatedFrom
(
appLoginParam
.
getRegisterFrom
());
loginProperties
.
setAppChannel
(
appLoginParam
.
getAppChannel
());
SessionStruct
sessionStruct
=
sessionService
.
createSessionAndPersist
(
user
,
loginProperties
);
AppLoginResultBean
appLoginResultBean
=
new
AppLoginResultBean
();
appLoginResultBean
.
setToken
(
sessionStruct
.
getSid
());
appLoginResultBean
.
setPhoneNo
(
appLoginParam
.
getPhoneNo
());
log
.
info
(
"第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}"
,
appLoginParam
.
getRegisterFrom
(),
appLoginParam
.
getPhoneNo
(),
appLoginParam
.
getAppChannel
());
return
returnSuccessValue
(
appLoginResultBean
);
}
@Override
public
UserSysResult
<
XLoginInfo
>
getLoginInfo
(
String
token
)
{
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
);
if
(
null
!=
sessionStruct
)
{
log
.
info
(
"从用户中心获取到了用户登录信息:phone:[{}]"
,
sessionStruct
.
getValues
().
getUser
().
getPhoneNo
());
XLoginInfo
loginInfo
=
new
XLoginInfo
();
loginInfo
.
setUser
(
sessionStruct
.
getValues
().
getUser
().
toXUser
());
loginInfo
.
setToken
(
sessionStruct
.
getSid
());
LoginContext
context
=
new
LoginContext
();
context
.
setChannelId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getChannelId
());
context
.
setCreatedFrom
(
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
());
context
.
setAppChannel
(
sessionStruct
.
getValues
().
getLoginProperties
().
getAppChannel
());
loginInfo
.
setLoginContext
(
context
);
return
returnSuccessValue
(
loginInfo
);
}
else
{
// 函谷关去查token 返回值高仿
log
.
info
(
"去向函谷关查询用户信息"
);
if
(
StringUtils
.
isBlank
(
token
)
||
token
.
length
()
!=
36
){
return
returnErrorValue
(
"用户未登录"
);
}
String
checkUrl
=
xyqbAuthUrl
+
"/innerapi/is_login"
;
ImmutableMap
<
String
,
String
>
headMap
=
ImmutableMap
.
of
(
"x-auth-token"
,
token
);
String
response
=
httpService
.
get
(
checkUrl
,
headMap
,
null
);
log
.
info
(
"去向函谷关查询用户信息,response:[{}]"
,
response
);
JsonResult
result
=
JSONObject
.
parseObject
(
response
,
JsonResult
.
class
);
if
(
result
==
null
||
!
"0000"
.
equals
(
result
.
getCode
())
||
!
"0000"
.
equals
(
result
.
getBusinessCode
()))
{
return
returnErrorValue
(
"用户未登录"
);
}
String
phoneNo
=
((
Map
<
String
,
String
>)
result
.
getData
()).
get
(
"phoneNo"
);
User
user
=
userService
.
findByPhoneWithCache
(
phoneNo
);
XLoginInfo
loginInfo
=
new
XLoginInfo
();
loginInfo
.
setUser
(
sessionStruct
.
getValues
().
getUser
().
toXUser
());
loginInfo
.
setToken
(
token
);
LoginContext
context
=
new
LoginContext
();
context
.
setChannelId
(
null
);
context
.
setCreatedFrom
(
user
.
getRegisteredFrom
());
context
.
setAppChannel
(
""
);
loginInfo
.
setLoginContext
(
context
);
return
returnSuccessValue
(
loginInfo
);
}
}
/*@Override
public UserSysResult<XLoginInfo> getLoginInfo(String token) {
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis(token);
if(null != sessionStruct){
LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(UserRet.getUserRet(sessionStruct.getValues().getUser()));
loginInfo.setToken(sessionStruct.getSid());
XLoginInfo xLoginInfo = new XLoginInfo();
xLoginInfo.setToken(token);
xLoginInfo.setUser(sessionStruct.getValues().getUser().toXUser());
LoginContext context = new LoginContext();
context.setChannelId(sessionStruct.getValues().getLoginProperties().getChannelId());
context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom());
context.setAppChannel(sessionStruct.getValues().getLoginProperties().getAppChannel());
context.setBtMerchantId(sessionStruct.getValues().getLoginProperties().getBtMerchantId());
xLoginInfo.setLoginContext(context);
return returnSuccessValue(xLoginInfo);
}else {
log.info("去向函谷关查询用户信息");
String checkUrl = xyqbAuthUrl+"/innerapi/is_login";
ImmutableMap<String, String> headMap = ImmutableMap.of("x-auth-token", token);
String response = httpService.get(checkUrl, headMap, null);
log.info("去向函谷关查询用户信息,response:[{}]",response);
JsonResult result = JSONObject.parseObject(response, JsonResult.class);
if (result == null || !"0000".equals(result.getCode()) || !"0000".equals(result.getBusinessCode())) {
return returnErrorValue("用户未登录");
}
String phoneNo = ((Map<String, String>) result.getData()).get("phoneNo");
User user = userService.findByPhoneWithCache(phoneNo);
XLoginInfo xLoginInfo = new XLoginInfo();
xLoginInfo.setToken(token);
xLoginInfo.setUser(user.toXUser());
LoginContext context = new LoginContext();
context.setChannelId(null);
context.setCreatedFrom(user.getRegisteredFrom());
context.setAppChannel("");
context.setBtMerchantId(null);
xLoginInfo.setLoginContext(context);
return returnSuccessValue(xLoginInfo);
}
}*/
/**
/**
* 封装返回结果.
* 封装返回结果.
...
@@ -596,7 +772,7 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -596,7 +772,7 @@ public class MotanUserServiceImpl implements UserMotanService {
*
*
* @return
* @return
*/
*/
private
User
register
(
Long
registerFrom
,
String
phoneNo
,
String
idNo
,
String
name
)
{
private
User
register
(
Long
registerFrom
,
String
phoneNo
,
String
idNo
,
String
name
,
Long
channelId
)
{
String
randomCode
=
String
.
valueOf
(
random
.
nextInt
(
899999
)
+
100000
);
String
randomCode
=
String
.
valueOf
(
random
.
nextInt
(
899999
)
+
100000
);
...
@@ -606,6 +782,11 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -606,6 +782,11 @@ public class MotanUserServiceImpl implements UserMotanService {
log
.
info
(
"第三方登录用户,保存 User"
);
log
.
info
(
"第三方登录用户,保存 User"
);
User
user
=
new
User
();
User
user
=
new
User
();
if
(
channelId
==
222L
)
{
user
.
setRegisteredFrom
(
channelId
);
}
else
{
user
.
setRegisteredFrom
(
registerFrom
);
}
user
.
setRegisteredFrom
(
registerFrom
);
user
.
setRegisteredFrom
(
registerFrom
);
user
.
setUuid
(
uuid
);
user
.
setUuid
(
uuid
);
user
.
setEnable
(
true
);
user
.
setEnable
(
true
);
...
@@ -647,4 +828,20 @@ public class MotanUserServiceImpl implements UserMotanService {
...
@@ -647,4 +828,20 @@ public class MotanUserServiceImpl implements UserMotanService {
return
user
;
return
user
;
}
}
@Override
public
UserSysResult
<
XUserDetail
>
modifyUserDetail
(
UserDetailUpdateBean
userDetailUpdateBean
)
{
return
returnErrorValue
(
"MotanUserServiceImpl modifyUserDetail(UserDetailUpdateBean userDetailUpdateBean) need to be finish."
);
}
@Override
public
UserSysResult
<
Map
<
Long
,
String
>>
findPhoneByUserIds
(
List
<
Long
>
userIds
)
{
if
(!
CollectionUtils
.
isEmpty
(
userIds
)
&&
userIds
.
size
()<=
500
)
{
Map
<
Long
,
String
>
userIdAndPhoneMap
=
userService
.
findPhoneByIdsInDb
(
userIds
);
return
returnSuccessValue
(
userIdAndPhoneMap
);
}
else
{
return
returnErrorValue
(
"批量查询每次最多进行500条用户信息的查询"
);
}
}
}
}
src/main/java/cn/quantgroup/xyqb/controller/external/user/AppController.java
View file @
d18fa48c
...
@@ -4,16 +4,20 @@ import cn.quantgroup.xyqb.Constants;
...
@@ -4,16 +4,20 @@ import cn.quantgroup.xyqb.Constants;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.exception.NullUserException
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.repository.IUserBtRegisterRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.IPUtil
;
import
cn.quantgroup.xyqb.util.IPUtil
;
...
@@ -59,7 +63,8 @@ public class AppController implements IBaseController {
...
@@ -59,7 +63,8 @@ public class AppController implements IBaseController {
private
IIdCardService
idCardService
;
private
IIdCardService
idCardService
;
@Autowired
@Autowired
private
IMerchantService
merchantService
;
private
IMerchantService
merchantService
;
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
/**
/**
* 第三方用户登录
* 第三方用户登录
*/
*/
...
@@ -68,7 +73,7 @@ public class AppController implements IBaseController {
...
@@ -68,7 +73,7 @@ public class AppController implements IBaseController {
String
phoneNo
,
String
phoneNo
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
String
idNo
,
String
name
,
String
key
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
HttpServletRequest
request
String
idNo
,
String
name
,
String
key
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
,
HttpServletRequest
request
)
{
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
@@ -78,7 +83,7 @@ public class AppController implements IBaseController {
...
@@ -78,7 +83,7 @@ public class AppController implements IBaseController {
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
);
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
}
}
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
@@ -103,6 +108,8 @@ public class AppController implements IBaseController {
...
@@ -103,6 +108,8 @@ public class AppController implements IBaseController {
return
new
JsonResult
(
bean
);
return
new
JsonResult
(
bean
);
}
}
/**
/**
* 第三方用户登录并返回用户信息
* 第三方用户登录并返回用户信息
*/
*/
...
@@ -111,7 +118,7 @@ public class AppController implements IBaseController {
...
@@ -111,7 +118,7 @@ public class AppController implements IBaseController {
String
phoneNo
,
String
phoneNo
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
String
idNo
,
String
name
,
String
key
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
HttpServletRequest
request
String
idNo
,
String
name
,
String
key
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
,
HttpServletRequest
request
)
{
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
@@ -121,7 +128,7 @@ public class AppController implements IBaseController {
...
@@ -121,7 +128,7 @@ public class AppController implements IBaseController {
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
);
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
}
}
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
@@ -153,6 +160,26 @@ public class AppController implements IBaseController {
...
@@ -153,6 +160,26 @@ public class AppController implements IBaseController {
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
}
}
/**
* 注册新用户,带白条渠道号
* @param registerFrom
* @param phoneNo
* @param idNo
* @param name
* @param channelId
* @param btRegisterChannelId
* @return
*/
private
User
register
(
Long
registerFrom
,
String
phoneNo
,
String
idNo
,
String
name
,
Long
channelId
,
Long
btRegisterChannelId
)
{
User
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
);
if
(
null
!=
user
&&
null
!=
btRegisterChannelId
&&
channelId
==
222L
)
{
UserBtRegister
userBtRegister
=
new
UserBtRegister
();
userBtRegister
.
setUserId
(
user
.
getId
());
userBtRegister
.
setRegisterBtMerchantId
(
btRegisterChannelId
);
userBtRegisterService
.
save
(
userBtRegister
);
}
return
user
;
}
/**
/**
* 注册新用户
* 注册新用户
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/user/InnerController.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
controller
.
external
.
user
;
package
cn
.
quantgroup
.
xyqb
.
controller
.
external
.
user
;
import
cn.quantgroup.user.enums.*
;
import
cn.quantgroup.xyqb.aspect.logcaller.LogHttpCaller
;
import
cn.quantgroup.xyqb.aspect.logcaller.LogHttpCaller
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.enumerate.*
;
import
cn.quantgroup.xyqb.entity.enumerate.EducationEnum
;
import
cn.quantgroup.xyqb.entity.enumerate.IncomeEnum
;
import
cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum
;
import
cn.quantgroup.xyqb.entity.enumerate.MaritalStatus
;
import
cn.quantgroup.xyqb.entity.enumerate.OccupationEnum
;
import
cn.quantgroup.xyqb.entity.enumerate.Relation
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.user.enums.*
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.entity.Address
;
import
cn.quantgroup.xyqb.entity.Address
;
import
cn.quantgroup.xyqb.entity.Contact
;
import
cn.quantgroup.xyqb.entity.Contact
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
...
@@ -9,12 +22,12 @@ import cn.quantgroup.xyqb.entity.UserDetail;
...
@@ -9,12 +22,12 @@ import cn.quantgroup.xyqb.entity.UserDetail;
import
cn.quantgroup.xyqb.entity.UserExtInfo
;
import
cn.quantgroup.xyqb.entity.UserExtInfo
;
import
cn.quantgroup.xyqb.entity.UserSpouse
;
import
cn.quantgroup.xyqb.entity.UserSpouse
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.entity.enumerate.EducationEnum
;
//
import cn.quantgroup.xyqb.entity.enumerate.EducationEnum;
import
cn.quantgroup.xyqb.entity.enumerate.IncomeEnum
;
//
import cn.quantgroup.xyqb.entity.enumerate.IncomeEnum;
import
cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum
;
//
import cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum;
import
cn.quantgroup.xyqb.entity.enumerate.MaritalStatus
;
//
import cn.quantgroup.xyqb.entity.enumerate.MaritalStatus;
import
cn.quantgroup.xyqb.entity.enumerate.OccupationEnum
;
//
import cn.quantgroup.xyqb.entity.enumerate.OccupationEnum;
import
cn.quantgroup.xyqb.entity.enumerate.Relation
;
//
import cn.quantgroup.xyqb.entity.enumerate.Relation;
import
cn.quantgroup.xyqb.model.AddressRet
;
import
cn.quantgroup.xyqb.model.AddressRet
;
import
cn.quantgroup.xyqb.model.ContactRet
;
import
cn.quantgroup.xyqb.model.ContactRet
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.IdType
;
...
@@ -26,20 +39,17 @@ import cn.quantgroup.xyqb.model.UserSpouseRet;
...
@@ -26,20 +39,17 @@ import cn.quantgroup.xyqb.model.UserSpouseRet;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.IAddressService
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.IContactService
;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.IUserExtInfoService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserSpouseService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
com.google.common.base.MoreObjects
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.google.common.base.MoreObjects
;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.ImmutableMap
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
import
java.text.ParseException
;
...
@@ -48,6 +58,7 @@ import java.util.List;
...
@@ -48,6 +58,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -57,6 +68,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -57,6 +68,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.stream.Collectors
;
/**
/**
* Created by Miraculous on 2016/12/19.
* Created by Miraculous on 2016/12/19.
*/
*/
...
@@ -65,6 +84,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -65,6 +84,7 @@ import org.springframework.web.bind.annotation.RestController;
public
class
InnerController
implements
IBaseController
{
public
class
InnerController
implements
IBaseController
{
private
static
final
org
.
slf4j
.
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
InnerController
.
class
);
private
static
final
org
.
slf4j
.
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
InnerController
.
class
);
private
final
static
Random
random
=
new
Random
();
@Autowired
@Autowired
private
IUserService
userService
;
private
IUserService
userService
;
...
@@ -101,6 +121,11 @@ public class InnerController implements IBaseController {
...
@@ -101,6 +121,11 @@ public class InnerController implements IBaseController {
MAPPER
.
configure
(
SerializationFeature
.
WRITE_ENUMS_USING_INDEX
,
true
);
MAPPER
.
configure
(
SerializationFeature
.
WRITE_ENUMS_USING_INDEX
,
true
);
}
}
@Autowired
private
ILkbUserService
lkbUserService
;
private
Long
BAITIAO_CHANNEL
=
222L
;
@RequestMapping
(
"/user/search/phoneNo"
)
@RequestMapping
(
"/user/search/phoneNo"
)
@LogHttpCaller
@LogHttpCaller
public
JsonResult
findByPhoneNo
(
String
phoneNo
)
{
public
JsonResult
findByPhoneNo
(
String
phoneNo
)
{
...
@@ -323,12 +348,14 @@ public class InnerController implements IBaseController {
...
@@ -323,12 +348,14 @@ public class InnerController implements IBaseController {
for
(
Contact
c
:
contacts
)
{
for
(
Contact
c
:
contacts
)
{
c
.
setId
(
null
);
c
.
setId
(
null
);
c
.
setUserId
(
userId
);
c
.
setUserId
(
userId
);
c
.
setRelation
(
c
.
getRelation
()
==
null
?
Relation
.
OTHER
:
c
.
getRelation
());
c
.
setRelation
(
c
.
getRelation
()
==
null
?
cn
.
quantgroup
.
user
.
enums
.
Relation
.
OTHER
:
c
.
getRelation
());
c
.
setCreatedAt
(
now
);
c
.
setCreatedAt
(
now
);
c
.
setUpdateAt
(
now
);
c
.
setUpdateAt
(
now
);
}
}
}
}
@RequestMapping
(
"/address/search/user_id"
)
@RequestMapping
(
"/address/search/user_id"
)
public
JsonResult
findAddressByUserId
(
Long
userId
)
{
public
JsonResult
findAddressByUserId
(
Long
userId
)
{
if
(
userId
==
null
)
{
if
(
userId
==
null
)
{
...
@@ -386,16 +413,16 @@ public class InnerController implements IBaseController {
...
@@ -386,16 +413,16 @@ public class InnerController implements IBaseController {
}
}
info
.
setUpdateAt
(
now
);
info
.
setUpdateAt
(
now
);
if
(
incomeEnum
!=
null
)
{
if
(
incomeEnum
!=
null
)
{
info
.
setIncomeEnum
(
incomeEnum
);
info
.
setIncomeEnum
(
cn
.
quantgroup
.
user
.
enums
.
IncomeEnum
.
valueOf
(
incomeEnum
.
name
())
);
}
}
if
(
incomeRangeEnum
!=
null
)
{
if
(
incomeRangeEnum
!=
null
)
{
info
.
setIncomeRangeEnum
(
incomeRangeEnum
);
info
.
setIncomeRangeEnum
(
cn
.
quantgroup
.
user
.
enums
.
IncomeRangeEnum
.
valueOf
(
incomeRangeEnum
.
name
())
);
}
}
if
(
occupationEnum
!=
null
)
{
if
(
occupationEnum
!=
null
)
{
info
.
setOccupationEnum
(
occupationEnum
);
info
.
setOccupationEnum
(
cn
.
quantgroup
.
user
.
enums
.
OccupationEnum
.
valueOf
(
occupationEnum
.
name
())
);
}
}
if
(
educationEnum
!=
null
)
{
if
(
educationEnum
!=
null
)
{
info
.
setEducationEnum
(
educationEnum
);
info
.
setEducationEnum
(
cn
.
quantgroup
.
user
.
enums
.
EducationEnum
.
valueOf
(
educationEnum
.
name
())
);
}
}
if
(
hasCar
!=
null
)
{
if
(
hasCar
!=
null
)
{
info
.
setHasCar
(
hasCar
);
info
.
setHasCar
(
hasCar
);
...
@@ -407,7 +434,7 @@ public class InnerController implements IBaseController {
...
@@ -407,7 +434,7 @@ public class InnerController implements IBaseController {
info
.
setHasHouse
(
hasHouse
);
info
.
setHasHouse
(
hasHouse
);
}
}
if
(
maritalStatus
!=
null
)
{
if
(
maritalStatus
!=
null
)
{
info
.
setMarryStatus
(
maritalStatus
);
info
.
setMarryStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
valueOf
(
maritalStatus
.
name
())
);
}
}
info
=
userExtInfoService
.
save
(
info
);
info
=
userExtInfoService
.
save
(
info
);
return
JsonResult
.
buildSuccessResult
(
null
,
UserExtInfoRet
.
getUserExtInfoRet
(
info
));
return
JsonResult
.
buildSuccessResult
(
null
,
UserExtInfoRet
.
getUserExtInfoRet
(
info
));
...
@@ -520,7 +547,7 @@ public class InnerController implements IBaseController {
...
@@ -520,7 +547,7 @@ public class InnerController implements IBaseController {
}
}
userSpouse
.
setSpouseName
(
status
==
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpouseName
(
status
==
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpousePhone
(
status
==
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setSpousePhone
(
status
==
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setStatus
(
status
);
userSpouse
.
setStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
valueOf
(
status
.
name
())
);
userSpouse
.
setUpdateAt
(
timestamp
);
userSpouse
.
setUpdateAt
(
timestamp
);
userSpouse
=
userSpouseService
.
save
(
userSpouse
);
userSpouse
=
userSpouseService
.
save
(
userSpouse
);
return
JsonResult
.
buildSuccessResult
(
null
,
UserSpouseRet
.
getUserSpouseRet
(
userSpouse
));
return
JsonResult
.
buildSuccessResult
(
null
,
UserSpouseRet
.
getUserSpouseRet
(
userSpouse
));
...
@@ -535,7 +562,7 @@ public class InnerController implements IBaseController {
...
@@ -535,7 +562,7 @@ public class InnerController implements IBaseController {
UserSpouse
userSpouse
=
userSpouseService
.
findByUserId
(
userId
);
UserSpouse
userSpouse
=
userSpouseService
.
findByUserId
(
userId
);
if
(
userSpouse
==
null
)
{
if
(
userSpouse
==
null
)
{
userSpouse
=
new
UserSpouse
(
userId
);
userSpouse
=
new
UserSpouse
(
userId
);
userSpouse
.
setStatus
(
MaritalStatus
.
UNKNOWN
);
userSpouse
.
setStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
UNKNOWN
);
}
}
return
JsonResult
.
buildSuccessResult
(
null
,
UserSpouseRet
.
getUserSpouseRet
(
userSpouse
));
return
JsonResult
.
buildSuccessResult
(
null
,
UserSpouseRet
.
getUserSpouseRet
(
userSpouse
));
}
}
...
@@ -589,6 +616,89 @@ public class InnerController implements IBaseController {
...
@@ -589,6 +616,89 @@ public class InnerController implements IBaseController {
}
}
/**
* 保存用户信息,地址信息,联系人信息
* @param registeredFrom
* @param channelId
* @param phoneNo
* @param name
* @param idNo
* @param provinceCode
* @param cityCode
* @param districtCode
* @param address
* @param contacts
* @return
*/
@RequestMapping
(
"/user/save_multi"
)
public
JsonResult
saveMulti
(
String
registeredFrom
,
String
channelId
,
String
phoneNo
,
String
name
,
String
idNo
,
String
provinceCode
,
String
province
,
String
cityCode
,
String
city
,
String
districtCode
,
String
district
,
String
address
,
String
contacts
)
{
LOGGER
.
info
(
"保存用户、联系人、地址信息:registeredFrom:[{}], phoneNo[{}],name[{}],idNo[{}],provinceCode[{}],cityCode[{}],districtCode[{}],"
+
"address[{}],contacts[{}]"
,
registeredFrom
,
phoneNo
,
name
,
idNo
,
provinceCode
,
cityCode
,
districtCode
,
address
,
contacts
);
if
(!
NumberUtils
.
isDigits
(
registeredFrom
)){
return
JsonResult
.
buildErrorStateResult
(
"注册渠道异常."
,
null
);
}
if
(!
NumberUtils
.
isDigits
(
phoneNo
)){
return
JsonResult
.
buildErrorStateResult
(
"手机号异常."
,
null
);
}
if
(
StringUtils
.
isBlank
(
name
)){
return
JsonResult
.
buildErrorStateResult
(
"用户名异常."
,
null
);
}
if
(!
NumberUtils
.
isDigits
(
idNo
)){
return
JsonResult
.
buildErrorStateResult
(
"用户身份证号异常."
,
null
);
}
if
(!
NumberUtils
.
isDigits
(
provinceCode
)){
return
JsonResult
.
buildErrorStateResult
(
"省份编号异常."
,
null
);
}
if
(
StringUtils
.
isBlank
(
province
)){
return
JsonResult
.
buildErrorStateResult
(
"省份异常."
,
null
);
}
if
(!
NumberUtils
.
isDigits
(
cityCode
)){
return
JsonResult
.
buildErrorStateResult
(
"城市编号异常."
,
null
);
}
if
(
StringUtils
.
isBlank
(
city
)){
return
JsonResult
.
buildErrorStateResult
(
"城市异常."
,
null
);
}
if
(!
NumberUtils
.
isDigits
(
districtCode
)){
return
JsonResult
.
buildErrorStateResult
(
"区县编号异常."
,
null
);
}
if
(
StringUtils
.
isBlank
(
district
)){
return
JsonResult
.
buildErrorStateResult
(
"区县异常."
,
null
);
}
if
(
StringUtils
.
isBlank
(
address
))
{
return
JsonResult
.
buildErrorStateResult
(
"详细地址异常."
,
null
);
}
channelId
=
MoreObjects
.
firstNonNull
(
channelId
,
"-1"
);
// 验证用户是否已存在
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
null
!=
user
){
return
JsonResult
.
buildErrorStateResult
(
"用户已存在,手机号被占用"
,
null
);
}
user
=
userService
.
registerAndReturn
(
Long
.
valueOf
(
registeredFrom
),
Long
.
valueOf
(
channelId
),
phoneNo
,
name
,
idNo
,
provinceCode
,
province
,
cityCode
,
city
,
districtCode
,
district
,
address
,
contacts
);
UserRet
userRet
=
UserRet
.
getUserRet
(
user
);
return
JsonResult
.
buildSuccessResult
(
null
,
userRet
);
}
@RequestMapping
(
"/user/register"
)
@RequestMapping
(
"/user/register"
)
public
JsonResult
register
(
String
phoneNo
,
String
password
,
Long
channelId
)
{
public
JsonResult
register
(
String
phoneNo
,
String
password
,
Long
channelId
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/user/center/UserCenterController.java
View file @
d18fa48c
...
@@ -2,13 +2,15 @@ package cn.quantgroup.xyqb.controller.external.user.center;
...
@@ -2,13 +2,15 @@ package cn.quantgroup.xyqb.controller.external.user.center;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.enumerate.EducationEnum
;
//import cn.quantgroup.xyqb.entity.enumerate.EducationEnum;
import
cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum
;
//import cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum;
import
cn.quantgroup.xyqb.entity.enumerate.MaritalStatus
;
//import cn.quantgroup.xyqb.entity.enumerate.MaritalStatus;
import
cn.quantgroup.xyqb.entity.enumerate.OccupationEnum
;
//import cn.quantgroup.xyqb.entity.enumerate.OccupationEnum;
import
cn.quantgroup.user.enums.*
;
import
cn.quantgroup.xyqb.model.ContactRet
;
import
cn.quantgroup.xyqb.model.ContactRet
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.user.enums.*
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/login/AuthInfoController.java
View file @
d18fa48c
...
@@ -2,11 +2,13 @@ package cn.quantgroup.xyqb.controller.internal.login;
...
@@ -2,11 +2,13 @@ package cn.quantgroup.xyqb.controller.internal.login;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.UserRet
;
import
cn.quantgroup.xyqb.model.UserRet
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.ImmutableMap
;
...
@@ -42,12 +44,15 @@ public class AuthInfoController implements IBaseController {
...
@@ -42,12 +44,15 @@ public class AuthInfoController implements IBaseController {
@Autowired
@Autowired
private
IUserService
userService
;
private
IUserService
userService
;
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
@RequestMapping
(
"/info/login"
)
@RequestMapping
(
"/info/login"
)
public
JsonResult
loginInfo
()
{
public
JsonResult
loginInfo
()
{
SessionStruct
sessionStruct
=
getCurrentSessionFromRedis
();
SessionStruct
sessionStruct
=
getCurrentSessionFromRedis
();
if
(
null
!=
sessionStruct
)
{
if
(
null
!=
sessionStruct
)
{
log
.
info
(
"从用户中心获取到了用户登录信息:phone:[{}]"
,
sessionStruct
.
getValues
().
getUser
().
getPhoneNo
());
log
.
info
(
"从用户中心获取到了用户登录信息:phone:[{}]"
,
sessionStruct
.
getValues
().
getUser
().
getPhoneNo
());
LoginInfo
loginInfo
=
new
LoginInfo
();
LoginInfo
loginInfo
=
new
LoginInfo
();
loginInfo
.
setUser
(
UserRet
.
getUserRet
(
sessionStruct
.
getValues
().
getUser
()));
loginInfo
.
setUser
(
UserRet
.
getUserRet
(
sessionStruct
.
getValues
().
getUser
()));
loginInfo
.
setToken
(
sessionStruct
.
getSid
());
loginInfo
.
setToken
(
sessionStruct
.
getSid
());
...
@@ -55,6 +60,7 @@ public class AuthInfoController implements IBaseController {
...
@@ -55,6 +60,7 @@ public class AuthInfoController implements IBaseController {
context
.
setChannelId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getChannelId
());
context
.
setChannelId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getChannelId
());
context
.
setCreatedFrom
(
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
());
context
.
setCreatedFrom
(
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
());
context
.
setAppChannel
(
sessionStruct
.
getValues
().
getLoginProperties
().
getAppChannel
());
context
.
setAppChannel
(
sessionStruct
.
getValues
().
getLoginProperties
().
getAppChannel
());
context
.
setBtMerchantId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getBtMerchantId
());
loginInfo
.
setLoginContext
(
context
);
loginInfo
.
setLoginContext
(
context
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
//有ThreadLocal不释放的问题,不可再使用原来方式了
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
//有ThreadLocal不释放的问题,不可再使用原来方式了
}
else
{
}
else
{
...
@@ -82,6 +88,15 @@ public class AuthInfoController implements IBaseController {
...
@@ -82,6 +88,15 @@ public class AuthInfoController implements IBaseController {
context
.
setChannelId
(
null
);
context
.
setChannelId
(
null
);
context
.
setCreatedFrom
(
user
.
getRegisteredFrom
());
context
.
setCreatedFrom
(
user
.
getRegisteredFrom
());
context
.
setAppChannel
(
""
);
context
.
setAppChannel
(
""
);
if
(
user
.
getRegisteredFrom
()
==
222L
)
{
//context.setBtMerchantId(1L);
UserBtRegister
userBtRegister
=
userBtRegisterService
.
findByUserId
(
user
.
getId
());
if
(
null
!=
userBtRegister
){
context
.
setBtMerchantId
(
userBtRegister
.
getRegisterBtMerchantId
());
}
else
{
context
.
setBtMerchantId
(
1L
);
}
}
loginInfo
.
setLoginContext
(
context
);
loginInfo
.
setLoginContext
(
context
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserController.java
View file @
d18fa48c
...
@@ -94,7 +94,7 @@ public class UserController implements IBaseController {
...
@@ -94,7 +94,7 @@ public class UserController implements IBaseController {
@RequestMapping
(
"/login/fast"
)
@RequestMapping
(
"/login/fast"
)
public
JsonResult
loginFast
(
public
JsonResult
loginFast
(
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
String
appChannel
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
String
appChannel
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
createdFrom
,
String
key
,
HttpServletRequest
request
)
{
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
createdFrom
,
String
key
,
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
,
HttpServletRequest
request
)
{
Map
<
String
,
JsonResult
>
validMap
=
getHeaderParam
(
request
);
Map
<
String
,
JsonResult
>
validMap
=
getHeaderParam
(
request
);
if
(
null
!=
validMap
.
get
(
"fail"
))
{
if
(
null
!=
validMap
.
get
(
"fail"
))
{
return
validMap
.
get
(
"fail"
);
return
validMap
.
get
(
"fail"
);
...
@@ -110,7 +110,7 @@ public class UserController implements IBaseController {
...
@@ -110,7 +110,7 @@ public class UserController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
}
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
registerFastWhenLogin
(
phoneNo
,
channelId
,
createdFrom
,
appChannel
);
user
=
registerFastWhenLogin
(
phoneNo
,
channelId
,
createdFrom
,
appChannel
,
btRegisterChannelId
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
throw
new
UserNotExistException
(
"用户未找到"
);
throw
new
UserNotExistException
(
"用户未找到"
);
}
}
...
@@ -119,6 +119,21 @@ public class UserController implements IBaseController {
...
@@ -119,6 +119,21 @@ public class UserController implements IBaseController {
// return createSession(channelId, createdFrom, appChannel, user);
// return createSession(channelId, createdFrom, appChannel, user);
}
}
private
User
registerFastWhenLogin
(
String
phoneNo
,
Long
channelId
,
Long
registerFrom
,
String
appChannel
,
Long
btRegisterChannelId
)
{
String
password
=
genRandomPwd
();
LOGGER
.
info
(
"用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{},btRegisterChannelId"
,
phoneNo
,
channelId
,
registerFrom
,
appChannel
,
btRegisterChannelId
);
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
LOGGER
.
info
(
"用户快速注册失败,手机号错误, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
throw
new
UserNotExistException
(
"手机号错误"
);
}
if
(
null
==
registerFrom
)
{
registerFrom
=
1L
;
}
LOGGER
.
info
(
"用户快速注册成功, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
return
userService
.
registerAndReturn
(
phoneNo
,
password
,
registerFrom
,
btRegisterChannelId
);
}
/**
/**
* 快速登录验证
* 快速登录验证
*
*
...
@@ -171,7 +186,8 @@ public class UserController implements IBaseController {
...
@@ -171,7 +186,8 @@ public class UserController implements IBaseController {
*/
*/
@RequestMapping
(
"/register/fast"
)
@RequestMapping
(
"/register/fast"
)
public
JsonResult
registerFast
(
@RequestParam
String
phoneNo
,
@RequestParam
String
verificationCode
,
@RequestParam
(
required
=
false
)
Long
channelId
,
public
JsonResult
registerFast
(
@RequestParam
String
phoneNo
,
@RequestParam
String
verificationCode
,
@RequestParam
(
required
=
false
)
Long
channelId
,
@RequestParam
(
required
=
false
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
)
{
@RequestParam
(
required
=
false
)
Long
registerFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
""
)
String
appChannel
,
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
)
{
String
password
=
genRandomPwd
();
String
password
=
genRandomPwd
();
LOGGER
.
info
(
"用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
,
appChannel
);
LOGGER
.
info
(
"用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
,
appChannel
);
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
...
@@ -197,7 +213,7 @@ public class UserController implements IBaseController {
...
@@ -197,7 +213,7 @@ public class UserController implements IBaseController {
LOGGER
.
info
(
"用户快速注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
LOGGER
.
info
(
"用户快速注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
return
JsonResult
.
buildErrorStateResult
(
"短信验证码错误"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"短信验证码错误"
,
null
);
}
}
if
(!
userService
.
register
(
phoneNo
,
password
,
registerFrom
,
getIp
(),
channelId
))
{
if
(!
userService
.
register
(
phoneNo
,
password
,
registerFrom
,
getIp
(),
channelId
,
btRegisterChannelId
))
{
LOGGER
.
info
(
"用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
LOGGER
.
info
(
"用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
}
}
...
@@ -220,8 +236,9 @@ public class UserController implements IBaseController {
...
@@ -220,8 +236,9 @@ public class UserController implements IBaseController {
@RequestMapping
(
"/register"
)
@RequestMapping
(
"/register"
)
public
JsonResult
register
(
@RequestParam
String
phoneNo
,
@RequestParam
String
password
,
public
JsonResult
register
(
@RequestParam
String
phoneNo
,
@RequestParam
String
password
,
@RequestParam
String
verificationCode
,
@RequestParam
(
required
=
false
)
Long
channelId
,
@RequestParam
String
verificationCode
,
@RequestParam
(
required
=
false
)
Long
channelId
,
@RequestParam
(
required
=
false
)
Long
registerFrom
)
{
@RequestParam
(
required
=
false
)
Long
registerFrom
,
LOGGER
.
info
(
"用户注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
);
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
)
{
LOGGER
.
info
(
"用户注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},btRegisterChannelId:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
,
btRegisterChannelId
);
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
LOGGER
.
info
(
"用户注册失败,手机号错误, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
LOGGER
.
info
(
"用户注册失败,手机号错误, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"手机号错误"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"手机号错误"
,
null
);
...
@@ -245,7 +262,7 @@ public class UserController implements IBaseController {
...
@@ -245,7 +262,7 @@ public class UserController implements IBaseController {
LOGGER
.
info
(
"用户注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
LOGGER
.
info
(
"用户注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
return
JsonResult
.
buildErrorStateResult
(
"短信验证码错误"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"短信验证码错误"
,
null
);
}
}
if
(!
userService
.
register
(
phoneNo
,
password
,
registerFrom
,
getIp
(),
channelId
))
{
if
(!
userService
.
register
(
phoneNo
,
password
,
registerFrom
,
getIp
(),
channelId
,
btRegisterChannelId
))
{
LOGGER
.
info
(
"用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
LOGGER
.
info
(
"用户快速注册失败,请稍后重试, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/entity/Contact.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.
xyqb.entity.enumerate
.Relation
;
import
cn.quantgroup.
user.enums
.Relation
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.persistence.*
;
import
javax.persistence.*
;
...
...
src/main/java/cn/quantgroup/xyqb/entity/UserBtRegister.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.xyqb.config.http.Timestamp2LongConverter
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* Created by Administrator on 2017/5/16.
*/
@Getter
@Setter
@ToString
@Entity
@Table
(
name
=
"user_bt_register"
)
public
class
UserBtRegister
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"user_id"
)
private
Long
userId
;
@Column
(
name
=
"register_bt_merchant_id"
)
private
Long
registerBtMerchantId
;
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
=
Boolean
.
TRUE
;
//创建时间
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
//上一次修改时间
@Column
(
name
=
"updated_at"
)
@JSONField
(
serializeUsing
=
Timestamp2LongConverter
.
class
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
(){
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
this
.
createdAt
=
now
;
this
.
updatedAt
=
now
;
}
@PreUpdate
public
void
preUpdate
(){
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
this
.
createdAt
=
now
;
this
.
updatedAt
=
now
;
}
}
src/main/java/cn/quantgroup/xyqb/entity/UserExtInfo.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.xyqb.entity.enumerate.*
;
import
cn.quantgroup.motan.retbean.XUserExtInfo
;
//import cn.quantgroup.xyqb.entity.enumerate.*;
import
cn.quantgroup.user.enums.*
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.persistence.*
;
import
javax.persistence.*
;
...
@@ -45,4 +47,20 @@ public class UserExtInfo implements Serializable {
...
@@ -45,4 +47,20 @@ public class UserExtInfo implements Serializable {
@Column
(
name
=
"updated_at"
)
@Column
(
name
=
"updated_at"
)
private
Timestamp
updateAt
;
private
Timestamp
updateAt
;
public
XUserExtInfo
toXUserExtInfo
(){
XUserExtInfo
xUserExtInfo
=
new
XUserExtInfo
();
xUserExtInfo
.
setId
(
this
.
id
);
xUserExtInfo
.
setUserId
(
this
.
userId
);
xUserExtInfo
.
setEducationEnum
(
cn
.
quantgroup
.
user
.
enums
.
EducationEnum
.
valueOf
(
this
.
educationEnum
.
name
()));
xUserExtInfo
.
setIncomeEnum
(
cn
.
quantgroup
.
user
.
enums
.
IncomeEnum
.
valueOf
(
this
.
incomeEnum
.
name
()));
xUserExtInfo
.
setIncomeRangeEnum
(
cn
.
quantgroup
.
user
.
enums
.
IncomeRangeEnum
.
valueOf
(
this
.
incomeRangeEnum
.
name
()));
xUserExtInfo
.
setOccupationEnum
(
cn
.
quantgroup
.
user
.
enums
.
OccupationEnum
.
valueOf
(
this
.
occupationEnum
.
name
()));
xUserExtInfo
.
setHasCar
(
this
.
hasCar
);
xUserExtInfo
.
setHasSocialSecurity
(
this
.
hasSocialSecurity
);
xUserExtInfo
.
setHasCreditCard
(
this
.
hasCreditCard
);
xUserExtInfo
.
setMarryStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
valueOf
(
this
.
marryStatus
.
name
()));
xUserExtInfo
.
setCreatedAt
(
this
.
createdAt
);
xUserExtInfo
.
setUpdateAt
(
this
.
updateAt
);
return
xUserExtInfo
;
}
}
}
src/main/java/cn/quantgroup/xyqb/entity/UserSpouse.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.
xyqb.entity.enumerate
.MaritalStatus
;
import
cn.quantgroup.
user.enums
.MaritalStatus
;
import
lombok.*
;
import
lombok.*
;
import
javax.persistence.*
;
import
javax.persistence.*
;
...
...
src/main/java/cn/quantgroup/xyqb/model/ContactRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.Contact
;
import
cn.quantgroup.xyqb.entity.Contact
;
import
cn.quantgroup.
xyqb.entity.enumerate
.Relation
;
import
cn.quantgroup.
user.enums
.Relation
;
import
lombok.Data
;
import
lombok.Data
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
src/main/java/cn/quantgroup/xyqb/model/LoginProperties.java
View file @
d18fa48c
...
@@ -11,4 +11,5 @@ public class LoginProperties {
...
@@ -11,4 +11,5 @@ public class LoginProperties {
private
Long
createdFrom
=
1L
;
private
Long
createdFrom
=
1L
;
private
String
appChannel
=
""
;
private
String
appChannel
=
""
;
private
String
merchantName
;
private
String
merchantName
;
private
Long
btMerchantId
=
1L
;
}
}
src/main/java/cn/quantgroup/xyqb/model/UserDetailRet.java
View file @
d18fa48c
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.model;
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.model;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
lombok.Data
;
import
lombok.Data
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
cn.quantgroup.xyqb.model.IdType
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/UserExtInfoRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.UserExtInfo
;
import
cn.quantgroup.xyqb.entity.UserExtInfo
;
import
cn.quantgroup.
xyqb.entity.enumerate
.*
;
import
cn.quantgroup.
user.enums
.*
;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/UserSpouseRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.UserSpouse
;
import
cn.quantgroup.xyqb.entity.UserSpouse
;
import
cn.quantgroup.
xyqb.entity.enumerate
.MaritalStatus
;
import
cn.quantgroup.
user.enums
.MaritalStatus
;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/session/LoginInfo.java
View file @
d18fa48c
...
@@ -23,13 +23,21 @@ public class LoginInfo {
...
@@ -23,13 +23,21 @@ public class LoginInfo {
return
JSON
.
parseObject
(
userJson
,
XLoginInfo
.
class
);
return
JSON
.
parseObject
(
userJson
,
XLoginInfo
.
class
);
}
}
public
XLoginInfo
toXLoginInfo
()
{
XLoginInfo
xLoginInfo
=
new
XLoginInfo
();
// xLoginInfo.setUser();
return
xLoginInfo
;
}
@Data
@Data
public
static
class
LoginContext
{
public
static
class
LoginContext
{
private
Long
channelId
;
private
Long
channelId
;
private
Long
createdFrom
;
private
Long
createdFrom
;
private
String
appChannel
;
private
String
appChannel
;
private
Long
btMerchantId
;
}
}
}
}
src/main/java/cn/quantgroup/xyqb/repository/IUserBtRegisterRepository.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
repository
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* Created by Administrator on 2017/5/16.
*/
public
interface
IUserBtRegisterRepository
extends
JpaRepository
<
UserBtRegister
,
Long
>,
JpaSpecificationExecutor
<
UserBtRegister
>
{
}
src/main/java/cn/quantgroup/xyqb/service/session/aspect/UserBtRegisterFill.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
service
.
session
.
aspect
;
import
java.lang.annotation.*
;
/**
* 用户的白条注册信息填充标记
* Created by ocean on 2017/5/16.
*/
@Documented
@Target
(
ElementType
.
METHOD
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
UserBtRegisterFill
{
}
src/main/java/cn/quantgroup/xyqb/service/session/aspect/UserBtRegisterFillAspect.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
service
.
session
.
aspect
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Component
;
/**
* Created by Administrator on 2017/5/16.
*/
@Aspect
@Component
@Order
(
value
=
Ordered
.
HIGHEST_PRECEDENCE
+
200
)
public
class
UserBtRegisterFillAspect
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
UserBtRegisterFillAspect
.
class
);
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
@Pointcut
(
"@annotation(cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill)"
)
//生成还款计划的时候,去生成趸交服务费
public
void
userBtRegisterFillCut
()
{
}
@Around
(
"userBtRegisterFillCut()"
)
public
Object
handleSingleServiceFeeRule
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
Object
[]
args
=
pjp
.
getArgs
();
try
{
args
=
fillUserBtRegister
(
args
);
}
catch
(
Exception
e
){
LOGGER
.
error
(
"补充用户白条登录渠道信息失败"
,
e
);
}
return
pjp
.
proceed
(
args
);
}
private
Object
[]
fillUserBtRegister
(
Object
[]
args
)
{
for
(
int
i
=
0
;
i
<
args
.
length
;
i
++){
Object
obj
=
args
[
i
];
if
(
obj
instanceof
SessionValue
){
SessionValue
value
=(
SessionValue
)
obj
;
UserBtRegister
userBtRegister
=
userBtRegisterService
.
findByUserId
(
value
.
getUser
().
getId
());
if
(
null
!=
userBtRegister
&&
null
!=
value
.
getLoginProperties
()){
value
.
getLoginProperties
().
setBtMerchantId
(
userBtRegister
.
getRegisterBtMerchantId
());
}
}
}
return
args
;
}
}
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
d18fa48c
...
@@ -8,6 +8,7 @@ import cn.quantgroup.xyqb.model.LoginProperties;
...
@@ -8,6 +8,7 @@ import cn.quantgroup.xyqb.model.LoginProperties;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.base.Joiner
;
import
com.google.common.base.Joiner
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -121,6 +122,7 @@ public class SessionServiceImpl implements ISessionService {
...
@@ -121,6 +122,7 @@ public class SessionServiceImpl implements ISessionService {
}
}
@Override
@Override
@UserBtRegisterFill
public
void
persistSession
(
String
token
,
SessionValue
sessionValue
)
{
public
void
persistSession
(
String
token
,
SessionValue
sessionValue
)
{
Timestamp
current
=
new
Timestamp
(
System
.
currentTimeMillis
());
Timestamp
current
=
new
Timestamp
(
System
.
currentTimeMillis
());
sessionValue
.
setLastAccessTime
(
current
);
sessionValue
.
setLastAccessTime
(
current
);
...
...
src/main/java/cn/quantgroup/xyqb/service/user/IUserBtRegisterService.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
service
.
user
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
/**
* Created by Administrator on 2017/5/16.
*/
public
interface
IUserBtRegisterService
{
UserBtRegister
findByUserId
(
Long
userId
);
UserBtRegister
save
(
UserBtRegister
userBtRegister
);
}
src/main/java/cn/quantgroup/xyqb/service/user/IUserService.java
View file @
d18fa48c
...
@@ -32,5 +32,39 @@ public interface IUserService {
...
@@ -32,5 +32,39 @@ public interface IUserService {
User
findById
(
Long
userId
);
User
findById
(
Long
userId
);
boolean
register
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
String
ip
,
Long
channelId
,
Long
btRegisterChannelId
);
List
<
User
>
findByPhones
(
List
<
String
>
phones
);
List
<
User
>
findByPhones
(
List
<
String
>
phones
);
User
registerAndReturn
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
Long
btRegisterChannelId
);
/**
* 用户、联系人、地址信息注册
* @param registeredFrom
* @param channelId
* @param phoneNo
* @param name
* @param idNo
* @param provinceCode
* @param province
* @param cityCode
* @param city
* @param districtCode
* @param district
* @param address
* @param contacts
* @return
*/
User
registerAndReturn
(
Long
registeredFrom
,
Long
channelId
,
String
phoneNo
,
String
name
,
String
idNo
,
String
provinceCode
,
String
province
,
String
cityCode
,
String
city
,
String
districtCode
,
String
district
,
String
address
,
String
contacts
);
}
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserBtRegisterServiceImpl.java
0 → 100644
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
service
.
user
.
impl
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.repository.IUserBtRegisterRepository
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Service
;
import
javax.persistence.criteria.Predicate
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by Administrator on 2017/5/16.
*/
@Service
public
class
UserBtRegisterServiceImpl
implements
IUserBtRegisterService
{
@Autowired
private
IUserBtRegisterRepository
userBtRegisterRepository
;
@Override
@Cacheable
(
value
=
"btRegisterCache"
,
key
=
"'userId' + #userId"
,
unless
=
"#result == null"
,
cacheManager
=
"cacheManager"
)
public
UserBtRegister
findByUserId
(
Long
userId
)
{
if
(
null
!=
userId
)
{
return
userBtRegisterRepository
.
findOne
((
root
,
query
,
cb
)
->
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
list
.
add
(
cb
.
equal
(
root
.
get
(
"isActive"
).
as
(
Boolean
.
class
),
Boolean
.
TRUE
));
list
.
add
(
cb
.
equal
(
root
.
get
(
"userId"
).
as
(
Long
.
class
),
userId
));
Predicate
[]
p
=
new
Predicate
[
list
.
size
()];
query
.
where
(
cb
.
and
(
list
.
toArray
(
p
)));
return
query
.
getRestriction
();
});
}
return
null
;
}
@Override
public
UserBtRegister
save
(
UserBtRegister
userBtRegister
)
{
return
userBtRegisterRepository
.
saveAndFlush
(
userBtRegister
);
}
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
service
.
user
.
impl
;
package
cn
.
quantgroup
.
xyqb
.
service
.
user
.
impl
;
import
cn.quantgroup.user.enums.Relation
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.model.IdCardInfo
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.repository.IAddressRepository
;
import
cn.quantgroup.xyqb.repository.IContactRepository
;
import
cn.quantgroup.xyqb.repository.IUserBtRegisterRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.ILkbUserService
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
cn.quantgroup.xyqb.service.user.IUserDetailService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.cache.annotation.Cacheable
;
...
@@ -23,6 +36,7 @@ import javax.transaction.Transactional;
...
@@ -23,6 +36,7 @@ import javax.transaction.Transactional;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
/**
/**
...
@@ -44,6 +58,28 @@ public class UserServiceImpl implements IUserService {
...
@@ -44,6 +58,28 @@ public class UserServiceImpl implements IUserService {
@Autowired
@Autowired
private
ISmsService
smsService
;
private
ISmsService
smsService
;
@Autowired
private
IAddressRepository
addressRepository
;
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
@Autowired
private
IContactRepository
contactRepository
;
@Autowired
private
IUserBtRegisterRepository
userBtRegisterRepository
;
@Autowired
private
IIdCardService
idCardService
;
@Autowired
private
IUserDetailService
userDetailRepository
;
private
Long
BAITIAO_CHANNEL
=
222L
;
private
final
static
Random
random
=
new
Random
();
@Override
@Override
public
User
findByPhoneInDb
(
String
phone
)
{
public
User
findByPhoneInDb
(
String
phone
)
{
return
userRepository
.
findByPhoneNo
(
phone
);
return
userRepository
.
findByPhoneNo
(
phone
);
...
@@ -98,6 +134,52 @@ public class UserServiceImpl implements IUserService {
...
@@ -98,6 +134,52 @@ public class UserServiceImpl implements IUserService {
});
});
}
}
@Override
public
User
registerAndReturn
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
Long
btRegisterChannelId
)
{
User
user
=
registerAndReturn
(
phoneNo
,
password
,
registerFrom
);
if
(
null
!=
user
&&
null
!=
btRegisterChannelId
){
UserBtRegister
userBtRegister
=
new
UserBtRegister
();
userBtRegister
.
setUserId
(
user
.
getId
());
userBtRegister
.
setRegisterBtMerchantId
(
btRegisterChannelId
);
userBtRegisterService
.
save
(
userBtRegister
);
log
.
info
(
"白条注册渠道信息保存完成,user:[{}],userBtRegister:[{}]"
,
user
,
userBtRegister
);
}
return
user
;
}
@Override
public
boolean
register
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
String
ip
,
Long
channelId
,
Long
btRegisterChannelId
)
{
String
uuid
=
lkbUserService
.
registerApp
(
phoneNo
,
password
);
Timestamp
currentTime
=
new
Timestamp
(
System
.
currentTimeMillis
());
User
user
=
new
User
();
user
.
setEnable
(
true
);
user
.
setPhoneNo
(
phoneNo
);
user
.
setUpdatedAt
(
currentTime
);
user
.
setCreatedAt
(
currentTime
);
user
.
setUuid
(
uuid
);
user
.
setPassword
(
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
));
//解决线上白条registerFrom为1的问题
if
(
channelId
==
222L
)
{
user
.
setRegisteredFrom
(
channelId
);
}
else
{
user
.
setRegisteredFrom
(
registerFrom
);
}
//user.setRegisteredFrom(registerFrom);
user
=
userRepository
.
save
(
user
);
if
(
null
!=
user
){
UserBtRegister
userBtRegister
=
new
UserBtRegister
();
userBtRegister
.
setUserId
(
user
.
getId
());
userBtRegister
.
setRegisterBtMerchantId
(
btRegisterChannelId
);
userBtRegisterService
.
save
(
userBtRegister
);
log
.
info
(
"白条注册渠道信息保存完成"
);
}
smsService
.
sendAfterRegister
(
phoneNo
);
return
user
!=
null
;
}
@Override
@Override
public
User
registerAndReturn
(
String
phoneNo
,
String
password
,
Long
registerFrom
)
{
public
User
registerAndReturn
(
String
phoneNo
,
String
password
,
Long
registerFrom
)
{
...
@@ -130,7 +212,7 @@ public class UserServiceImpl implements IUserService {
...
@@ -130,7 +212,7 @@ public class UserServiceImpl implements IUserService {
}
}
@Override
@Override
@Transactional
(
value
=
Transactional
.
TxType
.
REQUIRED
)
@Transactional
(
value
=
Transactional
.
TxType
.
REQUIRED
,
rollbackOn
=
Exception
.
class
)
public
boolean
register
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
String
userIp
,
Long
channelId
)
{
public
boolean
register
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
String
userIp
,
Long
channelId
)
{
String
uuid
=
lkbUserService
.
registerApp
(
phoneNo
,
password
);
String
uuid
=
lkbUserService
.
registerApp
(
phoneNo
,
password
);
Timestamp
currentTime
=
new
Timestamp
(
System
.
currentTimeMillis
());
Timestamp
currentTime
=
new
Timestamp
(
System
.
currentTimeMillis
());
...
@@ -183,4 +265,110 @@ public class UserServiceImpl implements IUserService {
...
@@ -183,4 +265,110 @@ public class UserServiceImpl implements IUserService {
return
StringUtils
.
equals
(
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
),
user
.
getPassword
());
return
StringUtils
.
equals
(
PasswordUtil
.
MD5
(
password
.
toLowerCase
()
+
Constants
.
PASSWORD_SALT
),
user
.
getPassword
());
}
}
@Override
@Transactional
(
value
=
Transactional
.
TxType
.
REQUIRED
,
rollbackOn
=
Exception
.
class
)
public
User
registerAndReturn
(
Long
registeredFrom
,
Long
channelId
,
String
phoneNo
,
String
name
,
String
idNo
,
String
provinceCode
,
String
province
,
String
cityCode
,
String
city
,
String
districtCode
,
String
district
,
String
address
,
String
contacts
)
{
// 用户信息
User
user
=
new
User
();
user
.
setPhoneNo
(
phoneNo
);
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
user
.
setCreatedAt
(
now
);
user
.
setUpdatedAt
(
now
);
user
.
setEnable
(
true
);
UserBtRegister
userBtRegister
=
null
;
// 白条渠道,需要设置`xyqb_user`.`user_bt_register`
if
(
BAITIAO_CHANNEL
.
equals
(
channelId
))
{
user
.
setRegisteredFrom
(
channelId
);
userBtRegister
=
new
UserBtRegister
();
}
else
{
user
.
setRegisteredFrom
(
registeredFrom
);
}
String
randomCode
=
String
.
valueOf
(
random
.
nextInt
(
899999
)
+
100000
);
String
uuid
=
lkbUserService
.
registerApp
(
phoneNo
,
randomCode
);
user
.
setUuid
(
uuid
);
user
.
setPassword
(
PasswordUtil
.
MD5
(
randomCode
+
Constants
.
PASSWORD_SALT
));
user
=
userRepository
.
save
(
user
);
Long
userId
=
user
.
getId
();
if
(
null
!=
userBtRegister
){
userBtRegister
.
setUserId
(
userId
);
userBtRegister
.
setIsActive
(
true
);
userBtRegister
.
setRegisterBtMerchantId
(
registeredFrom
);
userBtRegister
.
setCreatedAt
(
now
);
userBtRegister
.
setUpdatedAt
(
now
);
userBtRegisterRepository
.
save
(
userBtRegister
);
}
// 地址信息
Address
addressObj
=
new
Address
();
addressObj
.
setUserId
(
userId
);
addressObj
.
setProvinceCode
(
Long
.
valueOf
(
provinceCode
));
addressObj
.
setProvince
(
province
);
addressObj
.
setCityCode
(
Long
.
valueOf
(
cityCode
));
addressObj
.
setCity
(
city
);
addressObj
.
setDistrictCode
(
Long
.
valueOf
(
districtCode
));
addressObj
.
setDistrict
(
district
);
addressObj
.
setAddress
(
address
);
addressObj
.
setCreatedAt
(
now
);
addressObj
.
setUpdateAt
(
now
);
addressRepository
.
save
(
addressObj
);
try
{
IdCardInfo
idCardInfo
=
idCardService
.
getIdCardInfo
(
idNo
);
UserDetail
userDetail
=
new
UserDetail
();
userDetail
.
setPhoneNo
(
phoneNo
);
userDetail
.
setIdNo
(
idNo
);
userDetail
.
setUserId
(
userId
);
userDetail
.
setName
(
name
);
userDetail
.
setGender
(
idCardInfo
.
getGender
());
userDetail
.
setIdType
(
IdType
.
ID_CARD
);
userDetail
.
setCreatedAt
(
now
);
userDetail
.
setUpdatedAt
(
now
);
userDetailRepository
.
saveUserDetail
(
userDetail
);
}
catch
(
Exception
e
){
throw
new
RuntimeException
(
"idCardService Exception"
);
}
// 联系人信息
if
(
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
contacts
))
{
List
<
Contact
>
contactList
=
JSONObject
.
parseObject
(
contacts
,
new
TypeReference
<
List
<
Contact
>>()
{
});
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isNotEmpty
(
contactList
))
{
convertContactList
(
userId
,
contactList
,
2
,
now
);
contactRepository
.
save
(
contactList
);
}
}
return
user
;
}
/**
*
* @param userId
* @param contacts
* @param number 联系人最大数量
* @param now
*/
private
void
convertContactList
(
Long
userId
,
List
<
Contact
>
contacts
,
int
number
,
Timestamp
now
)
{
int
count
=
1
;
for
(
Contact
c
:
contacts
)
{
if
(
count
>
number
)
{
break
;
}
c
.
setId
(
null
);
c
.
setUserId
(
userId
);
c
.
setRelation
(
c
.
getRelation
()
==
null
?
Relation
.
OTHER
:
c
.
getRelation
());
c
.
setCreatedAt
(
now
);
c
.
setUpdateAt
(
now
);
count
++;
}
}
}
}
src/main/java/cn/quantgroup/xyqb/service/user/vo/UserDetailVO.java
View file @
d18fa48c
...
@@ -82,6 +82,8 @@ public class UserDetailVO {
...
@@ -82,6 +82,8 @@ public class UserDetailVO {
if
(
this
.
getUpdatedAt
()
!=
null
)
{
if
(
this
.
getUpdatedAt
()
!=
null
)
{
xUserDetail
.
setUpdatedAt
(
new
Timestamp
(
this
.
getUpdatedAt
()));
xUserDetail
.
setUpdatedAt
(
new
Timestamp
(
this
.
getUpdatedAt
()));
}
}
xUserDetail
.
setIsAuthenticated
(
this
.
getIsAuthenticated
());
xUserDetail
.
setIsAuthenticated
(
this
.
getIsAuthenticated
());
xUserDetail
.
setEnable
(
this
.
getEnable
());
xUserDetail
.
setEnable
(
this
.
getEnable
());
return
xUserDetail
;
return
xUserDetail
;
...
...
src/main/java/cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
View file @
d18fa48c
...
@@ -78,6 +78,30 @@ public class XyqbSessionContextHolder {
...
@@ -78,6 +78,30 @@ public class XyqbSessionContextHolder {
}
}
}
}
public
static
SessionStruct
getXSessionFromRedis
(
String
token
){
if
(
token
==
null
||
token
.
length
()
!=
36
)
{
return
null
;
}
String
result
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
Session
.
USER_SESSION_CACHE
+
token
);
if
(
StringUtils
.
isEmpty
(
result
))
{
return
null
;
}
try
{
SessionValue
values
=
JSON
.
parseObject
(
result
,
SessionValue
.
class
);
if
(
values
==
null
)
{
return
null
;
}
SessionStruct
sessionStruct
=
new
SessionStruct
();
sessionStruct
.
setSid
(
token
);
sessionStruct
.
setValues
(
values
);
return
sessionStruct
;
}
catch
(
Exception
ex
){
LOGGER
.
error
(
"序列化session出错"
,
ex
);
return
null
;
}
}
public
static
void
releaseSession
()
{
public
static
void
releaseSession
()
{
threadSession
.
remove
();
threadSession
.
remove
();
}
}
...
...
src/main/resources/config/dev/logback.xml
View file @
d18fa48c
src/main/resources/config/dev/xyqb.properties
View file @
d18fa48c
...
@@ -2,6 +2,7 @@ config.accessable=false
...
@@ -2,6 +2,7 @@ config.accessable=false
configserver.disable
=
1
configserver.disable
=
1
configserver.system
=
xyqb-user
configserver.system
=
xyqb-user
#xyqb.data.mysql.jdbc-url=jdbc:mysql://192.168.4.22:3306/xyqb_user?useUnicode=true&characterEncoding=UTF8
xyqb.data.mysql.jdbc-url
=
jdbc:mysql://192.168.4.163:3306/xyqb_user?useUnicode=true&characterEncoding=UTF8
xyqb.data.mysql.jdbc-url
=
jdbc:mysql://192.168.4.163:3306/xyqb_user?useUnicode=true&characterEncoding=UTF8
xyqb.data.mysql.password
=
qatest
xyqb.data.mysql.password
=
qatest
...
@@ -16,7 +17,7 @@ xyqb.filter.allowedHeaders=Origin, No-Cache, x-auth-token, X-Requested-With, If-
...
@@ -16,7 +17,7 @@ xyqb.filter.allowedHeaders=Origin, No-Cache, x-auth-token, X-Requested-With, If-
xyqb.data.redis.defaultExpiration
=
3600
xyqb.data.redis.defaultExpiration
=
3600
# redis
# redis
xyqb.redis.master.host
=
192.168.4.
163
xyqb.redis.master.host
=
192.168.4.
22
xyqb.redis.master.port
=
6379
xyqb.redis.master.port
=
6379
xyqb.redis.master.name
=
xyqb.redis.master.name
=
xyqb.redis.sentinel1.host
=
xyqb.redis.sentinel1.host
=
...
@@ -30,11 +31,12 @@ xyqb.redis.sentinel3.port=0
...
@@ -30,11 +31,12 @@ xyqb.redis.sentinel3.port=0
sms.is.debug
=
1
sms.is.debug
=
1
# LKB client
# LKB client
lkb.client.url
=
http://192.168.
192.163:8082
/LKBClient/openapi
lkb.client.url
=
http://192.168.
4.193:8083
/LKBClient/openapi
lkb.client.user.register.app
=
/new/register/registerApp.json
lkb.client.user.register.app
=
/new/register/registerApp.json
lkb.client.user.register.58jr
=
/new/register/jr58/saveUserInfo.json
lkb.client.user.register.58jr
=
/new/register/jr58/saveUserInfo.json
lkb.client.user.update
=
/new/register/updateUser.json
lkb.client.user.update
=
/new/register/updateUser.json
# LKB import
# LKB import
lkb.import.url
=
http://spider.quantgroup.cn
lkb.import.url
=
http://spider.quantgroup.cn
...
...
src/main/resources/config/test/logback.xml
View file @
d18fa48c
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<maxHistory>
30
</maxHistory>
<maxHistory>
30
</maxHistory>
</rollingPolicy>
</rollingPolicy>
<layout
class=
"ch.qos.logback.classic.PatternLayout"
>
<layout
class=
"ch.qos.logback.classic.PatternLayout"
>
<pattern>
%d{ISO8601} [%-5level] %logger{36} - %msg%n
</pattern>
<pattern>
%d{ISO8601} [%
thread] [%
-5level] %logger{36} - %msg%n
</pattern>
</layout>
</layout>
</appender>
</appender>
...
...
src/test/java/demo/DemoApplicationTests.java
View file @
d18fa48c
...
@@ -36,8 +36,8 @@ public class DemoApplicationTests {
...
@@ -36,8 +36,8 @@ public class DemoApplicationTests {
@Test
@Test
public
void
registerFast
()
{
public
void
registerFast
()
{
JsonResult
jsonResult
=
userController
.
registerFast
(
"18611428880"
,
"000000"
,
null
,
null
,
""
);
//
JsonResult jsonResult = userController.registerFast("18611428880", "000000", null, null, "");
Assert
.
assertEquals
(
jsonResult
.
getCode
(),
"0000"
);
//
Assert.assertEquals(jsonResult.getCode(), "0000");
}
}
@Test
@Test
...
...
src/test/java/user/TestUserLogin.java
View file @
d18fa48c
package
user
;
package
user
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.controller.external.user.InnerController
;
import
cn.quantgroup.xyqb.controller.internal.user.UserController
;
import
cn.quantgroup.xyqb.controller.internal.user.UserController
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
org.apache.commons.lang3.StringUtils
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -23,8 +27,28 @@ public class TestUserLogin {
...
@@ -23,8 +27,28 @@ public class TestUserLogin {
@Autowired
@Autowired
private
UserController
userController
;
private
UserController
userController
;
@Autowired
private
InnerController
innerController
;
@Test
public
void
testBull
()
{
String
contacts
=
null
;
boolean
notBlank
=
StringUtils
.
isNotBlank
(
contacts
);
System
.
out
.
println
(
"-----------------------------result:"
+
notBlank
);
}
@Test
public
void
testJson
()
{
JsonResult
addressByUserId
=
innerController
.
findAddressByUserId
(
22L
);
// JsonResult userByUserId = innerController.findUserByPhoneNo("17811111122");
System
.
out
.
println
(
"-------------result:"
+
addressByUserId
);
}
@Test
@Test
public
void
testUserLogin
()
{
public
void
testUserLogin
()
{
Long
code
=
1L
;
String
format
=
String
.
format
(
Constants
.
ZERO_FILL_TEMPLATE
,
code
);
System
.
out
.
println
(
"-----------format:"
+
format
);
//访问xyqb-user拿到登录token
//访问xyqb-user拿到登录token
/*Long channelId = 1L;
/*Long channelId = 1L;
String appChannel = "3";
String appChannel = "3";
...
...
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