记得上下班打卡 | git大法好,push需谨慎

Commit 0a9084d8 authored by anjiabin's avatar anjiabin

提交支付查询

parent 8d735961
...@@ -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;
}
} }
/** /**
......
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);
}
}
...@@ -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:wepay:"+dragonPayBaseReqDto.getDeviceFrom()+" response xmlStr: {} ", JSON.toJSONString(result)); log.info("dragonPay:alipay:"+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);
......
...@@ -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;
}
} }
...@@ -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));
} }
/** /**
......
...@@ -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));
} }
} }
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.RedisRefundReceiver; import com.liquidnet.service.dragon.receiver.RedisPayNotifyReceiver;
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;
// }
} }
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()}
// );
}
}
}
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 队列发送消息 数据库相关
* *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment