diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java index 13e02f5..9ff6cae 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/controller/OrderController.java @@ -173,7 +173,21 @@ public class OrderController extends BaseController { @ApiOperation(value = "发起减免") @PostMapping("/costRelief") public AjaxResult costRelief(@RequestBody OrderInfoDto orderInfoDto) { - Integer i = orderService.submitCostRelief(orderInfoDto); + Integer i = orderService.inputCostRelief(orderInfoDto); + if (i > 0) { + return success("发起减免成功"); + } else { + return error("发起减免失败"); + } + } + + /** + * 发起减免 + */ + @ApiOperation(value = "确认减免") + @PostMapping("/confirmCostRelief") + public AjaxResult confirmCostRelief(@RequestBody OrderInfoDto orderInfoDto) { + Integer i = orderService.confirmCostRelief(orderInfoDto); if (i > 0) { return success("发起减免成功"); } else { diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java index 6c6fb92..64d212a 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailDto.java @@ -125,6 +125,9 @@ public class OrderDetailDto { @ApiModelProperty(value = "减免费用") private BigDecimal reliefCost; + @ApiModelProperty(value = "减免天数") + private Integer reliefDays; + @ApiModelProperty(value = "减免开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String reliefStartTime; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java index 09b9fc8..701de4c 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/mapper/OrderMapper.java @@ -43,6 +43,8 @@ public interface OrderMapper { int updateOrder4Relief(OrderDetailDto dto); + int confirmOrder4Relief(OrderDetailDto dto); + // int deleteCostReliefs(@Param("orderId") Integer orderId); // // int insertCostReliefs(@Param("list") List reliefList); diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java index 76053f9..0f97c33 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/OrderService.java @@ -19,7 +19,9 @@ public interface OrderService { OrderInfoDto getOrderDetailsById(OrderDetailDto dto) throws Exception; - Integer submitCostRelief(OrderInfoDto orderInfoDto); + Integer inputCostRelief(OrderInfoDto orderInfoDto); + + Integer confirmCostRelief(OrderInfoDto orderInfoDto); OrderInfoDto getAgreementByOrderId(String orderId); diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java index eb676e5..4cf82d6 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/service/impl/OrderServiceImpl.java @@ -189,7 +189,7 @@ public class OrderServiceImpl implements OrderService { } @Override - public Integer submitCostRelief(OrderInfoDto orderInfoDto) { + public Integer inputCostRelief(OrderInfoDto orderInfoDto) { List list = orderInfoDto.getDetailsList(); if (!CollectionUtils.isEmpty(list)) { for (OrderDetailDto dto : list) { @@ -199,6 +199,20 @@ public class OrderServiceImpl implements OrderService { return 0; } + @Override + public Integer confirmCostRelief(OrderInfoDto orderInfoDto) { + List list = orderMapper.getOrderDetailsByOrderId(orderInfoDto.getOrderId()); + if (!CollectionUtils.isEmpty(list)) { + for (OrderDetailDto dto : list) { + if (Objects.nonNull(dto.getReliefDays())) { + dto.setReliefCost(BigDecimal.ONE.multiply(dto.getDayLeasePrice()).multiply(new BigDecimal(dto.getReliefDays()))); + orderMapper.confirmOrder4Relief(dto); + } + } + } + return 0; + } + @Override public OrderInfoDto getAgreementByOrderId(String orderId) { return orderMapper.getAgreementByOrderId(orderId); diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml index 2d612ff..1e9fe4c 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/order/OrderInfoMapper.xml @@ -99,6 +99,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE order_id = #{orderId} and ma_id = #{maId} + + UPDATE + ma_order_details + set relief_cost = #{reliefCost} + update_time = now() + WHERE order_id = #{orderId} and ma_id = #{maId} + + @@ -285,7 +293,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" hh.id, hh.ma_id, hh.num, - mt.manage_type + mt.manage_type, + mt.lease_price as dayLeasePrice, + CASE + WHEN DATE(hh.relief_start_time) = DATE(hh.relief_end_time) THEN 1 + ELSE TIMESTAMPDIFF(DAY, hh.relief_start_time, hh.relief_end_time) + 1 + END AS reliefDays FROM ma_order_details hh LEFT JOIN ma_dev_info mdi ON hh.ma_id = mdi.ma_id