diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/GrabUserRedPacketCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/GrabUserRedPacketCmdExe.java index 4d90a041..b7a94a8b 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/GrabUserRedPacketCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/GrabUserRedPacketCmdExe.java @@ -68,6 +68,8 @@ public class GrabUserRedPacketCmdExe { ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, UserRedPacketStatus.PENDING.getCode().equals(status)); 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 expireSeconds = Math.max(60, Duration.between(LocalDateTime.now(), expireTime).getSeconds()); @@ -75,12 +77,12 @@ public class GrabUserRedPacketCmdExe { ResponseAssert.isTrue(OtherErrorCode.RED_PACKET_ALREADY_GRABBED, setSuccess); CompletableFuture.runAsync(() -> { - asyncProcessGrab(packetId, cmd.getReqSysOrigin().getOrigin(), userId, amount); + asyncProcessGrab(packetId, cmd.getReqSysOrigin().getOrigin(), userId, receiveAmount); }, redPacketAsyncExecutor); - log.info("领取用户红包成功 userId={} packetId={} amount={}", userId, packetId, amount); + log.info("领取用户红包成功 userId={} packetId={} amount={}", userId, packetId, receiveAmount); - return UserRedPacketAppConvertor.toGrabResultCO(packetId, amount, senderUserId); + return UserRedPacketAppConvertor.toGrabResultCO(packetId, receiveAmount, senderUserId); } /** diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/SendUserRedPacketCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/SendUserRedPacketCmdExe.java index c6236a18..01805a8e 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/SendUserRedPacketCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/redpacket/SendUserRedPacketCmdExe.java @@ -91,7 +91,8 @@ public class SendUserRedPacketCmdExe { * 扣除用户金币(红包金额 + 手续费) */ private void deductUserGold(Long userId, SendUserRedPacketCmd cmd, String packetId, Long handlingFee) { - Long totalDeduct = cmd.getTotalAmount() + handlingFee; + // 发红包不再扣除手续费 + Long totalDeduct = cmd.getTotalAmount(); GoldReceiptCmd build = GoldReceiptCmd.builder() .appExpenditure()