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
Expand all
Hide 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 @@
<dependency>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
xyqb-user-rpc-commons
</artifactId>
<version>
1.
0
-SNAPSHOT
</version>
<version>
1.
1.2
-SNAPSHOT
</version>
</dependency>
<dependency>
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/motan/MotanUserServiceImpl.java
View file @
d18fa48c
This diff is collapsed.
Click to expand it.
src/main/java/cn/quantgroup/xyqb/controller/external/user/AppController.java
View file @
d18fa48c
...
...
@@ -4,16 +4,20 @@ import cn.quantgroup.xyqb.Constants;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
cn.quantgroup.xyqb.exception.NullUserException
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.repository.IUserBtRegisterRepository
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.merchant.IMerchantService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
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.util.IPUtil
;
...
...
@@ -59,7 +63,8 @@ public class AppController implements IBaseController {
private
IIdCardService
idCardService
;
@Autowired
private
IMerchantService
merchantService
;
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
/**
* 第三方用户登录
*/
...
...
@@ -68,7 +73,7 @@ public class AppController implements IBaseController {
String
phoneNo
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@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
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
@@ -78,7 +83,7 @@ public class AppController implements IBaseController {
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
);
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
}
if
(
user
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
@@ -103,6 +108,8 @@ public class AppController implements IBaseController {
return
new
JsonResult
(
bean
);
}
/**
* 第三方用户登录并返回用户信息
*/
...
...
@@ -111,7 +118,7 @@ public class AppController implements IBaseController {
String
phoneNo
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
registerFrom
,
@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
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
@@ -121,7 +128,7 @@ public class AppController implements IBaseController {
LOGGER
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
registerFrom
,
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
);
user
=
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
}
if
(
user
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
@@ -153,6 +160,26 @@ public class AppController implements IBaseController {
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
This diff is collapsed.
Click to expand it.
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;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.enumerate.EducationEnum
;
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.EducationEnum;
//import cn.quantgroup.xyqb.entity.enumerate.IncomeRangeEnum;
//import cn.quantgroup.xyqb.entity.enumerate.MaritalStatus;
//import cn.quantgroup.xyqb.entity.enumerate.OccupationEnum;
import
cn.quantgroup.user.enums.*
;
import
cn.quantgroup.xyqb.model.ContactRet
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.user.enums.*
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
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;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.UserBtRegister
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.UserRet
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.user.IUserBtRegisterService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.ImmutableMap
;
...
...
@@ -42,12 +44,15 @@ public class AuthInfoController implements IBaseController {
@Autowired
private
IUserService
userService
;
@Autowired
private
IUserBtRegisterService
userBtRegisterService
;
@RequestMapping
(
"/info/login"
)
public
JsonResult
loginInfo
()
{
SessionStruct
sessionStruct
=
getCurrentSessionFromRedis
();
if
(
null
!=
sessionStruct
)
{
log
.
info
(
"从用户中心获取到了用户登录信息:phone:[{}]"
,
sessionStruct
.
getValues
().
getUser
().
getPhoneNo
());
log
.
info
(
"从用户中心获取到了用户登录信息:phone:[{}]"
,
sessionStruct
.
getValues
().
getUser
().
getPhoneNo
());
LoginInfo
loginInfo
=
new
LoginInfo
();
loginInfo
.
setUser
(
UserRet
.
getUserRet
(
sessionStruct
.
getValues
().
getUser
()));
loginInfo
.
setToken
(
sessionStruct
.
getSid
());
...
...
@@ -55,6 +60,7 @@ public class AuthInfoController implements IBaseController {
context
.
setChannelId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getChannelId
());
context
.
setCreatedFrom
(
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
());
context
.
setAppChannel
(
sessionStruct
.
getValues
().
getLoginProperties
().
getAppChannel
());
context
.
setBtMerchantId
(
sessionStruct
.
getValues
().
getLoginProperties
().
getBtMerchantId
());
loginInfo
.
setLoginContext
(
context
);
return
JsonResult
.
buildSuccessResult
(
""
,
loginInfo
);
//有ThreadLocal不释放的问题,不可再使用原来方式了
}
else
{
...
...
@@ -82,6 +88,15 @@ public class AuthInfoController implements IBaseController {
context
.
setChannelId
(
null
);
context
.
setCreatedFrom
(
user
.
getRegisteredFrom
());
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
);
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 {
@RequestMapping
(
"/login/fast"
)
public
JsonResult
loginFast
(
@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
);
if
(
null
!=
validMap
.
get
(
"fail"
))
{
return
validMap
.
get
(
"fail"
);
...
...
@@ -110,7 +110,7 @@ public class UserController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
if
(
user
==
null
)
{
user
=
registerFastWhenLogin
(
phoneNo
,
channelId
,
createdFrom
,
appChannel
);
user
=
registerFastWhenLogin
(
phoneNo
,
channelId
,
createdFrom
,
appChannel
,
btRegisterChannelId
);
if
(
user
==
null
)
{
throw
new
UserNotExistException
(
"用户未找到"
);
}
...
...
@@ -119,6 +119,21 @@ public class UserController implements IBaseController {
// 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 {
*/
@RequestMapping
(
"/register/fast"
)
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
();
LOGGER
.
info
(
"用户快速注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},appChannel:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
,
appChannel
);
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
...
...
@@ -197,7 +213,7 @@ public class UserController implements IBaseController {
LOGGER
.
info
(
"用户快速注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
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
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
}
...
...
@@ -220,8 +236,9 @@ public class UserController implements IBaseController {
@RequestMapping
(
"/register"
)
public
JsonResult
register
(
@RequestParam
String
phoneNo
,
@RequestParam
String
password
,
@RequestParam
String
verificationCode
,
@RequestParam
(
required
=
false
)
Long
channelId
,
@RequestParam
(
required
=
false
)
Long
registerFrom
)
{
LOGGER
.
info
(
"用户注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
);
@RequestParam
(
required
=
false
)
Long
registerFrom
,
@RequestParam
(
required
=
false
)
Long
btRegisterChannelId
)
{
LOGGER
.
info
(
"用户注册, phoneNo:{}, verificationCode:{}, channelId:{}, registerFrom:{},btRegisterChannelId:{}"
,
phoneNo
,
verificationCode
,
channelId
,
registerFrom
,
btRegisterChannelId
);
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
LOGGER
.
info
(
"用户注册失败,手机号错误, registerFrom:{}, phoneNo:{}"
,
registerFrom
,
phoneNo
);
return
JsonResult
.
buildErrorStateResult
(
"手机号错误"
,
null
);
...
...
@@ -245,7 +262,7 @@ public class UserController implements IBaseController {
LOGGER
.
info
(
"用户注册失败,短信验证码错误, registerFrom:{}, phoneNo:{}, verificationCode:{}"
,
registerFrom
,
phoneNo
,
verificationCode
);
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
);
return
JsonResult
.
buildErrorStateResult
(
"注册失败,请稍后重试"
,
null
);
}
...
...
src/main/java/cn/quantgroup/xyqb/entity/Contact.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.
xyqb.entity.enumerate
.Relation
;
import
cn.quantgroup.
user.enums
.Relation
;
import
lombok.Data
;
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
;
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
javax.persistence.*
;
...
...
@@ -45,4 +47,20 @@ public class UserExtInfo implements Serializable {
@Column
(
name
=
"updated_at"
)
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
;
import
cn.quantgroup.
xyqb.entity.enumerate
.MaritalStatus
;
import
cn.quantgroup.
user.enums
.MaritalStatus
;
import
lombok.*
;
import
javax.persistence.*
;
...
...
src/main/java/cn/quantgroup/xyqb/model/ContactRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.Contact
;
import
cn.quantgroup.
xyqb.entity.enumerate
.Relation
;
import
cn.quantgroup.
user.enums
.Relation
;
import
lombok.Data
;
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 {
private
Long
createdFrom
=
1L
;
private
String
appChannel
=
""
;
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;
import
cn.quantgroup.xyqb.entity.UserDetail
;
import
lombok.Data
;
import
org.apache.commons.lang.StringUtils
;
import
cn.quantgroup.xyqb.model.IdType
;
import
java.io.Serializable
;
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/UserExtInfoRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.UserExtInfo
;
import
cn.quantgroup.
xyqb.entity.enumerate
.*
;
import
cn.quantgroup.
user.enums
.*
;
import
lombok.Data
;
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/UserSpouseRet.java
View file @
d18fa48c
package
cn
.
quantgroup
.
xyqb
.
model
;
import
cn.quantgroup.xyqb.entity.UserSpouse
;
import
cn.quantgroup.
xyqb.entity.enumerate
.MaritalStatus
;
import
cn.quantgroup.
user.enums
.MaritalStatus
;
import
lombok.Data
;
/**
...
...
src/main/java/cn/quantgroup/xyqb/model/session/LoginInfo.java
View file @
d18fa48c
...
...
@@ -23,13 +23,21 @@ public class LoginInfo {
return
JSON
.
parseObject
(
userJson
,
XLoginInfo
.
class
);
}
public
XLoginInfo
toXLoginInfo
()
{
XLoginInfo
xLoginInfo
=
new
XLoginInfo
();
// xLoginInfo.setUser();
return
xLoginInfo
;
}
@Data
public
static
class
LoginContext
{
private
Long
channelId
;
private
Long
createdFrom
;
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;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.base.Joiner
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -121,6 +122,7 @@ public class SessionServiceImpl implements ISessionService {
}
@Override
@UserBtRegisterFill
public
void
persistSession
(
String
token
,
SessionValue
sessionValue
)
{
Timestamp
current
=
new
Timestamp
(
System
.
currentTimeMillis
());
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 {
User
findById
(
Long
userId
);
boolean
register
(
String
phoneNo
,
String
password
,
Long
registerFrom
,
String
ip
,
Long
channelId
,
Long
btRegisterChannelId
);
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
;
import
cn.quantgroup.user.enums.Relation
;
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.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
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.util.PasswordUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
...
...
@@ -23,6 +36,7 @@ import javax.transaction.Transactional;
import
java.sql.Timestamp
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.concurrent.TimeUnit
;
/**
...
...
@@ -44,6 +58,28 @@ public class UserServiceImpl implements IUserService {
@Autowired
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
public
User
findByPhoneInDb
(
String
phone
)
{
return
userRepository
.
findByPhoneNo
(
phone
);
...
...
@@ -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
public
User
registerAndReturn
(
String
phoneNo
,
String
password
,
Long
registerFrom
)
{
...
...
@@ -130,7 +212,7 @@ public class UserServiceImpl implements IUserService {
}
@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
)
{
String
uuid
=
lkbUserService
.
registerApp
(
phoneNo
,
password
);
Timestamp
currentTime
=
new
Timestamp
(
System
.
currentTimeMillis
());
...
...
@@ -183,4 +265,110 @@ public class UserServiceImpl implements IUserService {
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 {
if
(
this
.
getUpdatedAt
()
!=
null
)
{
xUserDetail
.
setUpdatedAt
(
new
Timestamp
(
this
.
getUpdatedAt
()));
}
xUserDetail
.
setIsAuthenticated
(
this
.
getIsAuthenticated
());
xUserDetail
.
setEnable
(
this
.
getEnable
());
return
xUserDetail
;
...
...
src/main/java/cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
View file @
d18fa48c
...
...
@@ -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
()
{
threadSession
.
remove
();
}
...
...
src/main/resources/config/dev/logback.xml
View file @
d18fa48c
...
...
@@ -8,7 +8,7 @@
<maxHistory>30</maxHistory>
</rollingPolicy>-->
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<layout
class=
"ch.qos.logback.classic.PatternLayout"
>
<pattern>
%d{ISO8601} [%thread] [%-5level] %logger{36} - %msg%n
</pattern>
...
...
src/main/resources/config/dev/xyqb.properties
View file @
d18fa48c
...
...
@@ -2,6 +2,7 @@ config.accessable=false
configserver.disable
=
1
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.password
=
qatest
...
...
@@ -16,7 +17,7 @@ xyqb.filter.allowedHeaders=Origin, No-Cache, x-auth-token, X-Requested-With, If-
xyqb.data.redis.defaultExpiration
=
3600
# 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.name
=
xyqb.redis.sentinel1.host
=
...
...
@@ -30,11 +31,12 @@ xyqb.redis.sentinel3.port=0
sms.is.debug
=
1
# 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.58jr
=
/new/register/jr58/saveUserInfo.json
lkb.client.user.update
=
/new/register/updateUser.json
# LKB import
lkb.import.url
=
http://spider.quantgroup.cn
...
...
src/main/resources/config/test/logback.xml
View file @
d18fa48c
...
...
@@ -8,7 +8,7 @@
<maxHistory>
30
</maxHistory>
</rollingPolicy>
<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>
</appender>
...
...
src/test/java/demo/DemoApplicationTests.java
View file @
d18fa48c
...
...
@@ -36,8 +36,8 @@ public class DemoApplicationTests {
@Test
public
void
registerFast
()
{
JsonResult
jsonResult
=
userController
.
registerFast
(
"18611428880"
,
"000000"
,
null
,
null
,
""
);
Assert
.
assertEquals
(
jsonResult
.
getCode
(),
"0000"
);
//
JsonResult jsonResult = userController.registerFast("18611428880", "000000", null, null, "");
//
Assert.assertEquals(jsonResult.getCode(), "0000");
}
@Test
...
...
src/test/java/user/TestUserLogin.java
View file @
d18fa48c
package
user
;
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.model.JsonResult
;
import
org.apache.commons.lang3.StringUtils
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -23,8 +27,28 @@ public class TestUserLogin {
@Autowired
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
public
void
testUserLogin
()
{
Long
code
=
1L
;
String
format
=
String
.
format
(
Constants
.
ZERO_FILL_TEMPLATE
,
code
);
System
.
out
.
println
(
"-----------format:"
+
format
);
//访问xyqb-user拿到登录token
/*Long channelId = 1L;
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