Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
youjj
cloud-platform
Commits
e6db8c1c
Commit
e6db8c1c
authored
Oct 25, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
帐号绑定
parent
a7991708
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
347 additions
and
27 deletions
+347
-27
AccountBindDTO.java
...com/github/wxiaoqi/security/admin/dto/AccountBindDTO.java
+22
-0
AppUserAlipay.java
...m/github/wxiaoqi/security/admin/entity/AppUserAlipay.java
+7
-4
AppUserDetail.java
...m/github/wxiaoqi/security/admin/entity/AppUserDetail.java
+8
-0
AppUserDTO.java
...m/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
+6
-1
AppUserVo.java
.../java/com/github/wxiaoqi/security/admin/vo/AppUserVo.java
+5
-1
AppUserAlipayBiz.java
...m/github/wxiaoqi/security/admin/biz/AppUserAlipayBiz.java
+127
-3
AppUserDetailBiz.java
...m/github/wxiaoqi/security/admin/biz/AppUserDetailBiz.java
+15
-0
AppUserLoginBiz.java
...om/github/wxiaoqi/security/admin/biz/AppUserLoginBiz.java
+74
-7
AppUserController.java
...github/wxiaoqi/security/admin/rest/AppUserController.java
+33
-7
AppUserDetailMapper.xml
...e-admin/src/main/resources/mapper/AppUserDetailMapper.xml
+2
-0
ThirdFeign.java
...in/java/com/xxfc/platform/universal/feign/ThirdFeign.java
+5
-4
OrderPayBiz.java
...ain/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
+29
-0
UserInfoController.java
...xfc/platform/universal/controller/UserInfoController.java
+14
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/AccountBindDTO.java
0 → 100644
View file @
e6db8c1c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/25 14:42
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
AccountBindDTO
{
private
String
opendId
;
private
String
unionId
;
private
String
nickName
;
private
String
code
;
private
String
type
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserAlipay.java
View file @
e6db8c1c
...
@@ -2,10 +2,8 @@ package com.github.wxiaoqi.security.admin.entity;
...
@@ -2,10 +2,8 @@ package com.github.wxiaoqi.security.admin.entity;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.*
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
/**
* 支付宝账号表
* 支付宝账号表
...
@@ -37,7 +35,12 @@ public class AppUserAlipay {
...
@@ -37,7 +35,12 @@ public class AppUserAlipay {
@Column
(
name
=
"is_del"
)
@Column
(
name
=
"is_del"
)
private
Integer
isDel
;
private
Integer
isDel
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
//类型 1、支付宝,2、微信
@Transient
private
Integer
type
;
}
}
\ No newline at end of file
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/entity/AppUserDetail.java
View file @
e6db8c1c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
entity
;
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GeneratedValue
;
...
@@ -12,6 +14,8 @@ import javax.persistence.Table;
...
@@ -12,6 +14,8 @@ import javax.persistence.Table;
* 用户详情信息表
* 用户详情信息表
*/
*/
@Table
(
name
=
"app_user_detail"
)
@Table
(
name
=
"app_user_detail"
)
@AllArgsConstructor
@NoArgsConstructor
@Data
@Data
public
class
AppUserDetail
{
public
class
AppUserDetail
{
@Id
@Id
...
@@ -20,6 +24,10 @@ public class AppUserDetail {
...
@@ -20,6 +24,10 @@ public class AppUserDetail {
private
Integer
userid
;
private
Integer
userid
;
@Column
(
name
=
"is_member"
)
@Column
(
name
=
"is_member"
)
private
Integer
isMember
;
private
Integer
isMember
;
@Column
(
name
=
"wx_nickname"
)
private
String
wxNickname
;
@Column
(
name
=
"qq_nickname"
)
private
String
qqNickname
;
private
String
nickname
;
private
String
nickname
;
private
String
realname
;
private
String
realname
;
private
String
headimgurl
;
private
String
headimgurl
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
View file @
e6db8c1c
...
@@ -19,7 +19,10 @@ public class AppUserDTO {
...
@@ -19,7 +19,10 @@ public class AppUserDTO {
private
Integer
userid
;
private
Integer
userid
;
private
Integer
isMember
;
private
Integer
isMember
;
private
String
username
;
private
String
username
;
private
String
wxNickname
;
private
String
qqNickname
;
private
String
nickname
;
private
String
nickname
;
private
String
aliPayNickName
;
private
String
realname
;
private
String
realname
;
private
String
headimgurl
;
private
String
headimgurl
;
private
String
email
;
private
String
email
;
...
@@ -87,6 +90,8 @@ public class AppUserDTO {
...
@@ -87,6 +90,8 @@ public class AppUserDTO {
private
String
itemImg
;
private
String
itemImg
;
private
Integer
memberNo
;
private
Integer
memberNo
;
private
Long
cardLeave
;
private
Long
cardLeave
;
private
Integer
isBind
;
private
Boolean
isBindWx
;
private
Boolean
isBindAliPay
;
private
Boolean
isBindQQ
;
}
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/AppUserVo.java
View file @
e6db8c1c
...
@@ -33,6 +33,9 @@ public class AppUserVo {
...
@@ -33,6 +33,9 @@ public class AppUserVo {
private
Integer
isMember
;
private
Integer
isMember
;
//昵称
//昵称
private
String
nickname
;
private
String
nickname
;
private
String
wxNickname
;
private
String
aliPayNickName
;
private
String
qqNickname
;
//真实姓名
//真实姓名
private
String
realname
;
private
String
realname
;
//头像
//头像
...
@@ -84,5 +87,6 @@ public class AppUserVo {
...
@@ -84,5 +87,6 @@ public class AppUserVo {
@ApiModelProperty
(
value
=
"1-未激活;2-激活:"
)
@ApiModelProperty
(
value
=
"1-未激活;2-激活:"
)
private
Integer
state
;
private
Integer
state
;
@ApiModelProperty
(
value
=
"支付宝授权返回的code"
)
private
String
aliCode
;
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserAlipayBiz.java
View file @
e6db8c1c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
biz
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.admin.entity.AppUserAlipay
;
import
com.github.wxiaoqi.security.admin.entity.AppUserAlipay
;
import
com.github.wxiaoqi.security.admin.entity.AppUserRelationTemp
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserAlipayMapper
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserAlipayMapper
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserRelationTempMapper
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.entity.Example
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -18,7 +30,23 @@ import java.util.List;
...
@@ -18,7 +30,23 @@ import java.util.List;
* @date 2019-07-03 16:36:44
* @date 2019-07-03 16:36:44
*/
*/
@Service
@Service
public
class
AppUserAlipayBiz
extends
BaseBiz
<
AppUserAlipayMapper
,
AppUserAlipay
>
{
@Slf4j
public
class
AppUserAlipayBiz
extends
BaseBiz
<
AppUserAlipayMapper
,
AppUserAlipay
>{
@Autowired
private
UserAuthUtil
userAuthUtil
;
@Autowired
private
UserAuthConfig
userAuthConfig
;
@Autowired
AppUserLoginBiz
appUserLoginBiz
;
@Autowired
AppUserDetailBiz
appUserDetailBiz
;
@Autowired
ThirdFeign
thirdFeign
;
//添加支付宝账号
//添加支付宝账号
public
void
addAlipay
(
Integer
userId
,
String
txAlipay
){
public
void
addAlipay
(
Integer
userId
,
String
txAlipay
){
...
@@ -44,4 +72,100 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
...
@@ -44,4 +72,100 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
}
}
//获取支付宝用户信息
public
List
<
AppUserAlipay
>
getByUserId
(
HttpServletRequest
request
){
Example
example
=
new
Example
(
AppUserAlipay
.
class
);
Integer
userId
=
null
;
try
{
String
username
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
)).
getId
();
if
(
StringUtils
.
isNotBlank
(
username
))
{
userId
=
Integer
.
parseInt
(
username
);
example
.
createCriteria
().
andEqualTo
(
"userId"
,
userId
).
andEqualTo
(
"isDel"
,
0
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
example
.
setOrderByClause
(
"is_default desc"
);
AppUserAlipay
appUserAlipay
=
mapper
.
selectOneByExample
(
example
);
List
<
AppUserAlipay
>
appUserAlipays
=
new
ArrayList
<>();
//支付宝
if
(
appUserAlipay
!=
null
)
{
appUserAlipay
.
setType
(
1
);
appUserAlipays
.
add
(
appUserAlipay
);
}
//微信
// AppUserLogin appUserLogin = appUserLoginBiz.getUserById(userId);
// if(appUserLogin != null && StringUtils.isNotBlank(appUserLogin.getWxOpenid())) {
// AppUserDetail appUserDetail = appUserDetailBiz.getUserByUserid(userId);
// AppUserAlipay wxAppUser = new AppUserAlipay();
// wxAppUser.setType(2);
// wxAppUser.setUserId(userId);
// wxAppUser.setNickname(StringUtils.isEmpty(appUserDetail.getWxNickname())?appUserDetail.getNickname():appUserDetail.getWxNickname());
// wxAppUser.setTxAlipay(appUserLogin.getWxOpenid());
// appUserAlipays.add(wxAppUser);
// }
return
appUserAlipays
;
}
public
void
save
(
AppUserAlipay
appUserAlipay
)
{
Example
example
=
new
Example
(
AppUserAlipay
.
class
);
example
.
createCriteria
().
andEqualTo
(
"userId"
,
appUserAlipay
.
getUserId
()).
andEqualTo
(
"isDel"
,
0
);
example
.
setOrderByClause
(
"is_default desc"
);
AppUserAlipay
oldValue
=
mapper
.
selectOneByExample
(
example
);
if
(
oldValue
!=
null
)
{
BeanUtil
.
copyProperties
(
appUserAlipay
,
oldValue
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
));
updateByIdRe
(
oldValue
);
}
else
{
insertSelectiveRe
(
appUserAlipay
);
}
}
/**
* 支付宝授权获取用户信息
* @param code
* @return
*/
public
ObjectRestResponse
getUserInfo
(
String
code
,
HttpServletRequest
request
)
{
String
username
=
null
;
AppUserAlipay
appUserAlipay
=
new
AppUserAlipay
();
try
{
username
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
)).
getId
();
if
(
StringUtils
.
isBlank
(
username
))
{
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
,
ResultCode
.
getMsg
(
ResultCode
.
RSTOKEN_EXPIRED_CODE
));
}
else
{
appUserAlipay
.
setUserId
(
Integer
.
parseInt
(
username
));
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
StringUtils
.
isBlank
(
code
))
{
return
ObjectRestResponse
.
paramIsEmpty
();
}
String
result
=
thirdFeign
.
getAliPayUserInfo
(
code
).
getData
();
if
(
StringUtils
.
isNotBlank
(
result
))
{
log
.
info
(
"【支付宝】用户授权获取用户token, {}"
,
result
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
result
);
if
(
jsonObject
.
getJSONObject
(
"error_response"
)
==
null
&&
jsonObject
.
getJSONObject
(
"alipay_user_info_share_response"
)
!=
null
)
{
JSONObject
responseObject
=
jsonObject
.
getJSONObject
(
"alipay_user_info_share_response"
);
String
account
=
responseObject
.
getString
(
"user_id"
);
if
(
account
!=
null
)
{
appUserAlipay
.
setTxAlipay
(
account
);
appUserAlipay
.
setCrtTime
(
new
Date
().
getTime
());
appUserAlipay
.
setIsDel
(
0
);
}
String
nickname
=
responseObject
.
getString
(
"nick_name"
);
if
(
nickname
!=
null
)
{
appUserAlipay
.
setNickname
(
nickname
);
}
log
.
info
(
"用户支付宝信息: {}"
,
appUserAlipay
.
toString
());
save
(
appUserAlipay
);
return
ObjectRestResponse
.
succ
(
appUserAlipay
.
getNickname
());
}
else
{
return
ObjectRestResponse
.
createFailedResult
(
Integer
.
parseInt
(
jsonObject
.
getJSONObject
(
"error_response"
).
getString
(
"code"
)),
jsonObject
.
getJSONObject
(
"error_response"
).
getString
(
"sub_msg"
));
}
}
return
ObjectRestResponse
.
createDefaultFail
();
}
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserDetailBiz.java
View file @
e6db8c1c
...
@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.biz;
...
@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.biz;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.CacheClear
;
import
com.ace.cache.annotation.CacheClear
;
import
com.github.wxiaoqi.security.admin.dto.AccountBindDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper
;
import
com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService
;
import
com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService
;
...
@@ -149,4 +150,18 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
...
@@ -149,4 +150,18 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
return
mapper
.
getUserIdByUsername
(
keywords
);
return
mapper
.
getUserIdByUsername
(
keywords
);
}
}
public
void
updateByUserId
(
AccountBindDTO
accountBindDTO
,
Integer
userId
)
{
AppUserDetail
appUserDetail
=
new
AppUserDetail
();
if
(
accountBindDTO
.
getType
().
equals
(
"wx"
)){
appUserDetail
.
setWxNickname
(
accountBindDTO
.
getNickName
());
}
if
(
accountBindDTO
.
getType
().
equals
(
"q"
)){
appUserDetail
.
setQqNickName
(
accountBindDTO
.
getNickName
());
}
Example
example
=
new
Example
(
AppUserDetail
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"userid"
,
userId
);
mapper
.
updateByExample
(
appUserDetail
,
example
);
}
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserLoginBiz.java
View file @
e6db8c1c
...
@@ -2,21 +2,19 @@ package com.github.wxiaoqi.security.admin.biz;
...
@@ -2,21 +2,19 @@ package com.github.wxiaoqi.security.admin.biz;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.Cache
;
import
com.ace.cache.annotation.CacheClear
;
import
com.ace.cache.annotation.CacheClear
;
import
com.alibaba.druid.sql.visitor.functions.If
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.admin.
entity.AppUserDetail
;
import
com.github.wxiaoqi.security.admin.
dto.AccountBindDTO
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
import
com.github.wxiaoqi.security.admin.entity.AppUserLogin
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserLoginMapper
;
import
com.github.wxiaoqi.security.admin.mapper.AppUserLoginMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant
;
import
com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant
;
import
com.github.wxiaoqi.security.common.constant.UserConstant
;
import
com.github.wxiaoqi.security.common.constant.UserConstant
;
import
com.g
oogle.common.collect.Lists
;
import
com.g
ithub.wxiaoqi.security.common.exception.BaseException
;
import
com.
xxfc.platform.im.utils.StringUtil
;
import
com.
github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.universal.entity.IdInformation
;
import
com.xxfc.platform.universal.entity.IdInformation
;
import
com.xxfc.platform.universal.feign.MQSenderFeign
;
import
com.xxfc.platform.universal.feign.MQSenderFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -24,6 +22,7 @@ import org.springframework.transaction.annotation.Propagation;
...
@@ -24,6 +22,7 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.entity.Example
;
import
javax.servlet.http.HttpServletRequest
;
import
java.time.Instant
;
import
java.time.Instant
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -45,6 +44,7 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
...
@@ -45,6 +44,7 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
private
static
final
String
WX_TYPE
=
"wx"
;
private
static
final
String
WX_TYPE
=
"wx"
;
private
static
final
String
QQ_TYPE
=
"q"
;
private
static
final
String
QQ_TYPE
=
"q"
;
private
static
final
String
ALIPAY_TYPE
=
"aliPay"
;
@Autowired
@Autowired
ThirdFeign
thirdFeign
;
ThirdFeign
thirdFeign
;
...
@@ -54,6 +54,9 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
...
@@ -54,6 +54,9 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
@Autowired
@Autowired
AppUserDetailBiz
appUserDetailBiz
;
AppUserDetailBiz
appUserDetailBiz
;
@Autowired
private
AppUserAlipayBiz
appUserAlipayBiz
;
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRED
)
@Override
@Override
public
void
insertSelective
(
AppUserLogin
entity
)
{
public
void
insertSelective
(
AppUserLogin
entity
)
{
...
@@ -322,8 +325,72 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
...
@@ -322,8 +325,72 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
public
List
<
AppUserLogin
>
getUserByUsernameAndRealName
(
String
username
,
String
realName
)
{
public
List
<
AppUserLogin
>
getUserByUsernameAndRealName
(
String
username
,
String
realName
)
{
return
mapper
.
getUserByUsernameAndRealName
(
username
,
realName
);
return
mapper
.
getUserByUsernameAndRealName
(
username
,
realName
);
}
@CacheClear
(
pre
=
"user{2}"
)
public
ObjectRestResponse
bindAccount
(
AccountBindDTO
accountBindDTO
,
Integer
userId
,
HttpServletRequest
request
)
{
switch
(
accountBindDTO
.
getType
())
{
case
WX_TYPE:
wxBinding
(
accountBindDTO
,
userId
);
break
;
case
QQ_TYPE:
qqBinding
(
accountBindDTO
,
userId
);
break
;
case
ALIPAY_TYPE:
return
appUserAlipayBiz
.
getUserInfo
(
accountBindDTO
.
getCode
(),
request
);
default
:
break
;
}
return
ObjectRestResponse
.
succ
();
}
/**
* 微信绑定
*
* @param accountBindDTO
*/
private
void
wxBinding
(
AccountBindDTO
accountBindDTO
,
Integer
userId
)
{
//检查微信是否绑定
Example
example
=
new
Example
(
AppUserLogin
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"id"
,
userId
);
criteria
.
andEqualTo
(
"wxOpenid"
,
accountBindDTO
.
getOpendId
());
List
<
AppUserLogin
>
appUserLogins
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isNotEmpty
(
appUserLogins
))
{
throw
new
BaseException
(
"该微信已经绑定过了"
);
}
AppUserLogin
appUserLogin
=
new
AppUserLogin
();
appUserLogin
.
setId
(
userId
);
appUserLogin
.
setWxOpenid
(
accountBindDTO
.
getOpendId
());
appUserLogin
.
setUnionid
(
accountBindDTO
.
getUnionId
());
mapper
.
updateByPrimaryKey
(
appUserLogin
);
appUserDetailBiz
.
updateByUserId
(
accountBindDTO
,
userId
);
}
/**
* QQ绑定
*
* @param accountBindDTO
*/
private
void
qqBinding
(
AccountBindDTO
accountBindDTO
,
Integer
userId
)
{
//检查qq是否绑定
Example
example
=
new
Example
(
AppUserLogin
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"id"
,
userId
);
criteria
.
andEqualTo
(
"openid"
,
accountBindDTO
.
getOpendId
());
List
<
AppUserLogin
>
appUserLogins
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isNotEmpty
(
appUserLogins
))
{
throw
new
BaseException
(
"该微信已经绑定过了"
);
}
AppUserLogin
appUserLogin
=
new
AppUserLogin
();
appUserLogin
.
setId
(
userId
);
appUserLogin
.
setWxOpenid
(
accountBindDTO
.
getOpendId
());
appUserLogin
.
setUnionid
(
accountBindDTO
.
getUnionId
());
mapper
.
updateByPrimaryKey
(
appUserLogin
);
appUserDetailBiz
.
updateByUserId
(
accountBindDTO
,
userId
);
}
}
}
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/AppUserController.java
View file @
e6db8c1c
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
package
com
.
github
.
wxiaoqi
.
security
.
admin
.
rest
;
import
com.github.wxiaoqi.security.admin.biz.*
;
import
com.github.wxiaoqi.security.admin.biz.*
;
import
com.github.wxiaoqi.security.admin.dto.AccountBindDTO
;
import
com.github.wxiaoqi.security.admin.entity.*
;
import
com.github.wxiaoqi.security.admin.entity.*
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.vo.AppUserGroups
;
import
com.github.wxiaoqi.security.admin.vo.AppUserGroups
;
...
@@ -22,6 +23,8 @@ import com.xxfc.platform.order.feign.OrderFeign;
...
@@ -22,6 +23,8 @@ import com.xxfc.platform.order.feign.OrderFeign;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -69,6 +72,9 @@ public class AppUserController extends CommonBaseController{
...
@@ -69,6 +72,9 @@ public class AppUserController extends CommonBaseController{
@Autowired
@Autowired
private
OrderFeign
orderFeign
;
private
OrderFeign
orderFeign
;
@Autowired
private
AppUserAlipayBiz
appUserAlipayBiz
;
@GetMapping
(
"page"
)
@GetMapping
(
"page"
)
...
@@ -153,8 +159,6 @@ public class AppUserController extends CommonBaseController{
...
@@ -153,8 +159,6 @@ public class AppUserController extends CommonBaseController{
if
(
memberLevel
!=
null
){
if
(
memberLevel
!=
null
){
String
icon
=
memberLevel
.
getIcon
();
String
icon
=
memberLevel
.
getIcon
();
userDTO
.
setIcon
(
icon
);
userDTO
.
setIcon
(
icon
);
userDTO
.
setBigIcon
(
memberLevel
.
getBigIcon
());
userDTO
.
setItemImg
(
memberLevel
.
getItemImg
());
}
}
}
}
}
}
...
@@ -162,7 +166,14 @@ public class AppUserController extends CommonBaseController{
...
@@ -162,7 +166,14 @@ public class AppUserController extends CommonBaseController{
if
(
userPosition
!=
null
&&
userPosition
.
getLevel
()>
0
){
if
(
userPosition
!=
null
&&
userPosition
.
getLevel
()>
0
){
userDTO
.
setPositionName
(
userPosition
.
getName
());
userDTO
.
setPositionName
(
userPosition
.
getName
());
}
}
List
<
AppUserAlipay
>
appUserAlipays
=
appUserAlipayBiz
.
getByUserId
(
request
);
long
count
=
appUserAlipays
.
stream
().
filter
(
appUserAlipay
->
appUserAlipay
.
getType
()
==
1
).
count
();
userDTO
.
setIsBindAliPay
(
count
>
0
);
userDTO
.
setId
(
id
);
userDTO
.
setId
(
id
);
userDTO
.
setAliPayNickName
(
userDTO
.
getIsBindAliPay
()?
appUserAlipays
.
get
(
0
).
getNickname
():
""
);
AppUserLogin
appUserLogin
=
appUserLoginBiz
.
selectById
(
userid
);
userDTO
.
setIsBindWx
(
StringUtils
.
isEmpty
(
appUserLogin
.
getWxOpenid
()));
userDTO
.
setIsBindQQ
(
StringUtils
.
isEmpty
(
appUserLogin
.
getOpenid
()));
return
ObjectRestResponse
.
succ
(
userDTO
);
return
ObjectRestResponse
.
succ
(
userDTO
);
}
}
...
@@ -200,7 +211,7 @@ public class AppUserController extends CommonBaseController{
...
@@ -200,7 +211,7 @@ public class AppUserController extends CommonBaseController{
* @throws Exception
* @throws Exception
*/
*/
@PostMapping
(
"/edit"
)
@PostMapping
(
"/edit"
)
public
ObjectRestResponse
edit
(
@RequestBody
AppUserVo
userVo
)
throws
Exception
{
public
ObjectRestResponse
edit
(
@RequestBody
AppUserVo
userVo
,
HttpServletRequest
request
)
throws
Exception
{
if
(
userVo
==
null
||
userVo
.
getId
()==
null
){
if
(
userVo
==
null
||
userVo
.
getId
()==
null
){
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NULL_CODE
,
"参数为空"
);
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
NULL_CODE
,
"参数为空"
);
}
}
...
@@ -214,7 +225,12 @@ public class AppUserController extends CommonBaseController{
...
@@ -214,7 +225,12 @@ public class AppUserController extends CommonBaseController{
appUserLogin
.
setId
(
userid
);
appUserLogin
.
setId
(
userid
);
appUserLogin
.
setUsername
(
userVo
.
getUsername
());
appUserLogin
.
setUsername
(
userVo
.
getUsername
());
appUserLoginBiz
.
bindOpenid
(
appUserLogin
);
appUserLoginBiz
.
bindOpenid
(
appUserLogin
);
//支付宝绑定
if
(
StringUtils
.
isNotEmpty
(
userVo
.
getAliCode
())
&&
userVo
.
getAliCode
().
trim
().
length
()>
0
){
appUserAlipayBiz
.
getUserInfo
(
userVo
.
getAliCode
(),
request
);
}
}
}
return
ObjectRestResponse
.
succ
();
return
ObjectRestResponse
.
succ
();
}
}
...
@@ -321,4 +337,14 @@ public class AppUserController extends CommonBaseController{
...
@@ -321,4 +337,14 @@ public class AppUserController extends CommonBaseController{
public
Object
test
()
{
public
Object
test
()
{
return
appUserLoginBiz
.
test
();
return
appUserLoginBiz
.
test
();
}
}
@PostMapping
(
"/bind"
)
private
ObjectRestResponse
accountBinding
(
AccountBindDTO
accountBindDTO
,
HttpServletRequest
request
){
try
{
IJWTInfo
infoFromToken
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
));
return
appUserLoginBiz
.
bindAccount
(
accountBindDTO
,
Integer
.
valueOf
(
infoFromToken
.
getId
()),
request
);
}
catch
(
Exception
ex
){
throw
new
BaseException
(
ex
);
}
}
}
}
ace-modules/ace-admin/src/main/resources/mapper/AppUserDetailMapper.xml
View file @
e6db8c1c
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
<result
column=
"certification_status"
property=
"certificationStatus"
/>
<result
column=
"certification_status"
property=
"certificationStatus"
/>
<result
column=
"is_member"
property=
"isMember"
/>
<result
column=
"is_member"
property=
"isMember"
/>
<result
column=
"nickname"
property=
"nickname"
/>
<result
column=
"nickname"
property=
"nickname"
/>
<result
column=
"wx_nickname"
property=
"wxNickname"
/>
<result
column=
"qq_nickname"
property=
""
<result
column=
"realname"
property=
"realname"
/>
<result
column=
"realname"
property=
"realname"
/>
<result
column=
"headimgurl"
property=
"headimgurl"
/>
<result
column=
"headimgurl"
property=
"headimgurl"
/>
<result
column=
"birthday"
property=
"birthday"
/>
<result
column=
"birthday"
property=
"birthday"
/>
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/feign/ThirdFeign.java
View file @
e6db8c1c
...
@@ -5,10 +5,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
...
@@ -5,10 +5,7 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import
com.xxfc.platform.universal.dto.SmsTemplateDTO
;
import
com.xxfc.platform.universal.dto.SmsTemplateDTO
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.entity.IdInformation
;
import
com.xxfc.platform.universal.entity.IdInformation
;
import
com.xxfc.platform.universal.vo.OrderPayVo
;
import
com.xxfc.platform.universal.vo.*
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
com.xxfc.platform.universal.vo.TrafficViolations
;
import
com.xxfc.platform.universal.vo.ViolationVO
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
...
@@ -83,4 +80,8 @@ public interface ThirdFeign {
...
@@ -83,4 +80,8 @@ public interface ThirdFeign {
public
ObjectRestResponse
<
List
<
ViolationVO
>>
getRentViolation
(
@RequestParam
(
value
=
"rentViolationDTO"
)
Map
<
String
,
Object
>
rentViolationDTO
);
public
ObjectRestResponse
<
List
<
ViolationVO
>>
getRentViolation
(
@RequestParam
(
value
=
"rentViolationDTO"
)
Map
<
String
,
Object
>
rentViolationDTO
);
/*************************************支付***************************************/
@GetMapping
(
"/info/app/unauth/getAliPayUserInfo"
)
public
ObjectRestResponse
<
String
>
getAliPayUserInfo
(
@RequestParam
(
value
=
"code"
)
String
code
);
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/OrderPayBiz.java
View file @
e6db8c1c
...
@@ -370,6 +370,35 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
...
@@ -370,6 +370,35 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
}
}
}
/**
* 支付宝授权获取用户信息
* @param code
* @return
* @throws AlipayApiException
*/
public
String
getAlipayToken
(
String
code
)
throws
AlipayApiException
{
AlipayClient
alipayClient
=
getAlipayClient
();
AlipaySystemOauthTokenRequest
request
=
new
AlipaySystemOauthTokenRequest
();
request
.
setGrantType
(
"authorization_code"
);
request
.
setCode
(
code
);
AlipaySystemOauthTokenResponse
response
=
alipayClient
.
execute
(
request
);
if
(
response
.
isSuccess
()){
log
.
info
(
"获取用户token调用成功,获取用户信息 {}"
,
response
.
getBody
());
if
(
response
.
getAccessToken
()
!=
null
)
{
AlipayUserInfoShareRequest
alipayUserInfoShareRequest
=
new
AlipayUserInfoShareRequest
();
AlipayUserInfoShareResponse
alipayUserInfoShareResponse
=
alipayClient
.
execute
(
alipayUserInfoShareRequest
,
response
.
getAccessToken
());
if
(
alipayUserInfoShareResponse
.
isSuccess
()){
log
.
info
(
"获取用户支付宝信息调用成功, {}"
,
alipayUserInfoShareResponse
.
getBody
());
return
alipayUserInfoShareResponse
.
getBody
();
}
else
{
log
.
info
(
"获取用户支付宝信息调用失败, {}"
,
alipayUserInfoShareResponse
.
getBody
());
}
}
}
else
{
log
.
info
(
"获取用户token调用失败, {}"
,
response
.
getBody
());
}
return
response
.
getBody
();
}
//解冻预授权
//解冻预授权
public
void
fundAuthOrderUnFreeze
(
AlipayClient
alipayClient
)
throws
AlipayApiException
{
public
void
fundAuthOrderUnFreeze
(
AlipayClient
alipayClient
)
throws
AlipayApiException
{
AlipayFundAuthOrderUnfreezeRequest
request
=
new
AlipayFundAuthOrderUnfreezeRequest
();
AlipayFundAuthOrderUnfreezeRequest
request
=
new
AlipayFundAuthOrderUnfreezeRequest
();
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/UserInfoController.java
View file @
e6db8c1c
...
@@ -4,9 +4,11 @@ package com.xxfc.platform.universal.controller;
...
@@ -4,9 +4,11 @@ package com.xxfc.platform.universal.controller;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alipay.api.AlipayApiException
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.UserAgentUtil
;
import
com.github.wxiaoqi.security.common.util.UserAgentUtil
;
import
com.xxfc.platform.universal.biz.OrderPayBiz
;
import
com.xxfc.platform.universal.biz.WeixinService
;
import
com.xxfc.platform.universal.biz.WeixinService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -28,6 +30,9 @@ public class UserInfoController {
...
@@ -28,6 +30,9 @@ public class UserInfoController {
@Autowired
@Autowired
WeixinService
weixinService
;
WeixinService
weixinService
;
@Autowired
OrderPayBiz
orderPayBiz
;
@Value
(
"${wx.sendUrl}"
)
@Value
(
"${wx.sendUrl}"
)
private
String
sendUrl
;
private
String
sendUrl
;
...
@@ -51,5 +56,14 @@ public class UserInfoController {
...
@@ -51,5 +56,14 @@ public class UserInfoController {
return
ObjectRestResponse
.
succ
();
return
ObjectRestResponse
.
succ
();
}
}
@GetMapping
(
"/app/unauth/getAliPayUserInfo"
)
public
ObjectRestResponse
<
String
>
getAliPayUserInfo
(
String
code
)
{
try
{
return
ObjectRestResponse
.
succ
(
orderPayBiz
.
getAlipayToken
(
code
));
}
catch
(
AlipayApiException
e
)
{
e
.
printStackTrace
();
}
return
ObjectRestResponse
.
createDefaultFail
();
}
}
}
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