zoujiajian 1 рік тому
батько
коміт
e9cd7f9638

+ 8 - 5
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -1052,7 +1052,9 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             userBenefitsService.addUserBalance(orderDon.getUserId(), addBalance, UserBalanceSourceRecord.Source.refund, orderDon.getYhsId(), orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.refund.getDesc(), true);
         }
         //是否全额退款
-        if (refundMoney.compareTo(orderDon.getMoney()) == 0) {
+        BigDecimal orderDonRefundMoney = Optional.ofNullable(orderDon.getRefundMoney()).orElse(BigDecimal.ZERO);
+        BigDecimal orderDonRefundBalance = Optional.ofNullable(orderDon.getRefundBalance()).orElse(BigDecimal.ZERO);
+        if (orderDonRefundMoney.add(orderDonRefundBalance).compareTo(orderDon.getMoney().add(Optional.ofNullable(orderDon.getBalance()).orElse(BigDecimal.ZERO))) == 0) {
             //是否使用银河币支付
             OrderDonGalaxyCoinRecord orderDonGalaxyCoinRecord = orderDonGalaxyCoinRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonGalaxyCoinRecord.class)
                     .eq(OrderDonGalaxyCoinRecord::getOrderId, orderDon.getId())
@@ -1060,13 +1062,14 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             if (orderDonGalaxyCoinRecord != null) {
                 //有效时,返还银河币 并记录
                 userGalaxyCoinService.recordOrderRefundGalaxyCoinIfValid(orderDon.getId(), orderDonGalaxyCoinRecord.getUserId(), orderDonGalaxyCoinRecord.getGalaxyCoin());
-                //扣除 该笔订单产生的返现银河币
-                if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {
-                    userGalaxyCoinService.subOrderGenerateGalaxyCoin(orderDon.getId());
-                }
             }
         }
 
+        //扣除 该笔订单产生的返现银河币
+        if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {
+            userGalaxyCoinService.subOrderGenerateGalaxyCoin(orderDon.getId());
+        }
+
         try {
             marketFrontService.subSpecificChanceNum(orderDon.getUserId(), orderDon.getId(), orderDon.getGoodsId(), orderDon.getUpdateTime());
             if (goodsDon.getType() == 2 && !orderDon.getIsDistribute()) {