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
9650903b
Commit
9650903b
authored
May 18, 2017
by
Java-刘 彧阳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix some thing
parent
abd92e39
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
162 additions
and
20 deletions
+162
-20
pom.xml
pom.xml
+1
-1
MotanUserServiceImpl.java
.../xyqb/controller/external/motan/MotanUserServiceImpl.java
+132
-15
UserDetail.java
src/main/java/cn/quantgroup/xyqb/entity/UserDetail.java
+2
-2
UserExtInfo.java
src/main/java/cn/quantgroup/xyqb/entity/UserExtInfo.java
+17
-0
LoginInfo.java
...main/java/cn/quantgroup/xyqb/model/session/LoginInfo.java
+8
-0
UserDetailVO.java
...java/cn/quantgroup/xyqb/service/user/vo/UserDetailVO.java
+2
-2
No files found.
pom.xml
View file @
9650903b
...
...
@@ -257,7 +257,7 @@
<dependency>
<groupId>
cn.quantgroup
</groupId>
<artifactId>
xyqb-user-rpc-commons
</artifactId>
<version>
1.
0
-SNAPSHOT
</version>
<version>
1.
1.1
-SNAPSHOT
</version>
</dependency>
<dependency>
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/motan/MotanUserServiceImpl.java
View file @
9650903b
...
...
@@ -7,38 +7,44 @@ import cn.quantgroup.motan.vo.UserSysResult;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.enumerate.*
;
import
cn.quantgroup.xyqb.model.IdCardInfo
;
import
cn.quantgroup.xyqb.model.IdType
;
import
cn.quantgroup.xyqb.model.LoginProperties
;
import
cn.quantgroup.xyqb.model.UserRet
;
import
cn.quantgroup.xyqb.model.*
;
import
cn.quantgroup.xyqb.model.session.LoginInfo
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.repository.IUserRepository
;
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.session.ISessionService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.vo.UserDetailVO
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.session.XyqbSessionContextHolder
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.google.common.collect.ImmutableMap
;
import
com.weibo.api.motan.config.springsupport.annotation.MotanService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.util.CollectionUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.stream.Collectors
;
import
static
cn
.
quantgroup
.
xyqb
.
constant
.
UserConstant
.
USER_ERROR_OR_PASSWORD_ERROR
;
/**
* Created by 11 on 2017/2/27.
*/
...
...
@@ -79,6 +85,11 @@ public class MotanUserServiceImpl implements UserMotanService {
@Autowired
private
IUserSpouseService
userSpouseService
;
@Value
(
"${xyqb.auth.url}"
)
private
String
xyqbAuthUrl
;
@Autowired
private
IHttpService
httpService
;
@Override
public
UserSysResult
<
XUser
>
findUserByPhoneNo
(
String
phoneNo
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
...
...
@@ -257,7 +268,7 @@ public class MotanUserServiceImpl implements UserMotanService {
log
.
info
(
"第三方用户登录, loginFrom:{}, requestIp:{}"
,
appLoginParam
.
getRegisterFrom
(),
requestIp
);
User
user
=
userService
.
findByPhoneInDb
(
appLoginParam
.
getPhoneNo
());
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
)
{
return
returnErrorValue
(
"账户或者密码错误"
);
...
...
@@ -450,7 +461,21 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
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
...
...
@@ -494,13 +519,24 @@ public class MotanUserServiceImpl implements UserMotanService {
xUserSpouse
.
setSpouseName
(
userSpouse
.
getSpouseName
());
xUserSpouse
.
setCreatedAt
(
userSpouse
.
getCreatedAt
());
xUserSpouse
.
setUpdateAt
(
userSpouse
.
getUpdateAt
());
xUserSpouse
.
setStatus
(
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
valueOf
(
userSpouse
.
getStatus
().
name
()));
xUserSpouse
.
setStatus
(
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
.
valueOf
(
userSpouse
.
getStatus
().
name
()));
return
xUserSpouse
;
}
@Override
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
...
...
@@ -515,11 +551,13 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
public
UserSysResult
<
String
>
loginWithUuid
(
String
uuid
)
{
//todo
return
null
;
}
@Override
public
UserSysResult
<
Boolean
>
userImportCheck
(
String
phoneNo
,
String
registerFrom
)
{
//todo
return
null
;
}
...
...
@@ -528,10 +566,10 @@ public class MotanUserServiceImpl implements UserMotanService {
if
(
xUserSpouse
.
getUserId
()
==
null
||
xUserSpouse
.
getUserId
()
==
0
)
{
return
returnErrorValue
(
"用户不能为空"
);
}
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
status
=
xUserSpouse
.
getStatus
();
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
status
=
xUserSpouse
.
getStatus
();
String
spousePhone
=
xUserSpouse
.
getSpousePhone
();
String
spouseName
=
xUserSpouse
.
getSpouseName
();
if
(
xUserSpouse
.
getStatus
()
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
)
{
if
(
xUserSpouse
.
getStatus
()
==
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
.
MARRIED
)
{
if
(!
ValidationUtil
.
validatePhoneNo
(
spousePhone
))
{
return
returnErrorValue
(
"手机号格式错误"
);
}
...
...
@@ -545,8 +583,8 @@ public class MotanUserServiceImpl implements UserMotanService {
userSpouse
=
new
UserSpouse
(
xUserSpouse
.
getUserId
());
userSpouse
.
setCreatedAt
(
timestamp
);
}
userSpouse
.
setSpouseName
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpousePhone
(
status
==
cn
.
quantgroup
.
user
.
enums
.
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setSpouseName
(
status
==
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
.
MARRIED
?
spouseName
:
""
);
userSpouse
.
setSpousePhone
(
status
==
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
.
MARRIED
?
spousePhone
:
""
);
userSpouse
.
setStatus
(
MaritalStatus
.
valueOf
(
status
.
name
()));
userSpouse
.
setUpdateAt
(
timestamp
);
userSpouse
=
userSpouseService
.
save
(
userSpouse
);
...
...
@@ -554,8 +592,82 @@ public class MotanUserServiceImpl implements UserMotanService {
}
@Override
public
UserSysResult
<
AppLoginResultBean
>
appLogin
(
AppLoginParam
param
)
{
return
null
;
public
UserSysResult
<
AppLoginResultBean
>
appLogin
(
AppLoginParam
appLoginParam
)
{
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
();
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
);
}
}
/**
...
...
@@ -596,7 +708,7 @@ public class MotanUserServiceImpl implements UserMotanService {
*
* @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
);
...
...
@@ -606,6 +718,11 @@ public class MotanUserServiceImpl implements UserMotanService {
log
.
info
(
"第三方登录用户,保存 User"
);
User
user
=
new
User
();
if
(
channelId
==
222L
)
{
user
.
setRegisteredFrom
(
channelId
);
}
else
{
user
.
setRegisteredFrom
(
registerFrom
);
}
user
.
setRegisteredFrom
(
registerFrom
);
user
.
setUuid
(
uuid
);
user
.
setEnable
(
true
);
...
...
src/main/java/cn/quantgroup/xyqb/entity/UserDetail.java
View file @
9650903b
...
...
@@ -75,10 +75,10 @@ public class UserDetail implements Serializable {
xUserDetail
.
setName
(
this
.
getName
());
xUserDetail
.
setIdNo
(
this
.
getIdNo
());
if
(
this
.
getIdType
()
!=
null
)
{
xUserDetail
.
setIdType
(
cn
.
quantgroup
.
user
.
enums
.
IdType
.
valueOf
(
this
.
getIdType
().
name
()));
xUserDetail
.
setIdType
(
cn
.
quantgroup
.
motan
.
enums
.
IdType
.
valueOf
(
this
.
getIdType
().
name
()));
}
if
(
this
.
getGender
()
!=
null
)
{
xUserDetail
.
setGender
(
cn
.
quantgroup
.
user
.
enums
.
Gender
.
valueOf
(
this
.
getGender
().
name
()));
xUserDetail
.
setGender
(
cn
.
quantgroup
.
motan
.
enums
.
Gender
.
valueOf
(
this
.
getGender
().
name
()));
}
xUserDetail
.
setEmail
(
this
.
getEmail
());
xUserDetail
.
setQq
(
this
.
getQq
());
...
...
src/main/java/cn/quantgroup/xyqb/entity/UserExtInfo.java
View file @
9650903b
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.motan.retbean.XUserExtInfo
;
import
cn.quantgroup.xyqb.entity.enumerate.*
;
import
lombok.Data
;
...
...
@@ -45,4 +46,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
.
motan
.
enums
.
EducationEnum
.
valueOf
(
this
.
educationEnum
.
name
()));
xUserExtInfo
.
setIncomeEnum
(
cn
.
quantgroup
.
motan
.
enums
.
IncomeEnum
.
valueOf
(
this
.
incomeEnum
.
name
()));
xUserExtInfo
.
setIncomeRangeEnum
(
cn
.
quantgroup
.
motan
.
enums
.
IncomeRangeEnum
.
valueOf
(
this
.
incomeRangeEnum
.
name
()));
xUserExtInfo
.
setOccupationEnum
(
cn
.
quantgroup
.
motan
.
enums
.
OccupationEnum
.
valueOf
(
this
.
occupationEnum
.
name
()));
xUserExtInfo
.
setHasCar
(
this
.
hasCar
);
xUserExtInfo
.
setHasSocialSecurity
(
this
.
hasSocialSecurity
);
xUserExtInfo
.
setHasCreditCard
(
this
.
hasCreditCard
);
xUserExtInfo
.
setMarryStatus
(
cn
.
quantgroup
.
motan
.
enums
.
MaritalStatus
.
valueOf
(
this
.
marryStatus
.
name
()));
xUserExtInfo
.
setCreatedAt
(
this
.
createdAt
);
xUserExtInfo
.
setUpdateAt
(
this
.
updateAt
);
return
xUserExtInfo
;
}
}
src/main/java/cn/quantgroup/xyqb/model/session/LoginInfo.java
View file @
9650903b
...
...
@@ -23,6 +23,14 @@ 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
{
...
...
src/main/java/cn/quantgroup/xyqb/service/user/vo/UserDetailVO.java
View file @
9650903b
...
...
@@ -68,10 +68,10 @@ public class UserDetailVO {
xUserDetail
.
setName
(
this
.
getName
());
xUserDetail
.
setIdNo
(
this
.
getIdNo
());
if
(
this
.
getIdType
()
!=
null
)
{
xUserDetail
.
setIdType
(
cn
.
quantgroup
.
user
.
enums
.
IdType
.
valueOf
(
this
.
getIdType
().
name
()));
xUserDetail
.
setIdType
(
cn
.
quantgroup
.
motan
.
enums
.
IdType
.
valueOf
(
this
.
getIdType
().
name
()));
}
if
(
this
.
getGender
()
!=
null
)
{
xUserDetail
.
setGender
(
cn
.
quantgroup
.
user
.
enums
.
Gender
.
valueOf
(
this
.
getGender
().
name
()));
xUserDetail
.
setGender
(
cn
.
quantgroup
.
motan
.
enums
.
Gender
.
valueOf
(
this
.
getGender
().
name
()));
}
xUserDetail
.
setEmail
(
this
.
getEmail
());
xUserDetail
.
setQq
(
this
.
getQq
());
...
...
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