Commit 5d37e499 authored by 周健威's avatar 周健威

修改代码

parent f6964eb5
......@@ -2,6 +2,7 @@ package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import javax.persistence.*;
......@@ -146,6 +147,20 @@ public class OrderItem implements Serializable {
return calculateAmount;
}
public BigDecimal calculateVehicleUnitPrice(BigDecimal vehicleAmount, BigDecimal metaVehicleAmount, Boolean isSetRealAmount) {
BigDecimal unitPrice = vehicleAmount.divide(new BigDecimal(getCalculateNum()+ ""), 2, RoundingMode.HALF_UP);
BigDecimal metaUnitPrice = metaVehicleAmount.divide(new BigDecimal(getCalculateNum()+ ""), 2, RoundingMode.HALF_UP);
if(isSetRealAmount) {
setRealAmount(vehicleAmount);
}
setUnitPrice(unitPrice);
setMetaUnitPrice(metaUnitPrice);
return unitPrice;
}
public BigDecimal getBuyAmount() {
return getUnitPrice().multiply(new BigDecimal(getBuyNum() + ""));
}
......
......@@ -27,7 +27,6 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.OrderItemDetailDTO;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
......@@ -222,6 +221,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
BigDecimal orderAmount = BigDecimal.ZERO;
BigDecimal goodsAmount = BigDecimal.ZERO;
BigDecimal vehicleAmount = BigDecimal.ZERO;
BigDecimal metaVehicleAmount = BigDecimal.ZERO;
BigDecimal driverAmount = BigDecimal.ZERO;
BigDecimal damageSafeAmount = BigDecimal.ZERO;
BigDecimal couponAmount = BigDecimal.ZERO;
......@@ -286,27 +286,37 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
:vehicleModel.getRentDiscountPrice().split(",");
HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
handleDiscountDTO.setRebate(100);
handleDiscountDTO.setModelAmount(vehicleModel.getPrice());
switch (MemberEnum.getByCode(dto.getMemberLevel())) {
case NORMAL:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
detail.getOrder().setHasMemberRight(SYS_TRUE);
break;
case GOLD:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD);
detail.getOrder().setHasMemberRight(SYS_TRUE);
break;
case DIAMOND:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
detail.getOrder().setHasMemberRight(SYS_TRUE);
break;
default:
break;
// HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
// handleDiscountDTO.setRebate(100);
// handleDiscountDTO.setModelAmount(vehicleModel.getPrice());
// switch (MemberEnum.getByCode(dto.getMemberLevel())) {
// case NORMAL:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// case GOLD:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// case DIAMOND:
// handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// default:
// break;
// }
detail.setRebate(dto.getDiscount());
// vehicleOrderItem.setUnitPrice(handleDiscountDTO.getModelAmount());
}
//计算价格
if(vehicleDayNum > 0) {
for(int i = cutDayNum; i < vmcpds.size(); i++) {
vehicleAmount.add(vmcpds.get(i).getPrice());
metaVehicleAmount.add(vmcpds.get(i).getPrice());
}
detail.setRebate(handleDiscountDTO.getRebate());
vehicleOrderItem.setUnitPrice(handleDiscountDTO.getModelAmount());
}else {
vehicleOrderItem.setUnitPrice(BigDecimal.ZERO);
}
//如果有使用会员权益或者优惠券,则设置订单已优惠
......@@ -314,8 +324,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail.getOrder().setHasDiscount(SYS_TRUE);
}
//单价 * (购买天数 - 减免天数)
vehicleAmount = vehicleAmount.add(vehicleOrderItem.getCalculateAmount(Boolean.TRUE));
//平均单价 = 总价 / 实际消费天数
vehicleOrderItem.calculateVehicleUnitPrice(vehicleAmount, metaVehicleAmount, Boolean.TRUE, Boolean.TRUE);
if(DRIVER_TYPE_COMPANY.equals(detail.getDriverType())) {
//计算司机费用
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment