update 提现和充值测试

This commit is contained in:
yyb
2026-01-26 16:42:04 +08:00
parent 13b5cbcf6d
commit 35c4bd9999
5 changed files with 172 additions and 101 deletions

View File

@@ -11,7 +11,7 @@ import com.m2pool.lease.exception.PayRechargeException;
import com.m2pool.lease.mapper.*; import com.m2pool.lease.mapper.*;
import com.m2pool.lease.mq.message.*; import com.m2pool.lease.mq.message.*;
import com.m2pool.lease.service.LeaseOrderItemService; import com.m2pool.lease.service.LeaseOrderItemService;
import com.m2pool.lease.utils.UuidGeneratorUtil; import com.m2pool.lease.service.WalletCallbackService;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.messaging.handler.annotation.Payload; import org.springframework.messaging.handler.annotation.Payload;
@@ -237,33 +237,37 @@ public class MessageReceiverListener {
//} //}
/**
/**
* 余额充值 消费者 (正常流程一笔充值会有两个消息 2 充值中 1充值成功 * 余额充值 消费者 (正常流程一笔充值会有两个消息 2 充值中 1充值成功
*
* @param payRechargeReturnMessage * @param payRechargeReturnMessage
*/ */
@LedgerLog(value = "余额充值") @LedgerLog(value = "余额充值")
@RabbitListener(queues = RabbitmqConstant.PAY_RECHARGE_RETURN_QUEUE,containerFactory ="rabbitListenerContainerFactory") @RabbitListener(queues = RabbitmqConstant.PAY_RECHARGE_RETURN_QUEUE, containerFactory = "rabbitListenerContainerFactory")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void listenerPayRechargeStatusQueueMessage(@Payload RabbitmqPayRechargeReturnMessage payRechargeReturnMessage) { public void listenerPayRechargeStatusQueueMessage(@Payload RabbitmqPayRechargeReturnMessage payRechargeReturnMessage) {
System.out.println("充值消费者---"+JSONUtil.toJsonPrettyStr(payRechargeReturnMessage)); System.out.println("充值消费者---" + JSONUtil.toJsonPrettyStr(payRechargeReturnMessage));
//获取到需要操作的钱包 if(payRechargeReturnMessage.getStatus() == 4){
// 触发钱包监听回调,表示监听成功
WalletCallbackService.triggerCallback(payRechargeReturnMessage.getQueue_id(), true);
}
// 获取到需要操作的钱包
List<LeaseUserWalletData> leaseUserWalletDataList = leaseUserWalletDataMapper.selectList(new LambdaQueryWrapper<LeaseUserWalletData>() List<LeaseUserWalletData> leaseUserWalletDataList = leaseUserWalletDataMapper.selectList(new LambdaQueryWrapper<LeaseUserWalletData>()
.eq(LeaseUserWalletData::getFromAddress, payRechargeReturnMessage.getAddress()) .eq(LeaseUserWalletData::getFromAddress, payRechargeReturnMessage.getAddress())
.eq(LeaseUserWalletData::getDel, false) .eq(LeaseUserWalletData::getDel, false)
); );
if (leaseUserWalletDataList.isEmpty()){ if (leaseUserWalletDataList.isEmpty()) {
return; return;
} }
LeaseUserWalletData leaseUserWalletData = null; LeaseUserWalletData leaseUserWalletData = null;
for (LeaseUserWalletData item : leaseUserWalletDataList) { for (LeaseUserWalletData item : leaseUserWalletDataList) {
if (item.getFromSymbol().equals(payRechargeReturnMessage.getSymbol())){ if (item.getFromSymbol().equals(payRechargeReturnMessage.getSymbol())) {
leaseUserWalletData = item; leaseUserWalletData = item;
break; break;
} }
} }
//需要新增该币种的钱包 // 需要新增该币种的钱包
if (leaseUserWalletData == null){ if (leaseUserWalletData == null) {
LeaseUserWalletData leaseUserWalletData1 = leaseUserWalletDataList.get(0); LeaseUserWalletData leaseUserWalletData1 = leaseUserWalletDataList.get(0);
leaseUserWalletData = LeaseUserWalletData.builder() leaseUserWalletData = LeaseUserWalletData.builder()
.queueId(payRechargeReturnMessage.getQueue_id()) .queueId(payRechargeReturnMessage.getQueue_id())
@@ -280,12 +284,11 @@ public class MessageReceiverListener {
LeasePayRechargeMessage leasePayRechargeMessage = leasePayRechargeMessageMapper.selectOne(new LambdaQueryWrapper<LeasePayRechargeMessage>() LeasePayRechargeMessage leasePayRechargeMessage = leasePayRechargeMessageMapper.selectOne(new LambdaQueryWrapper<LeasePayRechargeMessage>()
.eq(LeasePayRechargeMessage::getTxHash, payRechargeReturnMessage.getTx_hash())); .eq(LeasePayRechargeMessage::getTxHash, payRechargeReturnMessage.getTx_hash()));
BigDecimal balance = leaseUserWalletData.getBalance(); BigDecimal balance = leaseUserWalletData.getBalance();
//处理支付中消息 // 处理支付中消息
if(payRechargeReturnMessage.getStatus() == 2 || leasePayRechargeMessage == null){ if (payRechargeReturnMessage.getStatus() == 2 || leasePayRechargeMessage == null || leasePayRechargeMessage.getStatus() == 3) {
if (leasePayRechargeMessage != null){ if (leasePayRechargeMessage != null) {
return; return;
} }
LeasePayRechargeMessage build = LeasePayRechargeMessage.builder() LeasePayRechargeMessage build = LeasePayRechargeMessage.builder()
.queueId(payRechargeReturnMessage.getQueue_id()) .queueId(payRechargeReturnMessage.getQueue_id())
.chain(payRechargeReturnMessage.getChain()) .chain(payRechargeReturnMessage.getChain())
@@ -298,24 +301,24 @@ public class MessageReceiverListener {
.status(payRechargeReturnMessage.getStatus()) .status(payRechargeReturnMessage.getStatus())
.build(); .build();
leasePayRechargeMessageMapper.saveOrUpdateByIndex(build); leasePayRechargeMessageMapper.saveOrUpdateByIndex(build);
}else { } else {
//已存在已完成充值的消息 // 已存在已完成充值的消息
if (leasePayRechargeMessage.getStatus() == 1){ if (leasePayRechargeMessage.getStatus() == 1) {
return; return;
} }
leasePayRechargeMessage.setStatus(payRechargeReturnMessage.getStatus()); leasePayRechargeMessage.setStatus(payRechargeReturnMessage.getStatus());
leasePayRechargeMessage.setUpdateTime(LocalDateTime.now()); leasePayRechargeMessage.setUpdateTime(LocalDateTime.now());
leasePayRechargeMessageMapper.updateById(leasePayRechargeMessage); leasePayRechargeMessageMapper.updateById(leasePayRechargeMessage);
} }
//处理支付成功消息 // 处理支付成功消息
if (payRechargeReturnMessage.getStatus() == 1){ if (payRechargeReturnMessage.getStatus() == 1) {
leaseUserWalletData.setBalance(balance.add(payRechargeReturnMessage.getAmount())); leaseUserWalletData.setBalance(balance.add(payRechargeReturnMessage.getAmount()));
//使用乐观锁防止余额少加 // 使用乐观锁防止余额少加
int update = leaseUserWalletDataMapper.update(leaseUserWalletData, new LambdaQueryWrapper<LeaseUserWalletData>() int update = leaseUserWalletDataMapper.update(leaseUserWalletData, new LambdaQueryWrapper<LeaseUserWalletData>()
.eq(LeaseUserWalletData::getId, leaseUserWalletData.getId()) .eq(LeaseUserWalletData::getId, leaseUserWalletData.getId())
.eq(LeaseUserWalletData::getBalance, balance) .eq(LeaseUserWalletData::getBalance, balance)
); );
if (update < 1){ if (update < 1) {
throw new PayRechargeException("余额充值失败,余额已被修改"); throw new PayRechargeException("余额充值失败,余额已被修改");
} }
} }
@@ -484,7 +487,7 @@ public class MessageReceiverListener {
if (status == 1){ if (status == 1){
leaseUserWalletData.setBalance(balance); leaseUserWalletData.setBalance(balance);
leaseUserWalletData.setBlockedBalance(blockBalance); leaseUserWalletData.setBlockedBalance(blockBalance);
}else if (status == 0 ){ }else if (status == 0 || status == 3){
//余额提现失败 冻结金额 需要减去提现手续费和提现金额 //余额提现失败 冻结金额 需要减去提现手续费和提现金额
leaseUserWalletData.setBlockedBalance(blockBalance); leaseUserWalletData.setBlockedBalance(blockBalance);
} }
@@ -554,59 +557,64 @@ public class MessageReceiverListener {
//} //}
// //
//测试 开发环境 充值测试 //测试 开发环境 充值测试
@RabbitListener(queues = RabbitmqConstant.PAY_RECHARGE_QUEUE,containerFactory ="rabbitListenerContainerFactory") //@RabbitListener(queues = RabbitmqConstant.PAY_RECHARGE_QUEUE,containerFactory ="rabbitListenerContainerFactory")
public void listenerPayRechargeQueueMessage(@Payload RabbitmqPayRechargeMessage payAutoReturnMessage) { //public void listenerPayRechargeQueueMessage(@Payload RabbitmqPayRechargeMessage payAutoReturnMessage,
String s = UuidGeneratorUtil.generateUuidWithoutHyphen(); // com.rabbitmq.client.Channel channel,
////发送充值消息 // org.springframework.amqp.core.Message message) {
//RabbitmqPayRechargeReturnMessage rabbitmqPayRechargeReturnMessage = RabbitmqPayRechargeReturnMessage.builder() // try {
// .queue_id(payAutoReturnMessage.getQueue_id()) // System.out.println("收到钱包监听请求: " + JSONUtil.toJsonPrettyStr(payAutoReturnMessage));
// .status(2) //
// .amount(BigDecimal.valueOf(20)) // // 这里可以添加实际的监听逻辑
// .chain(payAutoReturnMessage.getChain()) // // 例如:调用外部 API 启动钱包监听
// .symbol(payAutoReturnMessage.getSymbol()) //
// .address(payAutoReturnMessage.getAddress()) // // 模拟监听成功
// .tx_hash(s) // String response = "钱包监听启动成功: " + payAutoReturnMessage.getAddress();
// .build(); //
//rabbitTemplate.convertAndSend(RabbitmqConstant.PAY_RECHARGE_RETURN_QUEUE,rabbitmqPayRechargeReturnMessage); // // 发送响应给调用者
// channel.basicPublish(
// "",
//发送充值消息 // message.getMessageProperties().getReplyTo(),
RabbitmqPayRechargeReturnMessage rabbitmqPayRechargeReturnMessage1 = RabbitmqPayRechargeReturnMessage.builder() // null,
.queue_id(payAutoReturnMessage.getQueue_id()) // response.getBytes()
.status(1) // );
.amount(BigDecimal.valueOf(100)) //
.chain(payAutoReturnMessage.getChain()) // // 手动确认消息
.symbol(payAutoReturnMessage.getSymbol()) // channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
.address(payAutoReturnMessage.getAddress()) //
.user_email(payAutoReturnMessage.getUser_email()) // System.out.println("钱包监听响应已发送: " + response);
.fromAddress(payAutoReturnMessage.getAddress()) // } catch (Exception e) {
.tx_hash(s) // System.out.println("处理钱包监听请求失败: " + e.getMessage());
.build(); // try {
rabbitTemplate.convertAndSend(RabbitmqConstant.PAY_RECHARGE_RETURN_QUEUE,rabbitmqPayRechargeReturnMessage1); // channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
} // } catch (Exception ex) {
// ex.printStackTrace();
// }
//提现 // }
@RabbitListener(queues = RabbitmqConstant.PAY_WITHDRAW_QUEUE,containerFactory ="rabbitListenerContainerFactory") //}
public void listenerWithdrawQueueMessage(@Payload RabbitmqPayWithdrawMessage payAutoReturnMessage) throws InterruptedException { //}
Thread.sleep(10000); //
RabbitmqPayWithdrawReturnMessage rabbitmqPayRechargeReturnMessage = RabbitmqPayWithdrawReturnMessage.builder() //
.queue_id(payAutoReturnMessage.getQueue_id()) ////提现
.status(1) //@RabbitListener(queues = RabbitmqConstant.PAY_WITHDRAW_QUEUE,containerFactory ="rabbitListenerContainerFactory")
.amount(payAutoReturnMessage.getAmount()) //public void listenerWithdrawQueueMessage(@Payload RabbitmqPayWithdrawMessage payAutoReturnMessage) throws InterruptedException {
.chain(payAutoReturnMessage.getChain()) // Thread.sleep(10000);
.symbol(payAutoReturnMessage.getSymbol()) // RabbitmqPayWithdrawReturnMessage rabbitmqPayRechargeReturnMessage = RabbitmqPayWithdrawReturnMessage.builder()
.from_address(payAutoReturnMessage.getFrom_address()) // .queue_id(payAutoReturnMessage.getQueue_id())
.tx_hash(UuidGeneratorUtil.generateUuidWithoutHyphen()) // .status(1)
.fee(payAutoReturnMessage.getFee()) // .amount(payAutoReturnMessage.getAmount())
.user_email(payAutoReturnMessage.getUser_email()) // .chain(payAutoReturnMessage.getChain())
.build(); // .symbol(payAutoReturnMessage.getSymbol())
//提现100 提现失败 // .from_address(payAutoReturnMessage.getFrom_address())
if (payAutoReturnMessage.getAmount().equals(BigDecimal.valueOf(100))){ // .tx_hash(UuidGeneratorUtil.generateUuidWithoutHyphen())
rabbitmqPayRechargeReturnMessage.setStatus(0); // .fee(payAutoReturnMessage.getFee())
} // .user_email(payAutoReturnMessage.getUser_email())
rabbitTemplate.convertAndSend(RabbitmqConstant.PAY_WITHDRAW_RETURN_QUEUE,rabbitmqPayRechargeReturnMessage); // .build();
} // //提现100 提现失败
// if (payAutoReturnMessage.getAmount().equals(BigDecimal.valueOf(100))){
// rabbitmqPayRechargeReturnMessage.setStatus(0);
// }
// rabbitTemplate.convertAndSend(RabbitmqConstant.PAY_WITHDRAW_RETURN_QUEUE,rabbitmqPayRechargeReturnMessage);
//}
////测试 开发环境 删除钱包测试 ////测试 开发环境 删除钱包测试

View File

@@ -46,9 +46,8 @@ public class RabbitmqPayWithdrawReturnMessage {
/** /**
* 提现金额 * 提现金额 这个金额是减去手续费的
*/ */
@LedgerLogParam(value = "提现金额")
private BigDecimal amount; private BigDecimal amount;
/** /**

View File

@@ -0,0 +1,48 @@
package com.m2pool.lease.service;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 钱包监听回调服务
* 用于存储和管理钱包监听的回调结果
*/
public class WalletCallbackService {
// 用于存储钱包监听回调结果key: queueId, value: 回调结果
private static final Map<String, Boolean> walletListenCallbackMap = new ConcurrentHashMap<>();
/**
* 注册回调(清除之前的回调结果)
* @param queueId 队列ID
*/
public static void registerCallback(String queueId) {
walletListenCallbackMap.remove(queueId);
}
/**
* 触发回调
* @param queueId 队列ID
* @param success 是否成功
*/
public static void triggerCallback(String queueId, boolean success) {
walletListenCallbackMap.put(queueId, success);
}
/**
* 获取回调结果
* @param queueId 队列ID
* @return 回调结果,如果不存在则返回 null
*/
public static Boolean getCallbackResult(String queueId) {
return walletListenCallbackMap.get(queueId);
}
/**
* 移除回调
* @param queueId 队列ID
*/
public static void removeCallback(String queueId) {
walletListenCallbackMap.remove(queueId);
}
}

View File

@@ -727,6 +727,7 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
try { try {
//发送提现消息 //发送提现消息
rabbitTemplate.convertAndSend(PAY_WITHDRAW_QUEUE,message); rabbitTemplate.convertAndSend(PAY_WITHDRAW_QUEUE,message);
OperationLogAspect.addExtraLogParam("提现金额", balanceVo.getAmount());
OperationLogAspect.addExtraLogParam("手续费", serviceCharge.toString()); OperationLogAspect.addExtraLogParam("手续费", serviceCharge.toString());
OperationLogAspect.addExtraLogParam("消息ID", queueId); OperationLogAspect.addExtraLogParam("消息ID", queueId);
return Result.success("提现申请成功"); return Result.success("提现申请成功");

View File

@@ -1,6 +1,7 @@
package com.m2pool.lease.service.impl; package com.m2pool.lease.service.impl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
@@ -19,12 +20,14 @@ import com.m2pool.lease.exception.AuthException;
import com.m2pool.lease.exception.PaymentException; import com.m2pool.lease.exception.PaymentException;
import com.m2pool.lease.mapper.*; import com.m2pool.lease.mapper.*;
import com.m2pool.lease.mq.message.RabbitmqPayRechargeMessage; import com.m2pool.lease.mq.message.RabbitmqPayRechargeMessage;
import com.m2pool.lease.mq.message.RabbitmqPayRechargeReturnMessage;
import com.m2pool.lease.mq.message.RabbitmqPayWithdrawMessage; import com.m2pool.lease.mq.message.RabbitmqPayWithdrawMessage;
import com.m2pool.lease.redis.EmailCodeValue; import com.m2pool.lease.redis.EmailCodeValue;
import com.m2pool.lease.redis.RedisAuthKey; import com.m2pool.lease.redis.RedisAuthKey;
import com.m2pool.lease.redis.service.RedisService; import com.m2pool.lease.redis.service.RedisService;
import com.m2pool.lease.service.LeaseShopService; import com.m2pool.lease.service.LeaseShopService;
import com.m2pool.lease.service.LeaseUserService; import com.m2pool.lease.service.LeaseUserService;
import com.m2pool.lease.service.WalletCallbackService;
import com.m2pool.lease.utils.*; import com.m2pool.lease.utils.*;
import com.m2pool.lease.utils.email.EmailTemplateEntity; import com.m2pool.lease.utils.email.EmailTemplateEntity;
import com.m2pool.lease.utils.text.Convert; import com.m2pool.lease.utils.text.Convert;
@@ -57,6 +60,7 @@ import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
@@ -1040,19 +1044,18 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
return Result.fail("请求服务器失败,请重试"); return Result.fail("请求服务器失败,请重试");
} }
} }
@Override @Override
@Transactional @Transactional
public Result<UserWalletDataDto> bindWallet(ChainAndCoinVo chainAndCoinVo) { public Result<UserWalletDataDto> bindWallet(ChainAndCoinVo chainAndCoinVo) {
Long authId = SecurityUtils.getUserId(); Long authId = SecurityUtils.getUserId();
String username = SecurityUtils.getUsername(); String username = SecurityUtils.getUsername();
//同一用户同一个链只会存在一个钱包 //同一用户同一个链只会存在一个钱包
List<UserWalletDataDto> userWalletDataDtoList = leaseUserWalletDataMapper.getWalletInfoByChain(chainAndCoinVo.getChain(),authId); List<UserWalletDataDto> userWalletDataDtoList = leaseUserWalletDataMapper.getWalletInfoByChain(chainAndCoinVo.getChain(), authId);
UserWalletDataDto result; UserWalletDataDto result;
//如果某个链 未查找到钱包地址 去新绑定一个 //如果某个链 未查找到钱包地址 去新绑定一个
if (userWalletDataDtoList.isEmpty()){ if (userWalletDataDtoList.isEmpty()) {
LeaseAutoAddress bindAddress = getBindAddress(chainAndCoinVo.getChain(), chainAndCoinVo.getCoin()); LeaseAutoAddress bindAddress = getBindAddress(chainAndCoinVo.getChain(), chainAndCoinVo.getCoin());
if (bindAddress != null){ if (bindAddress != null) {
String address = bindAddress.getAddress(); String address = bindAddress.getAddress();
String qrcode = QrCodeUtils.creatRrCode(bindAddress.getAddress(), 200, 200); String qrcode = QrCodeUtils.creatRrCode(bindAddress.getAddress(), 200, 200);
String queueId = UuidGeneratorUtil.generateUuidWithoutHyphen(); String queueId = UuidGeneratorUtil.generateUuidWithoutHyphen();
@@ -1078,26 +1081,38 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
.build()); .build());
bindAddress.setStatus(1); bindAddress.setStatus(1);
leaseAutoAddressMapper.updateById(bindAddress); leaseAutoAddressMapper.updateById(bindAddress);
//监听钱包 // 清除之前的回调结果(如果有)
sendMessage(result,username,authId); WalletCallbackService.registerCallback(queueId);
// 异步监听钱包,发送消息
}else{ sendMessage(result, username, authId);
// 阻塞等待回调最多等待10秒
try {
long startTime = System.currentTimeMillis();
long timeout = 5000; // 5秒超时
Boolean callbackResult = false;
while (System.currentTimeMillis() - startTime < timeout) {
callbackResult = WalletCallbackService.getCallbackResult(queueId);
// 每隔100毫秒检查一次
Thread.sleep(100);
}
// 超时未收到回调
WalletCallbackService.removeCallback(queueId);
if (callbackResult != null && callbackResult) {
return Result.success(result, "钱包监听启动成功");
} else {
throw new AuthException("钱包监听启动失败,请稍后重试");
}
} catch (InterruptedException e) {
WalletCallbackService.removeCallback(queueId);
return Result.success(result, "钱包监听启动中,请稍后查看");
}
} else {
return Result.fail("没有可用的地址,请联系管理员生成可用的钱包地址"); return Result.fail("没有可用的地址,请联系管理员生成可用的钱包地址");
} }
}else{ } else {
for (UserWalletDataDto userWalletDataDto : userWalletDataDtoList) { for (UserWalletDataDto userWalletDataDto : userWalletDataDtoList) {
if (userWalletDataDto.getFromSymbol().equals(chainAndCoinVo.getCoin())){ if (userWalletDataDto.getFromSymbol().equals(chainAndCoinVo.getCoin())) {
//开发环境 return Result.success(userWalletDataDto);
sendMessage(UserWalletDataDto.builder()
.queueId(userWalletDataDto.getQueueId())
.fromAddress(userWalletDataDto.getFromAddress())
.fromChain(chainAndCoinVo.getChain())
.fromSymbol(chainAndCoinVo.getCoin())
.balance(BigDecimal.ZERO)
.userId(userWalletDataDto.getUserId())
.qrcode(userWalletDataDto.getQrcode())
.build(),username,authId);
return Result.success(userWalletDataDto);
} }
} }
UserWalletDataDto userWalletDataDto = userWalletDataDtoList.get(0); UserWalletDataDto userWalletDataDto = userWalletDataDtoList.get(0);
@@ -1110,7 +1125,6 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
.userId(userWalletDataDto.getUserId()) .userId(userWalletDataDto.getUserId())
.qrcode(userWalletDataDto.getQrcode()) .qrcode(userWalletDataDto.getQrcode())
.build(); .build();
LeaseUserWalletData build = LeaseUserWalletData.builder() LeaseUserWalletData build = LeaseUserWalletData.builder()
.queueId(userWalletDataDto.getQueueId()) .queueId(userWalletDataDto.getQueueId())
.fromChain(userWalletDataDto.getFromChain()) .fromChain(userWalletDataDto.getFromChain())
@@ -1124,7 +1138,6 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
//链钱包存在 但是新增币种 //链钱包存在 但是新增币种
leaseUserWalletDataMapper.insert(build); leaseUserWalletDataMapper.insert(build);
} }
return Result.success(result); return Result.success(result);
} }
@@ -1176,7 +1189,7 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
} }
/** /**
* 发送mq 消息,从而启动钱包监听 * 发送mq 消息,从而启动钱包监听(异步)
*/ */
public void sendMessage(UserWalletDataDto userWalletDataDto,String username,Long authId){ public void sendMessage(UserWalletDataDto userWalletDataDto,String username,Long authId){
try { try {
@@ -1291,8 +1304,10 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
.user_email(username+"--"+authId) .user_email(username+"--"+authId)
.build(); .build();
try { try {
//发送 提现 消息 //发送 提现 消息
rabbitTemplate.convertAndSend(PAY_WITHDRAW_QUEUE,message); rabbitTemplate.convertAndSend(PAY_WITHDRAW_QUEUE,message);
OperationLogAspect.addExtraLogParam("提现金额", balanceVo.getAmount().toString());
OperationLogAspect.addExtraLogParam("手续费", serviceCharge.toString()); OperationLogAspect.addExtraLogParam("手续费", serviceCharge.toString());
OperationLogAspect.addExtraLogParam("消息ID", queueId); OperationLogAspect.addExtraLogParam("消息ID", queueId);
return Result.success("提现申请成功"); return Result.success("提现申请成功");