Преглед изворни кода

fix bug:两个商品订单对应赠送积分记录不正确

lhm пре 3 година
родитељ
комит
fde83a0415

+ 9 - 6
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -2653,9 +2653,10 @@ public class OrderServiceImpl implements OrderService {
                             orderGiftScoreRulesVo.setGenerateType(Constants.MemberScoreRulesEnum.TWO.getCode());
                             if (ratio.compareTo(BigDecimal.ZERO) > 0) {
                                 // 算出所积的分
-                                int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
+                                BigDecimal bigDecimal = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR);
+                                int giftScore = bigDecimal.add(new BigDecimal(memberScore.get())).intValue();
                                 memberScore.set(giftScore);
-                                orderGiftScoreRulesVo.setGiftScore(giftScore);
+                                orderGiftScoreRulesVo.setGiftScore(bigDecimal.intValue());
                                 orderGiftScoreRulesVo.setGenerateRatio(ratio);
                             } else {
                                 // 积分比例设置为0,该商品不记积分。
@@ -2683,9 +2684,10 @@ public class OrderServiceImpl implements OrderService {
                                     BigDecimal money = goodsMap.get(sku);
                                     if (ratio.compareTo(BigDecimal.ZERO) > 0) {
                                         // 算出所积的分
-                                        int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
+                                        BigDecimal bigDecimal = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR);
+                                        int giftScore = bigDecimal.add(new BigDecimal(memberScore.get())).intValue();
                                         memberScore.set(giftScore);
-                                        orderGiftScoreRulesVo.setGiftScore(giftScore);
+                                        orderGiftScoreRulesVo.setGiftScore(bigDecimal.intValue());
                                         orderGiftScoreRulesVo.setGenerateRatio(ratio);
                                     } else {
                                         // 积分比例设置为0,该商品不记积分。
@@ -2712,9 +2714,10 @@ public class OrderServiceImpl implements OrderService {
                                 BigDecimal money = goodsMap.get(sku);
                                 if (ratio.compareTo(BigDecimal.ZERO) != 0) {
                                     // 算出所积的分
-                                    int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
+                                    BigDecimal bigDecimal = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR);
+                                    int giftScore = bigDecimal.add(new BigDecimal(memberScore.get())).intValue();
                                     memberScore.set(giftScore);
-                                    orderGiftScoreRulesVo.setGiftScore(giftScore);
+                                    orderGiftScoreRulesVo.setGiftScore(bigDecimal.intValue());
                                     orderGiftScoreRulesVo.setGenerateRatio(ratio);
                                 } else {
                                     // 积分比例设置为0,该商品不记积分。