记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
0a9084d8
Commit
0a9084d8
authored
Jul 14, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交支付查询
parent
8d735961
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
225 additions
and
71 deletions
+225
-71
DragonConstant.java
...com/liquidnet/service/dragon/constant/DragonConstant.java
+5
-2
PayNotifyReqBo.java
.../java/com/liquidnet/service/dragon/bo/PayNotifyReqBo.java
+25
-0
AbstractAlipayStrategy.java
.../channel/alipay/strategy/impl/AbstractAlipayStrategy.java
+1
-1
DragonPayBiz.java
...net/service/dragon/channel/strategy/biz/DragonPayBiz.java
+17
-0
PayChannelStrategyAlipayImpl.java
...n/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
+6
-3
PayChannelStrategyWepayImpl.java
...on/channel/strategy/impl/PayChannelStrategyWepayImpl.java
+10
-2
RedisStreamConfig.java
...om/liquidnet/service/dragon/config/RedisStreamConfig.java
+61
-63
RedisPayNotifyReceiver.java
...idnet/service/dragon/receiver/RedisPayNotifyReceiver.java
+62
-0
MqHandleUtil.java
...java/com/liquidnet/service/dragon/utils/MqHandleUtil.java
+38
-0
No files found.
liquidnet-bus-api/liquidnet-service-dragon-api/src/main/java/com/liquidnet/service/dragon/constant/DragonConstant.java
View file @
0a9084d8
...
@@ -238,11 +238,11 @@ public class DragonConstant {
...
@@ -238,11 +238,11 @@ public class DragonConstant {
*/
*/
public
enum
ChannelRedisQueueEnum
{
public
enum
ChannelRedisQueueEnum
{
WECHAT_PAY_KEY
(
"wechat-pay"
,
"微信-支付-回调"
),
WECHAT_PAY_KEY
(
"wechat-pay"
,
"微信-支付-回调"
),
WECHAT_REFUND_KEY
(
"wechat-
pay
"
,
"微信-退款-回调"
),
WECHAT_REFUND_KEY
(
"wechat-
refund
"
,
"微信-退款-回调"
),
ALIPAY_PAY_KEY
(
"alipay-pay"
,
"支付宝-支付-回调"
),
ALIPAY_PAY_KEY
(
"alipay-pay"
,
"支付宝-支付-回调"
),
ALIPAY_REFUND_KEY
(
"alipay-refund"
,
"支付宝-退款-回调"
),
ALIPAY_REFUND_KEY
(
"alipay-refund"
,
"支付宝-退款-回调"
),
WECHAT_PAY_GROUP
(
"wechat-pay-group"
,
"微信-支付-回调-组"
),
WECHAT_PAY_GROUP
(
"wechat-pay-group"
,
"微信-支付-回调-组"
),
WECHAT_REFUND_GROUP
(
"wechat-
pay
-group"
,
"微信-退款-回调-组"
),
WECHAT_REFUND_GROUP
(
"wechat-
refund
-group"
,
"微信-退款-回调-组"
),
ALIPAY_PAY_GROUP
(
"alipay-pay-group"
,
"支付宝-支付-回调-组"
),
ALIPAY_PAY_GROUP
(
"alipay-pay-group"
,
"支付宝-支付-回调-组"
),
ALIPAY_REFUND_GROUP
(
"alipay-refund-group"
,
"支付宝-退款-回调-组"
);
ALIPAY_REFUND_GROUP
(
"alipay-refund-group"
,
"支付宝-退款-回调-组"
);
private
String
code
;
private
String
code
;
...
@@ -251,6 +251,9 @@ public class DragonConstant {
...
@@ -251,6 +251,9 @@ public class DragonConstant {
this
.
code
=
code
;
this
.
code
=
code
;
this
.
message
=
message
;
this
.
message
=
message
;
}
}
public
String
getCode
()
{
return
code
;
}
}
}
/**
/**
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/bo/PayNotifyReqBo.java
0 → 100644
View file @
0a9084d8
package
com
.
liquidnet
.
service
.
dragon
.
bo
;
import
com.alibaba.fastjson.JSON
;
import
com.liquidnet.service.dragon.dto.PayNotifyDto
;
import
lombok.Data
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PayNotifyReqDto
* @Package com.liquidnet.service.consumer.dragon.service.bo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/14 20:22
*/
@Data
public
class
PayNotifyReqBo
{
private
String
notifyUrl
;
private
PayNotifyDto
payNotifyDto
;
@Override
public
String
toString
(){
return
JSON
.
toJSONString
(
this
);
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/alipay/strategy/impl/AbstractAlipayStrategy.java
View file @
0a9084d8
...
@@ -49,7 +49,7 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
...
@@ -49,7 +49,7 @@ public abstract class AbstractAlipayStrategy implements IAlipayStrategy {
alipayTradePayReq
.
setTimestamp
(
dragonPayBaseReqDto
.
getCreateDate
());
alipayTradePayReq
.
setTimestamp
(
dragonPayBaseReqDto
.
getCreateDate
());
//调用支付
//调用支付
Map
<
String
,
Object
>
result
=
this
.
executePay
(
alipayTradePayReq
);
Map
<
String
,
Object
>
result
=
this
.
executePay
(
alipayTradePayReq
);
log
.
info
(
"dragonPay:
we
pay:"
+
dragonPayBaseReqDto
.
getDeviceFrom
()+
" response xmlStr: {} "
,
JSON
.
toJSONString
(
result
));
log
.
info
(
"dragonPay:
ali
pay:"
+
dragonPayBaseReqDto
.
getDeviceFrom
()+
" response xmlStr: {} "
,
JSON
.
toJSONString
(
result
));
//拼接返回参数
//拼接返回参数
DragonPayBaseRespDto
respDto
=
buildCommonRespDto
(
dragonPayBaseReqDto
);
DragonPayBaseRespDto
respDto
=
buildCommonRespDto
(
dragonPayBaseReqDto
);
respDto
=
this
.
buildResponseDto
(
respDto
,
result
);
respDto
=
this
.
buildResponseDto
(
respDto
,
result
);
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/biz/DragonPayBiz.java
View file @
0a9084d8
...
@@ -2,10 +2,12 @@ package com.liquidnet.service.dragon.channel.strategy.biz;
...
@@ -2,10 +2,12 @@ package com.liquidnet.service.dragon.channel.strategy.biz;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.commons.lang.util.BeanUtil
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.dragon.bo.PayNotifyReqBo
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.dto.DragonOrdersDto
;
import
com.liquidnet.service.dragon.dto.DragonOrdersDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseReqDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.PayNotifyDto
;
import
com.liquidnet.service.dragon.entity.DragonOrders
;
import
com.liquidnet.service.dragon.entity.DragonOrders
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
...
@@ -66,4 +68,19 @@ public abstract class DragonPayBiz {
...
@@ -66,4 +68,19 @@ public abstract class DragonPayBiz {
);
);
return
orders
;
return
orders
;
}
}
public
PayNotifyReqBo
buildPayNotifyReqBo
(
DragonOrdersDto
dragonOrdersDto
){
PayNotifyReqBo
payNotifyReqBo
=
new
PayNotifyReqBo
();
payNotifyReqBo
.
setNotifyUrl
(
dragonOrdersDto
.
getNotifyUrl
());
PayNotifyDto
payNotifyDto
=
new
PayNotifyDto
();
payNotifyDto
.
setStatus
(
dragonOrdersDto
.
getStatus
());
payNotifyDto
.
setType
(
dragonOrdersDto
.
getType
());
payNotifyDto
.
setCode
(
dragonOrdersDto
.
getCode
());
payNotifyDto
.
setPaymentId
(
dragonOrdersDto
.
getPaymentId
());
payNotifyDto
.
setOrderCode
(
dragonOrdersDto
.
getOrderCode
());
payNotifyDto
.
setPrice
(
dragonOrdersDto
.
getPrice
());
payNotifyDto
.
setPaymentType
(
dragonOrdersDto
.
getPaymentType
());
payNotifyReqBo
.
setPayNotifyDto
(
payNotifyDto
);
return
payNotifyReqBo
;
}
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
View file @
0a9084d8
...
@@ -20,6 +20,7 @@ import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
...
@@ -20,6 +20,7 @@ import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import
com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.service.impl.DragonOrderRefundsServiceImpl
;
import
com.liquidnet.service.dragon.service.impl.DragonOrderRefundsServiceImpl
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -53,6 +54,9 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -53,6 +54,9 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
@Autowired
@Autowired
private
AlipayBiz
alipayBiz
;
private
AlipayBiz
alipayBiz
;
@Autowired
private
MqHandleUtil
mqHandleUtil
;
@Autowired
@Autowired
private
DragonOrderRefundsServiceImpl
dragonOrderRefundsService
;
private
DragonOrderRefundsServiceImpl
dragonOrderRefundsService
;
...
@@ -156,9 +160,8 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
...
@@ -156,9 +160,8 @@ public class PayChannelStrategyAlipayImpl implements IPayChannelStrategy {
// DragonOrdersDto.(bankReturnMsg);
// DragonOrdersDto.(bankReturnMsg);
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
//通知消息入队列
String
notifyUrl
=
dragonOrdersDto
.
getNotifyUrl
();
mqHandleUtil
.
sendQueueAlipay
(
alipayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
}
/**
/**
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyWepayImpl.java
View file @
0a9084d8
...
@@ -7,6 +7,7 @@ import com.liquidnet.commons.lang.util.StringUtil;
...
@@ -7,6 +7,7 @@ import com.liquidnet.commons.lang.util.StringUtil;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.IPayChannelStrategy
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.strategy.annotation.StrategyPayChannelHandler
;
import
com.liquidnet.service.dragon.channel.wepay.biz.WepayBiz
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.constant.WepayConstant
;
import
com.liquidnet.service.dragon.channel.wepay.strategy.WepayStrategyContext
;
import
com.liquidnet.service.dragon.channel.wepay.strategy.WepayStrategyContext
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
...
@@ -16,6 +17,7 @@ import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
...
@@ -16,6 +17,7 @@ import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayBaseRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.DataUtils
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
com.liquidnet.service.dragon.utils.PayWepayUtils
;
import
com.liquidnet.service.dragon.utils.PayWepayUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -48,6 +50,12 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -48,6 +50,12 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
@Autowired
@Autowired
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
@Autowired
private
MqHandleUtil
mqHandleUtil
;
@Autowired
private
WepayBiz
wepayBiz
;
@Override
@Override
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
public
ResponseDto
<
DragonPayBaseRespDto
>
dragonPay
(
DragonPayBaseReqDto
dragonPayBaseReqDto
)
{
return
wepayStrategyContext
.
getStrategy
(
dragonPayBaseReqDto
.
getDeviceFrom
()).
dragonPay
(
dragonPayBaseReqDto
);
return
wepayStrategyContext
.
getStrategy
(
dragonPayBaseReqDto
.
getDeviceFrom
()).
dragonPay
(
dragonPayBaseReqDto
);
...
@@ -118,7 +126,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
...
@@ -118,7 +126,7 @@ public class PayChannelStrategyWepayImpl implements IPayChannelStrategy {
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dragonOrdersDto
.
setStatus
(
Integer
.
parseInt
(
DragonConstant
.
PayStatusEnum
.
STATUS_PAID
.
getCode
()));
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
dataUtils
.
updateOrderStatus
(
dragonOrdersDto
.
getCode
(),
dragonOrdersDto
);
String
notifyUrl
=
dragonOrdersDto
.
getNotifyUrl
();
//通知消息入队列
mqHandleUtil
.
sendQueueWepay
(
wepayBiz
.
buildPayNotifyReqBo
(
dragonOrdersDto
));
}
}
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/config/RedisStreamConfig.java
View file @
0a9084d8
package
com
.
liquidnet
.
service
.
dragon
.
config
;
package
com
.
liquidnet
.
service
.
dragon
.
config
;
import
com.liquidnet.service.dragon.
receiver.RedisPayReceiver
;
import
com.liquidnet.service.dragon.
constant.DragonConstant
;
import
com.liquidnet.service.dragon.receiver.Redis
Refund
Receiver
;
import
com.liquidnet.service.dragon.receiver.Redis
PayNotify
Receiver
;
import
lombok.var
;
import
lombok.var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
...
@@ -17,65 +17,63 @@ import java.time.Duration;
...
@@ -17,65 +17,63 @@ import java.time.Duration;
@Configuration
@Configuration
public
class
RedisStreamConfig
{
public
class
RedisStreamConfig
{
//
// @Autowired
@Autowired
// private RedisPayReceiver redisPayReceiver;
private
RedisPayNotifyReceiver
redisPayNotifyReceiver
;
// @Autowired
// private RedisRefundReceiver redisRefundReceiver;
@Bean
//
public
Subscription
subscriptionAlipayNotify0
(
RedisConnectionFactory
factory
)
{
// @Bean
var
options
=
StreamMessageListenerContainer
// public Subscription subscriptionPay0(RedisConnectionFactory factory) {
.
StreamMessageListenerContainerOptions
// var options = StreamMessageListenerContainer
.
builder
()
// .StreamMessageListenerContainerOptions
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
// .builder()
.
build
();
// .pollTimeout(Duration.ofMillis(1))
var
listenerContainer
=
StreamMessageListenerContainer
.
create
(
factory
,
options
);
// .build();
var
subscription
=
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_GROUP
.
getCode
(),
"alipay-pay-notify-0"
),
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
StreamOffset
.
create
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_KEY
.
getCode
(),
ReadOffset
.
lastConsumed
()),
redisPayNotifyReceiver
);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from("dragon-pay-group", "dragon-pay-0"),
listenerContainer
.
start
();
// StreamOffset.create("dragon-pay", ReadOffset.lastConsumed()), redisPayReceiver);
return
subscription
;
// listenerContainer.start();
}
// return subscription;
// }
@Bean
//
public
Subscription
subscriptionAlipayNotify1
(
RedisConnectionFactory
factory
)
{
// @Bean
var
options
=
StreamMessageListenerContainer
// public Subscription subscriptionPay1(RedisConnectionFactory factory) {
.
StreamMessageListenerContainerOptions
// var options = StreamMessageListenerContainer
.
builder
()
// .StreamMessageListenerContainerOptions
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
// .builder()
.
build
();
// .pollTimeout(Duration.ofMillis(1))
var
listenerContainer
=
StreamMessageListenerContainer
.
create
(
factory
,
options
);
// .build();
var
subscription
=
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_GROUP
.
getCode
(),
"alipay-pay-notify-1"
),
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
StreamOffset
.
create
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_KEY
.
getCode
(),
ReadOffset
.
lastConsumed
()),
redisPayNotifyReceiver
);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from("dragon-pay-group", "dragon-pay-1"),
listenerContainer
.
start
();
// StreamOffset.create("dragon-pay", ReadOffset.lastConsumed()), redisPayReceiver);
return
subscription
;
// listenerContainer.start();
}
// return subscription;
// }
@Bean
//
public
Subscription
subscriptionWepayNotify0
(
RedisConnectionFactory
factory
)
{
// @Bean
var
options
=
StreamMessageListenerContainer
// public Subscription subscriptionRefund0(RedisConnectionFactory factory) {
.
StreamMessageListenerContainerOptions
// var options = StreamMessageListenerContainer
.
builder
()
// .StreamMessageListenerContainerOptions
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
// .builder()
.
build
();
// .pollTimeout(Duration.ofMillis(1))
var
listenerContainer
=
StreamMessageListenerContainer
.
create
(
factory
,
options
);
// .build();
var
subscription
=
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_GROUP
.
getCode
(),
"wepay-pay-notify-0"
),
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
StreamOffset
.
create
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_KEY
.
getCode
(),
ReadOffset
.
lastConsumed
()),
redisPayNotifyReceiver
);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from("dragon-refund-group", "dragon-refund-0"),
listenerContainer
.
start
();
// StreamOffset.create("dragon-refund", ReadOffset.lastConsumed()), redisRefundReceiver);
return
subscription
;
// listenerContainer.start();
}
// return subscription;
// }
@Bean
//
public
Subscription
subscriptionWepayNotify1
(
RedisConnectionFactory
factory
)
{
// @Bean
var
options
=
StreamMessageListenerContainer
// public Subscription subscriptionRefund1(RedisConnectionFactory factory) {
.
StreamMessageListenerContainerOptions
// var options = StreamMessageListenerContainer
.
builder
()
// .StreamMessageListenerContainerOptions
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
// .builder()
.
build
();
// .pollTimeout(Duration.ofMillis(1))
var
listenerContainer
=
StreamMessageListenerContainer
.
create
(
factory
,
options
);
// .build();
var
subscription
=
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_GROUP
.
getCode
(),
"wepay-pay-notify-1"
),
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
StreamOffset
.
create
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_KEY
.
getCode
(),
ReadOffset
.
lastConsumed
()),
redisPayNotifyReceiver
);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from("dragon-refund-group", "dragon-refund-1"),
listenerContainer
.
start
();
// StreamOffset.create("dragon-refund", ReadOffset.lastConsumed()), redisRefundReceiver);
return
subscription
;
// listenerContainer.start();
}
// return subscription;
// }
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/receiver/RedisPayNotifyReceiver.java
0 → 100644
View file @
0a9084d8
package
com
.
liquidnet
.
service
.
dragon
.
receiver
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.dragon.bo.PayNotifyReqBo
;
import
com.liquidnet.service.dragon.dto.PayNotifyDto
;
import
com.liquidnet.service.dragon.utils.MqHandleUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.stream.StreamListener
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.time.LocalDateTime
;
/**
* 支付回调通知商户
*/
@Slf4j
@Component
public
class
RedisPayNotifyReceiver
implements
StreamListener
<
String
,
MapRecord
<
String
,
String
,
String
>>
{
@Autowired
private
MqHandleUtil
mqHandleUtil
;
@Override
public
void
onMessage
(
MapRecord
<
String
,
String
,
String
>
message
)
{
log
.
info
(
"接受到来自redis notify 的消息"
);
log
.
info
(
"message id "
+
message
.
getId
());
log
.
info
(
"stream "
+
message
.
getStream
());
log
.
info
(
"body "
+
message
.
getValue
());
this
.
sendNotify
(
message
.
getValue
().
get
(
"message"
));
}
private
void
sendNotify
(
String
message
){
PayNotifyReqBo
payNotifyReqBo
=
JsonUtils
.
fromJson
(
message
,
PayNotifyReqBo
.
class
);
PayNotifyDto
payNotifyDto
=
payNotifyReqBo
.
getPayNotifyDto
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
MultiValueMap
<
String
,
String
>
params
=
new
LinkedMultiValueMap
();
params
.
add
(
"status"
,
payNotifyDto
.
getStatus
().
toString
());
params
.
add
(
"type"
,
payNotifyDto
.
getType
());
params
.
add
(
"code"
,
payNotifyDto
.
getCode
());
params
.
add
(
"paymentId"
,
payNotifyDto
.
getPaymentId
());
params
.
add
(
"orderCode"
,
payNotifyDto
.
getOrderCode
());
params
.
add
(
"price"
,
payNotifyDto
.
getPrice
().
toString
());
params
.
add
(
"paymentType"
,
payNotifyDto
.
getPaymentType
());
String
response
=
HttpUtil
.
post
(
payNotifyReqBo
.
getNotifyUrl
(),
params
);
log
.
debug
(
"PAY RESPONSE="
+
response
);
if
(
response
.
equals
(
"success"
))
{
// MqHandleUtilsendMySqlRedis(
// SqlMapping.get("dragon_order_pay.update"),
// new Object[]{nowTime, DateUtil.Formatter.yyyyMMddHHmmss.format(nowTime), DragonConstant.RefundStatusEnum.STATUS_SUCCESS.getCode(), notifyUrlDto.getRefundCode()}
// );
}
else
{
// sendMySqlRedis(
// SqlMapping.get("dragon_order_pay.update"),
// new Object[]{nowTime, DateUtil.Formatter.yyyyMMddHHmmss.format(nowTime), DragonConstant.RefundStatusEnum.STATUS_FAIL.getCode(), notifyUrlDto.getRefundCode()}
// );
}
}
}
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/utils/MqHandleUtil.java
View file @
0a9084d8
package
com
.
liquidnet
.
service
.
dragon
.
utils
;
package
com
.
liquidnet
.
service
.
dragon
.
utils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.dragon.bo.PayNotifyReqBo
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
com.liquidnet.service.dragon.constant.DragonConstant
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
...
@@ -24,6 +25,43 @@ import java.util.LinkedList;
...
@@ -24,6 +25,43 @@ import java.util.LinkedList;
public
class
MqHandleUtil
{
public
class
MqHandleUtil
{
@Autowired
@Autowired
StringRedisTemplate
stringRedisTemplate
;
StringRedisTemplate
stringRedisTemplate
;
/**
* REDIS 队列发送消息 通知商户相关
* @param payNotifyReqBo
* @return
*/
public
boolean
sendQueueAlipay
(
PayNotifyReqBo
payNotifyReqBo
)
{
try
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
payNotifyReqBo
.
toString
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
ChannelRedisQueueEnum
.
ALIPAY_PAY_KEY
.
getCode
());
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
/**
* REDIS 队列发送消息 通知商户相关
* @param payNotifyReqBo
* @return
*/
public
boolean
sendQueueWepay
(
PayNotifyReqBo
payNotifyReqBo
)
{
try
{
HashMap
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"message"
,
payNotifyReqBo
.
toString
());
MapRecord
<
String
,
String
,
String
>
record
=
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
DragonConstant
.
ChannelRedisQueueEnum
.
WECHAT_PAY_KEY
.
getCode
());
stringRedisTemplate
.
opsForStream
().
add
(
record
);
return
true
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
/**
/**
* 给 REDIS 队列发送消息 数据库相关
* 给 REDIS 队列发送消息 数据库相关
*
*
...
...
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