红包显示扣完手续费的金额

This commit is contained in:
tianfeng 2026-01-14 16:13:25 +08:00
parent 708f473140
commit 96bcc0cf7b
2 changed files with 6 additions and 8 deletions

View File

@ -68,8 +68,6 @@ public class GrabUserRedPacketCmdExe {
ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, UserRedPacketStatus.PENDING.getCode().equals(status)); ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, UserRedPacketStatus.PENDING.getCode().equals(status));
Long amount = Long.valueOf(String.valueOf(packetData.get("totalAmount"))); Long amount = Long.valueOf(String.valueOf(packetData.get("totalAmount")));
Long handlingFee = Long.valueOf(String.valueOf(packetData.get("handlingFee")));
Long receiveAmount = amount - handlingFee;
Long senderUserId = Long.valueOf(String.valueOf(packetData.get("senderUserId"))); Long senderUserId = Long.valueOf(String.valueOf(packetData.get("senderUserId")));
long expireSeconds = Math.max(60, Duration.between(LocalDateTime.now(), expireTime).getSeconds()); long expireSeconds = Math.max(60, Duration.between(LocalDateTime.now(), expireTime).getSeconds());
@ -77,12 +75,12 @@ public class GrabUserRedPacketCmdExe {
ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, setSuccess); ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, setSuccess);
CompletableFuture.runAsync(() -> { CompletableFuture.runAsync(() -> {
asyncProcessGrab(packetId, cmd.getReqSysOrigin().getOrigin(), userId, receiveAmount); asyncProcessGrab(packetId, cmd.getReqSysOrigin().getOrigin(), userId, amount);
}, redPacketAsyncExecutor); }, redPacketAsyncExecutor);
log.info("领取用户红包成功 userId={} packetId={} amount={}", userId, packetId, receiveAmount); log.info("领取用户红包成功 userId={} packetId={} amount={}", userId, packetId, amount);
return UserRedPacketAppConvertor.toGrabResultCO(packetId, receiveAmount, senderUserId); return UserRedPacketAppConvertor.toGrabResultCO(packetId, amount, senderUserId);
} }
/** /**

View File

@ -73,7 +73,7 @@ public class SendUserRedPacketCmdExe {
UserRedPacket redPacket = buildRedPacket(cmd, senderUserId, receiverUserId, packetId, expireTime, handlingFee); UserRedPacket redPacket = buildRedPacket(cmd, senderUserId, receiverUserId, packetId, expireTime, handlingFee);
userRedPacketGateway.save(redPacket); userRedPacketGateway.save(redPacket);
deductUserGold(senderUserId, cmd, packetId, handlingFee); deductUserGold(senderUserId, cmd, packetId);
cacheRedPacketData(redPacket); cacheRedPacketData(redPacket);
@ -106,7 +106,7 @@ public class SendUserRedPacketCmdExe {
/** /**
* 扣除用户金币红包金额 + 手续费 * 扣除用户金币红包金额 + 手续费
*/ */
private void deductUserGold(Long userId, SendUserRedPacketCmd cmd, String packetId, Long handlingFee) { private void deductUserGold(Long userId, SendUserRedPacketCmd cmd, String packetId) {
// 发红包不再扣除手续费 // 发红包不再扣除手续费
Long totalDeduct = cmd.getTotalAmount(); Long totalDeduct = cmd.getTotalAmount();
@ -138,7 +138,7 @@ public class SendUserRedPacketCmdExe {
.senderUserId(senderUserId) .senderUserId(senderUserId)
.receiverUserId(receiverUserId) .receiverUserId(receiverUserId)
.packetType(RoomRedPacketType.FIXED.getCode()) .packetType(RoomRedPacketType.FIXED.getCode())
.totalAmount(cmd.getTotalAmount()) .totalAmount(cmd.getTotalAmount() - handlingFee)
.handlingFee(handlingFee) .handlingFee(handlingFee)
.expireTime(expireTime) .expireTime(expireTime)
.status(UserRedPacketStatus.PENDING.getCode()) .status(UserRedPacketStatus.PENDING.getCode())