Browse Source

原有的业务逻辑不支持同一笔订单明细分润导多个账户,所以这里先比较金额大小,如果有更复杂的分润情况出现,这里无法满足

zouxuan 1 year ago
parent
commit
0eb41b2814

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

@@ -3296,18 +3296,22 @@ public class ExportServiceImpl implements ExportService {
         BigDecimal price = orderDetail.getPrice().subtract(orderDetail.getIncome());
         switch (orderDetail.getType()) {
             case OTHER:
-                basicOrder.setOtherFee(basicOrder.getOtherFee().add(price));
+                basicOrder.setOtherFee(basicOrder.getOtherFee().add(price)
+                        .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getOtherFee().add(price));
                 break;
             case MUSICAL:
                 if (orderDetail.getKitGroupPurchaseType() != null && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                    basicOrder.setLeaseFee(basicOrder.getLeaseFee().add(price));
+                    basicOrder.setLeaseFee(basicOrder.getLeaseFee().add(price)
+                            .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getLeaseFee().add(price));
                 } else {
-                    basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(price));
+                    basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(price)
+                            .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getMusicalFee().add(price));
                 }
                 break;
             case TEACHING:
             case ACCESSORIES:
-                basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(price));
+                basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(price)
+                        .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getTeachingFee().add(price));
                 break;
         }
     }
@@ -3320,13 +3324,16 @@ public class ExportServiceImpl implements ExportService {
             case ACCESSORIES:
             case TEACHING:
             case STAFF:
-                basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(sellOrder.getActualAmount()));
+                basicOrder.setTeachingFee(basicOrder.getTeachingFee().add(sellOrder.getActualAmount())
+                        .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getTeachingFee().add(sellOrder.getActualAmount()));
                 break;
             case INSTRUMENT:
-                basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(sellOrder.getActualAmount()));
+                basicOrder.setMusicalFee(basicOrder.getMusicalFee().add(sellOrder.getActualAmount())
+                        .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getMusicalFee().add(sellOrder.getActualAmount()));
                 break;
             case OTHER:
-                basicOrder.setOtherFee(basicOrder.getOtherFee().add(sellOrder.getActualAmount()));
+                basicOrder.setOtherFee(basicOrder.getOtherFee().add(sellOrder.getActualAmount())
+                        .compareTo(basicOrder.getSaleAmount()) > 0 ? basicOrder.getSaleAmount() : basicOrder.getOtherFee().add(sellOrder.getActualAmount()));
                 break;
         }
     }