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

修改代码

parent f6964eb5
...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.entity; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
...@@ -146,6 +147,20 @@ public class OrderItem implements Serializable { ...@@ -146,6 +147,20 @@ public class OrderItem implements Serializable {
return calculateAmount; 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() { public BigDecimal getBuyAmount() {
return getUnitPrice().multiply(new BigDecimal(getBuyNum() + "")); return getUnitPrice().multiply(new BigDecimal(getBuyNum() + ""));
} }
......
...@@ -27,7 +27,6 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; ...@@ -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.OrderItem;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO; 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.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
...@@ -222,6 +221,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -222,6 +221,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
BigDecimal orderAmount = BigDecimal.ZERO; BigDecimal orderAmount = BigDecimal.ZERO;
BigDecimal goodsAmount = BigDecimal.ZERO; BigDecimal goodsAmount = BigDecimal.ZERO;
BigDecimal vehicleAmount = BigDecimal.ZERO; BigDecimal vehicleAmount = BigDecimal.ZERO;
BigDecimal metaVehicleAmount = BigDecimal.ZERO;
BigDecimal driverAmount = BigDecimal.ZERO; BigDecimal driverAmount = BigDecimal.ZERO;
BigDecimal damageSafeAmount = BigDecimal.ZERO; BigDecimal damageSafeAmount = BigDecimal.ZERO;
BigDecimal couponAmount = BigDecimal.ZERO; BigDecimal couponAmount = BigDecimal.ZERO;
...@@ -286,27 +286,37 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -286,27 +286,37 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice()) String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()} ?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
:vehicleModel.getRentDiscountPrice().split(","); :vehicleModel.getRentDiscountPrice().split(",");
HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO(); // HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
handleDiscountDTO.setRebate(100); // handleDiscountDTO.setRebate(100);
handleDiscountDTO.setModelAmount(vehicleModel.getPrice()); // handleDiscountDTO.setModelAmount(vehicleModel.getPrice());
switch (MemberEnum.getByCode(dto.getMemberLevel())) { // switch (MemberEnum.getByCode(dto.getMemberLevel())) {
case NORMAL: // case NORMAL:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL); // handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
detail.getOrder().setHasMemberRight(SYS_TRUE); // detail.getOrder().setHasMemberRight(SYS_TRUE);
break; // break;
case GOLD: // case GOLD:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD); // handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD);
detail.getOrder().setHasMemberRight(SYS_TRUE); // detail.getOrder().setHasMemberRight(SYS_TRUE);
break; // break;
case DIAMOND: // case DIAMOND:
handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND); // handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
detail.getOrder().setHasMemberRight(SYS_TRUE); // detail.getOrder().setHasMemberRight(SYS_TRUE);
break; // break;
default: // default:
break; // 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()); }else {
vehicleOrderItem.setUnitPrice(handleDiscountDTO.getModelAmount()); vehicleOrderItem.setUnitPrice(BigDecimal.ZERO);
} }
//如果有使用会员权益或者优惠券,则设置订单已优惠 //如果有使用会员权益或者优惠券,则设置订单已优惠
...@@ -314,8 +324,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -314,8 +324,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail.getOrder().setHasDiscount(SYS_TRUE); 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())) { 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