Browse Source

小订单的总价以及订单实际的开始和结束时间

LiRong 4 days ago
parent
commit
6188608ddc

+ 2 - 2
leromro-core/src/main/java/com/leromro/core/controller/OrgStatDataController.java

@@ -80,7 +80,7 @@ public class OrgStatDataController extends BaseController
         //取消单量
         orderSummaryVO.setOrderCancelTotal((int) list.stream().filter(item ->  "4".equals(item.getOrderStatus())).count());
         //订单金额
-        orderSummaryVO.setOrderTotalAmount(BigDecimal.valueOf(list.stream().mapToDouble(item -> item.getServiceOnePrice().doubleValue()).sum()));
+        orderSummaryVO.setOrderTotalAmount(BigDecimal.valueOf(list.stream().mapToDouble(item -> item.getServiceTotalPrice().doubleValue()).sum()));
         //完成单量
         orderSummaryVO.setOrderFinishTotal((int) list.stream().filter(item ->  "2".equals(item.getOrderStatus())).count());
         return R.ok(orderSummaryVO);
@@ -153,7 +153,7 @@ public class OrgStatDataController extends BaseController
         orgRankVO.setOrgOrderVos(orgOrderVoList);
 
         /**金额排序*/
-        Map<String, BigDecimal> districtCodeMapAmount = list.stream().filter(item -> StrUtil.isNotEmpty(item.getDistrictCode())).collect(Collectors.groupingBy(SecondOrder::getDistrictCode, Collectors.mapping(SecondOrder::getServiceOnePrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
+        Map<String, BigDecimal> districtCodeMapAmount = list.stream().filter(item -> StrUtil.isNotEmpty(item.getDistrictCode())).collect(Collectors.groupingBy(SecondOrder::getDistrictCode, Collectors.mapping(SecondOrder::getServiceTotalPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
         List<Map.Entry<String, BigDecimal>> districtCodeMapAmountList = districtCodeMapAmount.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).collect(Collectors.toList());
         List<OrgRankVO.OrgAmountVo> orgAmountVos = new ArrayList<>();
         for (Map.Entry<String, BigDecimal> entry : districtCodeMapAmountList) {

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

@@ -78,7 +78,7 @@ public class volunteerOrderController extends BaseController {
     @GetMapping("/getTimesByDate/{secondOrderId}")
     public AjaxResult volunteerStartWork(@PathVariable Long secondOrderId){
         UpdateWrapper<SecondOrder> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("second_order_id",secondOrderId).set("order_status","3").set("update_time", DateTimeUtil.getNowTime());
+        updateWrapper.eq("second_order_id",secondOrderId).set("order_status","3").set("update_time", DateTimeUtil.getNowTime()).set("service_start_time",DateTimeUtil.getNowTime());
         secondOrderService.update(updateWrapper);
         //订单开始 根据secondOrderId修改主订单状态 修改为3
         mainOrderService.startService(secondOrderId);

+ 5 - 0
leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java

@@ -51,6 +51,11 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("单价")
     private BigDecimal serviceOnePrice;
 
+    /** 服务单价 */
+    @Excel(name = "小订单总价")
+    @ApiModelProperty("小订单总价")
+    private BigDecimal serviceTotalPrice;
+
     /** 志愿者id */
     @Excel(name = "志愿者id")
     @ApiModelProperty("志愿者id")

+ 1 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -216,7 +216,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         orders.setUserId(userId);
         orders.setCreateTime(DateTimeUtil.getNowTime());
         orders.setServiceOnePrice(serviceOnePrice);
-        orders.setServiceTotalPrice(serviceOnePrice.multiply(BigDecimal.valueOf(orders.getTotalTimes())));
+        orders.setServiceTotalPrice(serviceOnePrice.multiply(BigDecimal.valueOf(orders.getSingleQuantity())).multiply(BigDecimal.valueOf(orders.getTotalTimes())));
         orders.setServiceDuration(businessDurationMin);
         //设置服务的开始与结束日期 以及开始与结束时间
         orders.setServiceStartDate(workDateList.get(0).getWorkDate());

+ 1 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/OrderRefundServiceImpl.java

@@ -405,7 +405,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
         List<PlatformFinance> platformFinanceList = secondOrderList.stream().map(secondOrder -> {
             new PlatformFinance();
             return PlatformFinance.builder()
-                    .changeMoney(secondOrder.getServiceOnePrice().multiply(BigDecimal.valueOf(secondOrder.getSingleQuantity()))).changeType(changeType).moneyType(moneyType).sourceType(sourceType).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
+                    .changeMoney(secondOrder.getServiceTotalPrice()).changeType(changeType).moneyType(moneyType).sourceType(sourceType).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
                     .build();
         }).collect(Collectors.toList());
         platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);

+ 6 - 5
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -58,15 +58,16 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         QueryWrapper<SecondOrder> SecondOrderWrapper = new QueryWrapper<SecondOrder>().eq("second_order_id", secondOrderId);
         SecondOrder secondOrderInfo = secondOrdersMapper.selectList(SecondOrderWrapper).get(0);
        // SecondOrder secondOrderInfo = secondOrdersMapper.selectById(secondOrderId);
-        BigDecimal onePrice = secondOrderInfo.getServiceOnePrice();
+        //BigDecimal onePrice = secondOrderInfo.getServiceOnePrice();
+        BigDecimal oneServiceTotalPrice = secondOrderInfo.getServiceTotalPrice();
         //默认平台佣金以及志愿者到手钱数
-        BigDecimal volunteerMoney = onePrice.multiply(BigDecimal.valueOf(secondOrderInfo.getSingleQuantity())).multiply(new BigDecimal("0.85"));
-        BigDecimal platformBrokerage = onePrice.multiply(BigDecimal.valueOf(secondOrderInfo.getSingleQuantity())).subtract(volunteerMoney);
+        BigDecimal volunteerMoney = oneServiceTotalPrice.multiply(new BigDecimal("0.85"));
+        BigDecimal platformBrokerage = oneServiceTotalPrice.subtract(volunteerMoney);
         //计算结束冻结时间 默认开始时间+3天
         DateTime frozenStartTime = DateTimeUtil.getNowTime1();
         Date frozenEndTime = DateUtils.addDays(frozenStartTime, 3);
         OrderFrozenFunds orderFrozenFunds = OrderFrozenFunds.builder().volunteerMoney(volunteerMoney)
-                .platformBrokerage(platformBrokerage).scoreMoney(BigDecimal.valueOf(0.00)).secondOrderMoney(onePrice)
+                .platformBrokerage(platformBrokerage).scoreMoney(BigDecimal.valueOf(0.00)).secondOrderMoney(oneServiceTotalPrice)
                 .status(0).secondOrderId(secondOrder.getSecondOrderId()).volunteerId(secondOrder.getVolunteerId())
                 .frozenStartTime(frozenStartTime).frozenEndTime(frozenEndTime).build();
         //插入冻结资金表
@@ -77,7 +78,7 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         }
         UpdateWrapper<SecondOrder> updateWrapper = new UpdateWrapper<>();
         updateWrapper.eq("second_order_id",secondOrder.getSecondOrderId()).set("order_status",4)
-                .set("volunteer_review",secondOrder.getVolunteerReview()).set("volunteer_picture",secondOrder.getVolunteerPicture()).set("update_time",DateTimeUtil.getNowTime());
+                .set("volunteer_review",secondOrder.getVolunteerReview()).set("volunteer_picture",secondOrder.getVolunteerPicture()).set("update_time",DateTimeUtil.getNowTime()).set("service_end_time",DateTimeUtil.getNowTime());
         secondOrdersMapper.update(null,updateWrapper);
         //更新志愿者账户中的冻结资金 =  之前的余额 + 志愿者 (先按照默认的比例,把默认的钱数,放入冻结资金表中)
         QueryWrapper<VolunteerAccount> queryWrapper = new QueryWrapper<>();