Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计全科技
jeepay
提交
4a1a1fe6
jeepay
项目概览
计全科技
/
jeepay
通知
10
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
6
Wiki
分析
仓库
DevOps
项目成员
Pages
jeepay
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
6
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4a1a1fe6
编写于
6月 18, 2021
作者:
terrfly
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更改商户信息代码逻辑优化, 解决推送MQ异常
上级
072aa10c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
58 addition
and
49 deletion
+58
-49
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java
...m/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java
+36
-46
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/mq/queue/MqQueue4ModifyMchUserRemove.java
...quan/jeepay/mgr/mq/queue/MqQueue4ModifyMchUserRemove.java
+8
-2
jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/mq/queue/MqQueue4ModifyMchUserRemove.java
...quan/jeepay/mch/mq/queue/MqQueue4ModifyMchUserRemove.java
+2
-1
jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/SysUserService.java
.../java/com/jeequan/jeepay/service/impl/SysUserService.java
+12
-0
未找到文件。
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java
浏览文件 @
4a1a1fe6
...
...
@@ -39,9 +39,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.*
;
/**
* 商户管理类
...
...
@@ -115,7 +113,7 @@ public class MchInfoController extends CommonCtrl {
public
ApiRes
delete
(
@PathVariable
(
"mchNo"
)
String
mchNo
)
{
List
<
Long
>
userIdList
=
mchInfoService
.
removeByMchNo
(
mchNo
);
// 推送mq删除redis用户缓存
mqQueue4ModifyMchUserRemove
.
push
(
StringUtils
.
join
(
userIdList
,
","
)
);
mqQueue4ModifyMchUserRemove
.
push
(
userIdList
);
// 推送mq到目前节点进行更新数据
mqTopic4ModifyMchInfo
.
push
(
mchNo
);
return
ApiRes
.
ok
();
...
...
@@ -130,58 +128,50 @@ public class MchInfoController extends CommonCtrl {
@MethodLog
(
remark
=
"更新商户信息"
)
@RequestMapping
(
value
=
"/{mchNo}"
,
method
=
RequestMethod
.
PUT
)
public
ApiRes
update
(
@PathVariable
(
"mchNo"
)
String
mchNo
)
{
//获取查询条件
MchInfo
mchInfo
=
getObject
(
MchInfo
.
class
);
List
<
Long
>
userIdCacheList
=
new
ArrayList
<>();
mchInfo
.
setMchNo
(
mchNo
);
// 校验该商户是否为特邀商户
MchInfo
dbMchInfo
=
mchInfoService
.
getById
(
mchNo
);
if
(
dbMchInfo
==
null
)
{
return
ApiRes
.
fail
(
ApiCodeEnum
.
SYS_OPERATION_FAIL_SELETE
);
}
// 如果为特邀商户则不允许修改服务商及商户类型
if
(
dbMchInfo
.
getType
()
==
CS
.
MCH_TYPE_ISVSUB
)
{
mchInfo
.
setType
(
dbMchInfo
.
getType
());
mchInfo
.
setIsvNo
(
dbMchInfo
.
getIsvNo
());
}
mchInfo
.
setMchNo
(
mchNo
);
//设置商户号主键
mchInfo
.
setType
(
null
);
//防止变更商户类型
mchInfo
.
setIsvNo
(
null
);
// 待删除用户登录信息的ID list
Set
<
Long
>
removeCacheUserIdList
=
new
HashSet
<>();
// 如果商户状态为禁用状态,清除该商户用户登录信息
if
(
mchInfo
.
getState
()
==
CS
.
NO
)
{
List
<
SysUser
>
userList
=
sysUserService
.
list
(
SysUser
.
gw
()
.
eq
(
SysUser:
:
getBelongInfoId
,
mchNo
)
.
eq
(
SysUser:
:
getSysType
,
CS
.
SYS_TYPE
.
MCH
)
);
if
(
userList
.
size
()
>
0
)
{
for
(
SysUser
user:
userList
)
{
userIdCacheList
.
add
(
user
.
getSysUserId
());
}
}
sysUserService
.
list
(
SysUser
.
gw
().
select
(
SysUser:
:
getSysUserId
).
eq
(
SysUser:
:
getBelongInfoId
,
mchNo
).
eq
(
SysUser:
:
getSysType
,
CS
.
SYS_TYPE
.
MCH
)
)
.
stream
().
forEach
(
u
->
removeCacheUserIdList
.
add
(
u
.
getSysUserId
()));
}
//判断是否重置密码
Boolean
resetPass
=
getReqParamJSON
().
getBoolean
(
"resetPass"
);
if
(
resetPass
!=
null
&&
resetPass
)
{
//判断是否重置密码
String
updatePwd
=
getReqParamJSON
().
getBoolean
(
"defaultPass"
)
==
false
?
Base64
.
decodeStr
(
getValStringRequired
(
"confirmPwd"
)):
CS
.
DEFAULT_PWD
;
if
(
StringUtils
.
isNotEmpty
(
updatePwd
))
{
// 获取商户最初的用户
SysUser
sysUser
=
sysUserService
.
getOne
(
SysUser
.
gw
()
.
eq
(
SysUser:
:
getBelongInfoId
,
mchNo
)
.
eq
(
SysUser:
:
getSysType
,
CS
.
SYS_TYPE
.
MCH
)
.
eq
(
SysUser:
:
getIsAdmin
,
CS
.
YES
)
);
sysUserAuthService
.
resetAuthInfo
(
sysUser
.
getSysUserId
(),
null
,
null
,
updatePwd
,
CS
.
SYS_TYPE
.
MCH
);
if
(
mchInfo
.
getState
()
==
CS
.
YES
)
userIdCacheList
=
Arrays
.
asList
(
sysUser
.
getSysUserId
());
}
if
(
getReqParamJSON
().
getBooleanValue
(
"resetPass"
))
{
// 待更新的密码
String
updatePwd
=
getReqParamJSON
().
getBoolean
(
"defaultPass"
)
?
CS
.
DEFAULT_PWD
:
Base64
.
decodeStr
(
getValStringRequired
(
"confirmPwd"
))
;
// 获取商户超管
Long
mchAdminUserId
=
sysUserService
.
findMchAdminUserId
(
mchNo
);
//重置超管密码
sysUserAuthService
.
resetAuthInfo
(
mchAdminUserId
,
null
,
null
,
updatePwd
,
CS
.
SYS_TYPE
.
MCH
);
//删除超管登录信息
removeCacheUserIdList
.
add
(
mchAdminUserId
);
}
// 推送mq删除redis用户认证信息
if
(!
removeCacheUserIdList
.
isEmpty
())
{
mqQueue4ModifyMchUserRemove
.
push
(
removeCacheUserIdList
);
}
// 商户被禁用、修改密码删除mq用户缓存
if
(
mchInfo
.
getState
()
==
CS
.
NO
||
resetPass
)
{
// 推送mq删除redis用户缓存
mqQueue4ModifyMchUserRemove
.
push
(
StringUtils
.
join
(
Arrays
.
asList
(
userIdCacheList
),
","
));
//更新商户信息
if
(!
mchInfoService
.
updateById
(
mchInfo
))
{
return
ApiRes
.
fail
(
ApiCodeEnum
.
SYS_OPERATION_FAIL_UPDATE
);
}
boolean
result
=
mchInfoService
.
updateById
(
mchInfo
);
mqTopic4ModifyMchInfo
.
push
(
mchNo
);
// 推送mq到目前节点进行更新数据
if
(!
result
)
return
ApiRes
.
fail
(
ApiCodeEnum
.
SYS_OPERATION_FAIL_UPDATE
);
// 推送mq到目前节点进行更新数据
mqTopic4ModifyMchInfo
.
push
(
mchNo
);
return
ApiRes
.
ok
();
}
...
...
jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/mq/queue/MqQueue4ModifyMchUserRemove.java
浏览文件 @
4a1a1fe6
...
...
@@ -15,6 +15,7 @@
*/
package
com.jeequan.jeepay.mgr.mq.queue
;
import
com.alibaba.fastjson.JSONArray
;
import
com.jeequan.jeepay.core.constants.CS
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.activemq.command.ActiveMQQueue
;
...
...
@@ -22,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.jms.core.JmsTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.Collection
;
/**
* 商户用户信息清除
*
...
...
@@ -44,8 +47,11 @@ public class MqQueue4ModifyMchUserRemove extends ActiveMQQueue{
* @date: 2021/6/7 16:16
* @describe: 推送消息到各个节点
*/
public
void
push
(
String
userIdStr
)
{
this
.
jmsTemplate
.
convertAndSend
(
this
,
userIdStr
);
public
void
push
(
Collection
<
Long
>
userIdList
)
{
if
(
userIdList
==
null
||
userIdList
.
isEmpty
()){
return
;
}
this
.
jmsTemplate
.
convertAndSend
(
this
,
JSONArray
.
toJSONString
(
userIdList
));
}
}
jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/mq/queue/MqQueue4ModifyMchUserRemove.java
浏览文件 @
4a1a1fe6
...
...
@@ -15,6 +15,7 @@
*/
package
com.jeequan.jeepay.mch.mq.queue
;
import
com.alibaba.fastjson.JSONArray
;
import
com.jeequan.jeepay.core.cache.RedisUtil
;
import
com.jeequan.jeepay.core.constants.CS
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -52,7 +53,7 @@ public class MqQueue4ModifyMchUserRemove extends ActiveMQQueue {
log
.
info
(
"成功接收删除商户用户登录的订阅通知, msg={}"
,
userIdStr
);
// 字符串转List<Long>
List
<
Long
>
userIdList
=
Arrays
.
stream
(
userIdStr
.
split
(
","
)).
map
(
s
->
Long
.
parseLong
(
s
.
trim
())).
collect
(
Collectors
.
toList
()
);
List
<
Long
>
userIdList
=
JSONArray
.
parseArray
(
userIdStr
,
Long
.
class
);
// 删除redis用户缓存
if
(
userIdList
==
null
||
userIdList
.
isEmpty
()){
log
.
info
(
"用户ID为空"
);
...
...
jeepay-service/src/main/java/com/jeequan/jeepay/service/impl/SysUserService.java
浏览文件 @
4a1a1fe6
...
...
@@ -158,4 +158,16 @@ public class SysUserService extends ServiceImpl<SysUserMapper, SysUser> {
// 3.删除用户信息
removeById
(
sysUser
.
getSysUserId
());
}
/** 获取到商户的超管用户ID **/
public
Long
findMchAdminUserId
(
String
mchNo
){
return
getOne
(
SysUser
.
gw
().
select
(
SysUser:
:
getSysUserId
)
.
eq
(
SysUser:
:
getBelongInfoId
,
mchNo
)
.
eq
(
SysUser:
:
getSysType
,
CS
.
SYS_TYPE
.
MCH
)
.
eq
(
SysUser:
:
getIsAdmin
,
CS
.
YES
)).
getSysUserId
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录