From c5b60fbff8008c95cef0236ea520041a43151d19 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 06 Apr 2023 23:03:13 +0800 Subject: [PATCH] 在mq之前,先更新订单状态 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index 1a380ba..aea0a76 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -342,6 +342,7 @@ orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setPayTime(new Date()); orderInfo.setPayResult("1"); + this.baseMapper.updateById(orderInfo); changeWallet(orderInfo.getId()); /** @@ -448,6 +449,7 @@ * 所有合伙人补贴至消费礼包的三倍额度需要复购一次。 */ BigDecimal scoreSum = BigDecimal.ZERO; + BigDecimal achieveSum = BigDecimal.ZERO; List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId()); if (CollUtil.isNotEmpty(orderItems)) { for (MallOrderItem orderItem : orderItems) { @@ -488,6 +490,11 @@ new BigDecimal(mallGoods.getPresentPrice()) .multiply(new BigDecimal(orderItem.getCnt())) .multiply(basePercent) + .abs() + .setScale(2,BigDecimal.ROUND_DOWN)); + achieveSum = achieveSum.add( + new BigDecimal(mallGoods.getPresentPrice()) + .multiply(new BigDecimal(orderItem.getCnt())) .abs() .setScale(2,BigDecimal.ROUND_DOWN)); } @@ -608,13 +615,15 @@ /** * 产生一条业绩记录 */ - MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); - mallAchieveRecord.setMemberId(memberId); - mallAchieveRecord.setAchieveTime(new Date()); - mallAchieveRecord.setAmount(orderInfo.getAmount().subtract(orderInfo.getScoreAmount())); - mallAchieveRecord.setOrderId(orderId); - mallAchieveRecord.setPayTime(orderInfo.getPayTime()); - mallAchieveRecordMapper.insert(mallAchieveRecord); + if(achieveSum.compareTo(BigDecimal.ZERO) > 0){ + MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); + mallAchieveRecord.setMemberId(memberId); + mallAchieveRecord.setAchieveTime(new Date()); + mallAchieveRecord.setAmount(achieveSum.subtract(orderInfo.getScoreAmount())); + mallAchieveRecord.setOrderId(orderId); + mallAchieveRecord.setPayTime(orderInfo.getPayTime()); + mallAchieveRecordMapper.insert(mallAchieveRecord); + } } public static void main(String[] args) { -- Gitblit v1.9.1