Jelajahi Sumber

管乐迷商城改造

zouxuan 1 tahun lalu
induk
melakukan
a4fb13f49c

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java

@@ -1265,7 +1265,7 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 				activityUserMapper.setActualPrice(subActual);
 			} else {
 				//获取比例
-				BigDecimal ratioAmount = activity.getMarketPrice().divide(reduce, 6, RoundingMode.DOWN);
+				BigDecimal ratioAmount = activity.getMarketPrice().divide(reduce, 16, RoundingMode.DOWN);
 				//获取分配的减免金额
 				BigDecimal multiply = ratioAmount.multiply(totalActual).setScale(2, RoundingMode.DOWN);
 				subActual = subActual.subtract(multiply);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -3387,7 +3387,7 @@ public class ExportServiceImpl implements ExportService {
         BigDecimal actualAmount = subTotalAmount;
         for (int i = 0; i < detailList.size(); i++) {
             StudentPaymentOrderDetail detail = detailList.get(i);
-            BigDecimal ratio = detail.getPrice().divide(expectAmount, 8, RoundingMode.DOWN);
+            BigDecimal ratio = detail.getPrice().divide(expectAmount, 16, RoundingMode.DOWN);
             BigDecimal price = actualAmount.multiply(ratio).setScale(2, RoundingMode.DOWN);
             if (i == detailList.size() - 1) {
                 detail.setPrice(subTotalAmount);

+ 9 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -1115,9 +1115,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                     throw new BizException("商品信息不存在");
                 }
                 String orderNo = "Y" + idGeneratorService.generatorId("payment");
+                //获取账期金额
+                List<MusicGroupCalenderRefundPeriod> refundPeriods = musicGroupCalenderRefundPeriodService.findByCalenderId(calender.getId());
+                BigDecimal totalAmount = refundPeriods.stream().map(e -> e.getRefundAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
                 //管乐迷应收订单创建
                 StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-                studentPaymentOrder.setActualAmount(calender.getCurrentTotalAmount());
+                studentPaymentOrder.setActualAmount(totalAmount);
                 studentPaymentOrder.setCooperationId(musicGroup.getCooperationOrganId());
                 studentPaymentOrder.setMusicGroupId(calender.getMusicGroupId());
                 studentPaymentOrder.setCalenderId(calender.getId());
@@ -1125,7 +1128,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 studentPaymentOrder.setGroupType(GroupType.OUTORDER);
                 studentPaymentOrder.setOrganId(musicGroup.getOrganId());
                 studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
-                studentPaymentOrder.setExpectAmount(calender.getCurrentTotalAmount());
+                studentPaymentOrder.setExpectAmount(totalAmount);
                 studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
                 studentPaymentOrder.setCreateTime(date);
                 studentPaymentOrder.setUpdateTime(date);
@@ -1162,7 +1165,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             //获取比例
             BigDecimal totalProportion = BigDecimal.ZERO;
             if(studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) > 0){
-                totalProportion = calenderGood.getTotalPrice().divide(originalTotalAmount, 6, RoundingMode.DOWN);
+                totalProportion = calenderGood.getTotalPrice().divide(originalTotalAmount, 16, RoundingMode.DOWN);
             }
             //获取现价
             BigDecimal currentTotalAmount;
@@ -1194,7 +1197,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                     //获取比例
                     BigDecimal proportion = BigDecimal.ZERO;
                     if (totalCostPrice.compareTo(BigDecimal.ZERO) > 0) {
-                        proportion = goodsDto.getOrganCostPrice().divide(totalCostPrice, 6, RoundingMode.DOWN);
+                        proportion = goodsDto.getOrganCostPrice().divide(totalCostPrice, 16, RoundingMode.DOWN);
                     }
                     SellOrder sellOrder = new SellOrder();
                     sellOrder.setGoodsSkuId(goodsDto.getSkuStockId());
@@ -1245,7 +1248,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             //获取比例
             BigDecimal proportion = BigDecimal.ZERO;
             if (totalCostPrice.compareTo(BigDecimal.ZERO) > 0) {
-                proportion = sellOrder.getExpectAmount().divide(totalCostPrice, 6, RoundingMode.DOWN);
+                proportion = sellOrder.getExpectAmount().divide(totalCostPrice, 16, RoundingMode.DOWN);
             }
             if (i == sellOrderList.size() - 1) {
                 sellOrder.setOrderAmount(waitAmount);
@@ -1304,7 +1307,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                     orderItemCreate.setRealAmount(waitRemitFee);
                 } else {
                     //获取比例
-                    BigDecimal ratioAmount = goodsDto.getOrganCostPrice().divide(totalAmount, 6, RoundingMode.DOWN);
+                    BigDecimal ratioAmount = goodsDto.getOrganCostPrice().divide(totalAmount, 16, RoundingMode.DOWN);
                     //获取分配的金额
                     BigDecimal multiply = ratioAmount.multiply(totalPrice).setScale(2, RoundingMode.DOWN);
                     orderItemCreate.setRealAmount(multiply);

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -91,7 +91,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
         //获取比例
         BigDecimal totalRatioAmount = BigDecimal.ZERO;
         if(studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) > 0){
-            totalRatioAmount = detailTotalPrice.divide(studentPaymentOrder.getExpectAmount(), 6, RoundingMode.DOWN);
+            totalRatioAmount = detailTotalPrice.divide(studentPaymentOrder.getExpectAmount(), 16, RoundingMode.DOWN);
         }
         //获取分配的余额
         BigDecimal balancePaymentAmount = studentPaymentOrder.getBalancePaymentAmount().multiply(totalRatioAmount).setScale(2, RoundingMode.DOWN);
@@ -112,12 +112,12 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
             //获取支付金额比例
             BigDecimal ratioAmount = BigDecimal.ZERO;
             if(detailTotalPrice.compareTo(BigDecimal.ZERO) > 0){
-                ratioAmount = orderDetail.getPrice().divide(detailTotalPrice, 6, RoundingMode.DOWN);
+                ratioAmount = orderDetail.getPrice().divide(detailTotalPrice, 16, RoundingMode.DOWN);
             }
             BigDecimal ratioCouponAmount = BigDecimal.ZERO;
             if (detailTotalRemitPrice.compareTo(BigDecimal.ZERO) > 0) {
                 //获取优惠券金额比例
-                ratioCouponAmount = orderDetail.getRemitFee().divide(detailTotalRemitPrice, 6, RoundingMode.DOWN);
+                ratioCouponAmount = orderDetail.getRemitFee().divide(detailTotalRemitPrice, 16, RoundingMode.DOWN);
             }
             //获取分配的余额
             BigDecimal detailBalance;
@@ -425,7 +425,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
 
             if (goodsTotalPrice.compareTo(BigDecimal.ZERO) > 0) {
                 goodsRatioAmount = order.getGroupType() == MUSIC ?nowGoods.getGroupPurchasePrice():nowGoods.getDiscountPrice()
-                        .divide(goodsTotalPrice, 6, RoundingMode.DOWN);
+                        .divide(goodsTotalPrice, 16, RoundingMode.DOWN);
             }
             if(i == goodies.size() - 1){
                 expectAmount = subExpectTotalAmount;
@@ -471,7 +471,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
                 //获取比例
                 BigDecimal ratioAmount = BigDecimal.ZERO;
                 if(complementPrice.compareTo(BigDecimal.ZERO) > 0){
-                    ratioAmount = goodsSub.getGoodsPrice().divide(complementPrice, 6, RoundingMode.DOWN);
+                    ratioAmount = goodsSub.getGoodsPrice().divide(complementPrice, 16, RoundingMode.DOWN);
                 }
                 if (j == goodsSubs.size() - 1){
                     sellOrder.setExpectAmount(subExpectAmount);
@@ -550,7 +550,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
             //获取比例
             BigDecimal proportion = BigDecimal.ZERO;
             if (totalCostPrice.compareTo(BigDecimal.ZERO) > 0) {
-                proportion = sellOrder.getExpectAmount().divide(totalCostPrice, 6, RoundingMode.DOWN);
+                proportion = sellOrder.getExpectAmount().divide(totalCostPrice, 16, RoundingMode.DOWN);
             }
             if (i == sellOrderList.size() - 1) {
                 sellOrder.setOrderAmount(waitAmount);

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -88,7 +88,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                     orderDetail.setRemitFee(subCouponRemitFee);
                 } else {
                     //获取比例
-                    BigDecimal ratioAmount = orderDetail.getPrice().divide(expectAmount, 6, RoundingMode.DOWN);
+                    BigDecimal ratioAmount = orderDetail.getPrice().divide(expectAmount, 16, RoundingMode.DOWN);
                     //获取分配的减免金额
                     BigDecimal multiply = ratioAmount.multiply(couponRemitFee).setScale(2, RoundingMode.DOWN);
                     subCouponRemitFee = subCouponRemitFee.subtract(multiply);
@@ -150,9 +150,9 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                     orderDetail.setRemitFee(orderDetail.getRemitFee().add(waitRemitFee));
                 } else {
                     //获取比例
-                    BigDecimal ratioAmount = orderDetail.getPrice().divide(totalAmount, 6, RoundingMode.HALF_UP);
+                    BigDecimal ratioAmount = orderDetail.getPrice().divide(totalAmount, 16, RoundingMode.DOWN);
                     //获取分配的减免金额
-                    BigDecimal multiply = ratioAmount.multiply(couponRemitFee).setScale(2, RoundingMode.HALF_UP);
+                    BigDecimal multiply = ratioAmount.multiply(couponRemitFee).setScale(2, RoundingMode.DOWN);
                     waitRemitFee = waitRemitFee.subtract(multiply);
                     useRemitFee = useRemitFee.add(multiply);
                     orderDetail.setPrice(orderDetail.getPrice().subtract(multiply));
@@ -912,7 +912,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                 //获取比例
                 BigDecimal tempPrice = BigDecimal.ZERO;
                 if (totalGroupPurchasePrice.compareTo(BigDecimal.ZERO) > 0) {
-                    tempPrice = goods.getDiscountPrice().divide(totalGroupPurchasePrice,6, RoundingMode.DOWN);
+                    tempPrice = goods.getDiscountPrice().divide(totalGroupPurchasePrice,16, RoundingMode.DOWN);
                 }
                 if(i == goodsIds.length - 1){
                     studentPaymentOrderDetail.setPrice(subTotalPrice);

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -1438,7 +1438,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
                                     sellOrder.setBalanceAmount(subjectBalance);
                                 }else {
                                     //获取比例
-                                    BigDecimal ratioAmount = totalAmount.divide(studentGoodsSellDto.getExpectAmount(), 6, RoundingMode.DOWN);
+                                    BigDecimal ratioAmount = totalAmount.divide(studentGoodsSellDto.getExpectAmount(), 16, RoundingMode.DOWN);
                                     BigDecimal multiply = balancePaymentAmount.multiply(ratioAmount).setScale(2, RoundingMode.DOWN);
                                     subjectBalance = subjectBalance.subtract(multiply);
                                     sellOrder.setBalanceAmount(multiply);
@@ -1600,7 +1600,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
                                     sellOrder.setBalanceAmount(subjectBalance);
                                 }else {
                                     //获取比例
-                                    BigDecimal ratioAmount = totalAmount.divide(studentGoodsSellDto.getExpectAmount(), 6, RoundingMode.DOWN);
+                                    BigDecimal ratioAmount = totalAmount.divide(studentGoodsSellDto.getExpectAmount(), 16, RoundingMode.DOWN);
                                     BigDecimal multiply = balancePaymentAmount.multiply(ratioAmount).setScale(2, RoundingMode.DOWN);
                                     subjectBalance = subjectBalance.subtract(multiply);
                                     sellOrder.setBalanceAmount(multiply);