From 44329cc64ed97c0bbc9fcc40ee110aabb160f965 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 3 Sep 2024 11:09:36 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E6=8A=98=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ysk/cashier/service/impl/TbPayServiceImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index b5486d06..1396493d 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -38,6 +38,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.sql.Timestamp; import java.util.List; import java.util.Map; @@ -350,14 +352,15 @@ public class TbPayServiceImpl implements TbPayService { throw new BadRequestException("用户不存在或已被禁用"); } - long flag = shopUserMapper.decrBalance(Integer.valueOf(orderInfo.getUserId()), orderInfo.getOrderAmount()); + BigDecimal finalAmount = orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(discount)).setScale(2, RoundingMode.UP); + long flag = shopUserMapper.decrBalance(Integer.valueOf(orderInfo.getUserId()), finalAmount); if (flag < 1) { throw new BadRequestException("余额不足或扣除余额失败"); } TbShopUserFlow userFlow = new TbShopUserFlow(); - userFlow.setAmount(orderInfo.getOrderAmount()); - userFlow.setBalance(shopUser.getAmount()); + userFlow.setAmount(finalAmount); + userFlow.setBalance(shopUser.getAmount().subtract(finalAmount)); userFlow.setShopUserId(shopUser.getId()); userFlow.setBizCode("vipCardCash"); userFlow.setBizName("余额支付"); @@ -365,7 +368,7 @@ public class TbPayServiceImpl implements TbPayService { userFlow.setType("-"); shopUserFlowMapper.insert(userFlow); - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(finalAmount); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); @@ -409,7 +412,7 @@ public class TbPayServiceImpl implements TbPayService { // return Result.fail(CodeEnum.PAYTYPENOEXIST); // } - orderInfo.setPayAmount(orderInfo.getOrderAmount()); + orderInfo.setPayAmount(orderInfo.getOrderAmount().multiply(BigDecimal.valueOf(payDTO.getDiscount()).setScale(2, RoundingMode.UP))); orderInfo.setPayType("cash"); orderInfo.setStatus("closed"); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));