LiRong 3 місяців тому
батько
коміт
44e23ed129

+ 22 - 8
leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java

@@ -58,13 +58,27 @@ public class volunteerOrderController extends BaseController {
         startPage();
         Long userId = SecurityUtils.getUserId();
         List<VolunteerOrdersVO> list = secondOrderService.selectOrderList(userId, orderStatus);
-        List<Long> secondOrderIdList = list.stream().map(SecondOrder::getSecondOrderId).collect(Collectors.toList());
-        if(orderStatus.equals(4L)){
-            //如果已经完成
-            List<OrderFrozenFunds> orderFrozenFundsList = orderFrozenFundsService.list(new LambdaQueryWrapper<OrderFrozenFunds>().in(OrderFrozenFunds::getSecondOrderId, secondOrderIdList));
-            // 创建OrderId到OrderFrozenFunds的映射
-            Map<Long, OrderFrozenFunds> fundsMap = orderFrozenFundsList.stream()
-                    .collect(Collectors.toMap(OrderFrozenFunds::getSecondOrderId, Function.identity()));
+        //List<Long> secondOrderIdList = list.stream().map(SecondOrder::getSecondOrderId).collect(Collectors.toList());
+        if (list.isEmpty()){
+            return getDataTable(list);
+        }
+        List<Long> volunteerIdList = list.stream().map(SecondOrder::getVolunteerId).collect(Collectors.toList());
+
+        List<OrderFrozenFunds> orderFrozenFundsList = orderFrozenFundsService.list(new LambdaQueryWrapper<OrderFrozenFunds>().in(OrderFrozenFunds::getVolunteerId,volunteerIdList));
+        // 创建OrderId到OrderFrozenFunds的映射
+        Map<Long, OrderFrozenFunds> fundsMap = orderFrozenFundsList.stream()
+                .collect(Collectors.toMap(OrderFrozenFunds::getSecondOrderId, Function.identity()));
+
+        list.forEach(secondOrder ->{
+            if (secondOrder.getOrderStatus().equals("4")){
+                secondOrder.setServiceOnePrice(fundsMap.get(secondOrder.getSecondOrderId()).getVolunteerMoney().add(fundsMap.get(secondOrder.getSecondOrderId()).getScoreMoney()));
+            }else {
+                secondOrder.setServiceOnePrice(secondOrder.getServiceOnePrice().multiply(BigDecimal.valueOf(secondOrder.getSingleQuantity())).multiply(new BigDecimal("0.85")).setScale(2, RoundingMode.HALF_UP));
+            }
+        });
+       /* //遍历所有的订单,如果
+        if((4L)==orderStatus){
+
 
             // 遍历列表并设置serviceOnePrice
             list.forEach(volunteerOrdersVO -> {
@@ -79,7 +93,7 @@ public class volunteerOrderController extends BaseController {
         }else {
             //如果订单还没有完成 列表上显示的是默认一星的钱数
             list.forEach(volunteerOrdersVO -> volunteerOrdersVO.setServiceOnePrice(volunteerOrdersVO.getServiceOnePrice().multiply(BigDecimal.valueOf(volunteerOrdersVO.getSingleQuantity())).multiply(new BigDecimal("0.85")).setScale(2, RoundingMode.HALF_UP)));
-        }
+        }*/
         return getDataTable(list);
     }
 

+ 1 - 0
leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml

@@ -258,6 +258,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select lso.second_order_id,
                lso.main_order_id,
                lso.out_trade_no,
+               lso.volunteer_id,
         lso.volunteer_settlement_status,
         lso.work_date,
         lso.work_start_time,