|
@@ -790,12 +790,13 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
//获取组合商品列表
|
|
|
List<SellOrder> orderList = sellOrderList.stream().filter(sellOrder -> sellOrder.getParentGoodsId() != null).collect(Collectors.toList());
|
|
|
Map<Integer, List<SellOrder>> orderListMap = orderList.stream().collect(Collectors.groupingBy(SellOrder::getParentGoodsId));
|
|
|
+
|
|
|
//获取组合商品实际销售价,和单个商品总和价
|
|
|
for (Integer integer : orderListMap.keySet()) {
|
|
|
SellOrder sellOrder = orderListMap.get(integer).get(0);
|
|
|
//获取组合商品销售总价
|
|
|
GoodsSellDto goodsSellDto = collect.get(sellOrder.getParentGoodsId()).get(0);
|
|
|
- BigDecimal parentTotalGoodsPrice = goodsSellDto.getTotalGoodsPrice();
|
|
|
+ BigDecimal parentTotalGoodsPrice = goodsSellDto.getTotalGoodsPrice().divide(new BigDecimal(goodsSellDto.getGoodsNum()));
|
|
|
BigDecimal totalGoodsPrice = BigDecimal.ZERO;
|
|
|
//获取单个商品销售总价
|
|
|
for (GoodsSellDto sellDto : goodsSellDto.getGoodsSellDtos()) {
|
|
@@ -818,16 +819,16 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
|
|
|
//获取组合商品销售总价
|
|
|
GoodsSellDto goodsSellDto = collect.get(parentGoodsId).get(0);
|
|
|
- BigDecimal divide = goodsSellDto.getTotalGoodsPrice();
|
|
|
+ BigDecimal divide = goodsSellDto.getGoodsPrice();
|
|
|
|
|
|
//获取子商品明细map
|
|
|
List<GoodsSellDto> sellDtos = goodsSellDto.getGoodsSellDtos();
|
|
|
Map<Integer, List<GoodsSellDto>> subGoodsMap = sellDtos.stream().collect(Collectors.groupingBy(GoodsSellDto::getGoodsId));
|
|
|
- Set<Integer> integers = subGoodsMap.keySet();
|
|
|
+ List<Integer> integers = new ArrayList<>(subGoodsMap.keySet());
|
|
|
for (int i = 0; i < integers.size(); i++) {
|
|
|
- GoodsSellDto sellDto = subGoodsMap.get(integers.iterator().next()).get(0);
|
|
|
+ GoodsSellDto sellDto = subGoodsMap.get(integers.get(i)).get(0);
|
|
|
//获取比例
|
|
|
- BigDecimal ratioAmount = sellDto.getTotalGoodsPrice().divide(divide, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal ratioAmount = sellDto.getTotalGoodsPrice().divide(divide, 6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
if(addTotalPrice.doubleValue() > 0l){
|
|
|
//如果是最后一件商品
|
|
@@ -855,14 +856,6 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
continue noFreeAmount;
|
|
|
}
|
|
|
}
|
|
|
- /*List<SellOrder> sellOrders = orderListMap.get(parentGoodsId);
|
|
|
- for (int i = 0; i < sellOrders.size(); i++) {
|
|
|
- SellOrder sellOrder = sellOrders.get(i);
|
|
|
- GoodsSellDto sellDto = subGoodsMap.get(sellOrder.getGoodsId()).get(0);
|
|
|
- //获取比例
|
|
|
- BigDecimal ratioAmount = sellDto.getTotalGoodsPrice().divide(divide, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
-
|
|
|
- }*/
|
|
|
}
|
|
|
for (int i = 0; i < sellOrderList.size(); i++) {
|
|
|
SellOrder sellOrder = sellOrderList.get(i);
|
|
@@ -889,7 +882,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
|
|
|
}
|
|
|
BigDecimal multiply2 = goodsSellDto.getGoodsPrice().multiply(new BigDecimal(sellOrder.getNum()));
|
|
|
//获取比例
|
|
|
- BigDecimal ratioAmount = multiply2.divide(totalAmount, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal ratioAmount = multiply2.divide(totalAmount, 6, BigDecimal.ROUND_HALF_UP);
|
|
|
//如果有减免金额
|
|
|
if(marketAmount.doubleValue() > 0l){
|
|
|
//如果是最后一件商品
|