Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

wangming 1 bulan lalu
induk
melakukan
77b6294d51

+ 8 - 4
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -1101,7 +1101,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                         OrderItem orderItem = orderItemMapper.selectById(refundSkus.getOrderItemId());
                         Double actualTotal = orderItem.getActualTotal();//付的钱
                         Integer useScore = orderItem.getUseScore();//使用的总积分
-                        shoppingScore = useScore +freightAmountScore;//商品的总金额积分
+                        if (ObjectUtil.isNotEmpty(order.getOffsetPoints())){
+                            shoppingScore = order.getOffsetPoints().intValue()+freightAmountScore;//退款商品的总积分
+                        }
+
                         if (useScore > 0) {
                             //退的积分不一定等于下单的数量
                             totalRefundScore = (int) (totalRefundScore + Arith.mul(productCount * orderItem.getPrice(), 100));
@@ -1110,7 +1113,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                             totalRefundActual = Arith.add(totalRefundActual, productCount * orderItem.getPrice());
                         }
                     }
-
+                    log.info("退款积分:refundOffsetPoints:"+refundOffsetPoints +";shoppingScore:"+shoppingScore+";totalRefundScore:"+totalRefundScore);
                     //退积分
                     if (totalRefundScore > 0) {
                         refundScore = (long) totalRefundScore;
@@ -1144,6 +1147,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                     refundExpiredScore += variablePoints;
                                 }
                                 totalRefundScore -= variablePoints;
+                                pointsRecordMapper.insert(npr);
                             } else if(totalRefundScore>0){//574>188,应退188
                                 npr.setPoints(BigDecimal.valueOf(totalRefundScore));
                                 npr.setVariablePoints(BigDecimal.valueOf(0));
@@ -1158,8 +1162,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                     refundExpiredScore += totalRefundScore;
                                 }
                                 totalRefundScore=0;
+                                pointsRecordMapper.insert(npr);
                             }
-                            pointsRecordMapper.insert(npr);
+                            log.info("退积分:当前退款金额为:totalRefundScore:"+totalRefundScore);
                             if (totalRefundScore==0 && shoppingScore>=refundOffsetPoints) {
                                 orderRefund.setRefundAmount(refundActual.doubleValue());
                                 orderRefund.setOffsetPoints(refundScore);
@@ -1170,7 +1175,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                                 return;
                             }
                         }
-
                     }
                     //退钱
                     if (totalRefundActual > 0) {