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 4f00c12..13e02f5 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 @@ -15,7 +15,6 @@ import com.bonus.material.contract.service.BmContractService; import com.bonus.material.device.domain.vo.DevInfoVo; import com.bonus.material.lease.domain.LeaseRepairRecord; import com.bonus.material.lease.mapper.LeaseRepairRecordMapper; -import com.bonus.material.order.domain.OrderDetailCostReliefDto; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; import com.bonus.material.order.mapper.OrderMapper; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailCostReliefDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailCostReliefDto.java deleted file mode 100644 index af97854..0000000 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderDetailCostReliefDto.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bonus.material.order.domain; - -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -@Data -public class OrderDetailCostReliefDto { - - @ApiModelProperty(value = "主键id") - private Integer id; - - @ApiModelProperty(value = "订单id") - private Integer orderId; - - @ApiModelProperty(value = "设备id") - private Integer maId; - - @ApiModelProperty(value = "减免开始时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private String reliefStartTime; - - @ApiModelProperty(value = "减免结束时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private String reliefEndTime; - -} 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 7ab7c4e..a342760 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 @@ -122,4 +122,12 @@ public class OrderDetailDto { @ApiModelProperty(value = "实际天数") private Integer dateDays; + @ApiModelProperty(value = "减免开始时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String reliefStartTime; + + @ApiModelProperty(value = "减免结束时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private String reliefEndTime; + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java index cf8b7a8..d156c95 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/order/domain/OrderInfoDto.java @@ -93,8 +93,6 @@ public class OrderInfoDto { private List detailsList; - private List reliefList; - @ApiModelProperty(value = "承租方公司名称") private String companyName; 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 e9dd9cd..b9d986c 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 @@ -2,7 +2,6 @@ package com.bonus.material.order.mapper; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.lease.domain.LeaseRepairRecord; -import com.bonus.material.order.domain.OrderDetailCostReliefDto; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; import org.apache.ibatis.annotations.Param; @@ -40,9 +39,11 @@ public interface OrderMapper { int updateOrder(LeaseRepairRecord leaseRepairRecord); - int deleteCostReliefs(@Param("orderId") Integer orderId); + int updateOrder4Relief(OrderDetailDto dto); - int insertCostReliefs(@Param("list") List reliefList); +// int deleteCostReliefs(@Param("orderId") Integer orderId); +// +// int insertCostReliefs(@Param("list") List reliefList); OrderInfoDto getAgreementByOrderId(String orderId); } 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 6778895..94a8726 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 @@ -1,6 +1,5 @@ package com.bonus.material.order.service; -import com.bonus.material.order.domain.OrderDetailCostReliefDto; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; 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 6e17a89..0c28774 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 @@ -5,11 +5,9 @@ import com.bonus.common.biz.enums.OrderStatusEnum; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.security.utils.SecurityUtils; -import com.bonus.material.device.domain.DevInfo; import com.bonus.material.lease.domain.LeaseRepair; import com.bonus.material.lease.domain.LeaseRepairRecord; import com.bonus.material.lease.mapper.LeaseRepairRecordMapper; -import com.bonus.material.order.domain.OrderDetailCostReliefDto; import com.bonus.material.order.domain.OrderDetailDto; import com.bonus.material.order.domain.OrderInfoDto; import com.bonus.material.order.mapper.OrderMapper; @@ -17,7 +15,6 @@ import com.bonus.material.order.service.OrderService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; - import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; @@ -107,12 +104,21 @@ public class OrderServiceImpl implements OrderService { list.add(orderDetailDto); } BigDecimal totalRentalPrice = BigDecimal.ZERO; + BigDecimal totalReliefPrice = BigDecimal.ZERO; for (OrderDetailDto orderDetailDto : list) { if (Objects.nonNull(orderDetailDto) && String.valueOf(OrderStatusEnum.ORDER_FINISHED.getStatus()).equals(orderDetailDto.getOrderStatus())) { - Date preOutBoundTime = sdf.parse(orderDetailDto.getPreOutboundTime()); - Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime()); - long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1; - totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days))); + if (Objects.nonNull(orderDetailDto.getPreOutboundTime()) && Objects.nonNull(orderDetailDto.getRentOverTime())) { + Date preOutBoundTime = sdf.parse(orderDetailDto.getPreOutboundTime()); + Date rentOverTime = sdf.parse(orderDetailDto.getRentOverTime()); + long days = DateUtils.daysBetween(preOutBoundTime, rentOverTime) + 1; + totalRentalPrice = totalRentalPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(days))); + } + if (Objects.nonNull(orderDetailDto.getReliefStartTime()) && Objects.nonNull(orderDetailDto.getReliefEndTime())) { + Date reliefStartTime = sdf.parse(orderDetailDto.getReliefStartTime()); + Date reliefEndTime = sdf.parse(orderDetailDto.getReliefEndTime()); + long reliefDays = DateUtils.daysBetween(reliefStartTime, reliefEndTime) + 1; + totalReliefPrice = totalReliefPrice.add(orderDetailDto.getDayLeasePrice().multiply(new BigDecimal(reliefDays))); + } } } dto.setTotalRentalPrice(totalRentalPrice); @@ -155,7 +161,7 @@ public class OrderServiceImpl implements OrderService { } dto.setTotalRepairScrapLossPrice(totalRepairScrapLossPrice); } - dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice)); + dto.setTotalRealPrice(BigDecimal.ZERO.add(totalRentalPrice).add(totalRepairScrapLossPrice).subtract(totalReliefPrice)); } return orderInfoDtos; } @@ -177,10 +183,11 @@ public class OrderServiceImpl implements OrderService { @Override public Integer submitCostRelief(OrderInfoDto orderInfoDto) { - List list = orderInfoDto.getReliefList(); + List list = orderInfoDto.getDetailsList(); if (!CollectionUtils.isEmpty(list)) { - orderMapper.deleteCostReliefs(list.get(0).getOrderId()); - return orderMapper.insertCostReliefs(orderInfoDto.getReliefList()); + for (OrderDetailDto dto : list) { + orderMapper.updateOrder4Relief(dto); + } } return 0; } 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 fc69813..f2f4f2b 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 @@ -90,6 +90,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + UPDATE + ma_order_details + set relief_start_time = #{reliefStartTime}, + relief_end_time = #{reliefEndTime}, + update_time = now() + WHERE order_id = #{orderId} and ma_id = #{maId} + + @@ -309,12 +318,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into ma_order_details_relief(order_id, ma_id, relief_begin_time, relief_end_time, create_time) + insert into ma_order_details_relief(order_id, ma_id, status, relief_begin_time, relief_end_time, create_time) values ( #{item.orderId}, #{item.maId}, + #{item.status}, #{item.reliefStartTime}, #{item.reliefEndTime}, now()