Commit f6964eb5 authored by 周健威's avatar 周健威

修改代码

parent 480e7435
package com.xxfc.platform.order.pojo.order;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.order.entity.BaseOrder;
......@@ -12,6 +13,7 @@ import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
......@@ -53,4 +55,19 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
*/
@ApiModelProperty(hidden = true)
Integer useType = 1;
/**
* 开始时间
*/
private Date startDate;
/**
* 开始时间
*/
private Date endDate;
public void initDate() {
this.startDate = DateUtil.date(getStartTime());
this.endDate = DateUtil.date(getEndDate());
}
}
......@@ -40,10 +40,15 @@ public class RentVehiclePriceVO extends OrderPriceVO{
// private Integer originDayNum;
/**
* 免费天数
* 消耗的免费天数
*/
private Integer freeDayNum = 0;
/**
* 扣减天数
*/
private Integer cutDayNum = 0;
/**
* 免费价格
*/
......
......@@ -18,7 +18,7 @@ import java.math.BigDecimal;
*/
@Service
public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> {
public OrderItem initOrderItem(BigDecimal price, Integer num, String name, Integer goodId, ItemTypeEnum itemTypeEnum){
public OrderItem initOrderItem(BigDecimal price, Integer num, String name, Integer goodId, ItemTypeEnum itemTypeEnum, String detail){
return new OrderItem(){{
setMetaUnitPrice(price);
setUnitPrice(price);
......@@ -30,6 +30,11 @@ public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> {
setName(name);
setGoodId(goodId);
setType(itemTypeEnum.getCode());
setDetail(detail);
}};
}
public OrderItem initOrderItem(BigDecimal price, Integer num, String name, Integer goodId, ItemTypeEnum itemTypeEnum){
return initOrderItem(price, num, name, goodId, itemTypeEnum, null);
}
}
\ No newline at end of file
......@@ -38,6 +38,7 @@ import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
......@@ -227,6 +228,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
String couponDesc = "";
Integer vehicleDayNum = 0;
Integer freeDayNum = 0;
Integer cutDayNum = 0;
//当前用户
AppUserDTO dto = detail.getAppUserDTO();
......@@ -234,16 +236,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//车型信息
VehicleModel vehicleModel = vehicleFeign.get(detail.getModelId()).getData();
//itemDetail
List<OrderItemDetailDTO> orderItemDetailDTOS = CollUtil.newArrayList(new OrderItemDetailDTO() {{
setDay(20191015);
setPrice(BigDecimal.ONE);
}}, new OrderItemDetailDTO() {{
setDay(20191016);
setPrice(BigDecimal.TEN);
}});
detail.initDate();
List<VehicleModelCalendarPriceDTO> vmcpds = vehicleFeign.findVehicleModelCalendarPriceByDate(detail.getStartDate(), detail.getEndDate(), detail.getModelId(), dto.getUserid());
//orderItemDetailDTOS.parallelStream().
//设置Item
OrderItem vehicleOrderItem = orderItemBiz.initOrderItem(vehicleModel.getPrice(), detail.getDayNum(), vehicleModel.getName(), vehicleModel.getId(), ItemTypeEnum.VEHICLE_MODEL);
......@@ -253,20 +248,27 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(vehicleOrderItem);
//如果用户存在,并且为会员,并且车辆有优惠价
//如果用户存在,免费天数
if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) {
if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) {
throw new BaseException(ResultCode.PARAM_EPIRE_CODE, new HashSet<String>() {{
add("免费租车天数不存在或为0");
}});
}
if(detail.getDayNum() > dto.getRentFreeDays()) {
freeDayNum = dto.getRentFreeDays();
}else {
freeDayNum = detail.getDayNum();
//循环价格列表 获得对应消耗的免费天数
for(VehicleModelCalendarPriceDTO vmcpd : vmcpds) {
//如果新的相加消耗天数 大于 拥有天数
if(freeDayNum+ vmcpd.getFreeDays() > dto.getRentFreeDays()) {
//freeDayNum = dto.getRentFreeDays();
break;
}else {
freeDayNum += detail.getDayNum();
cutDayNum += 1;
}
}
vehicleOrderItem.setCutNum(freeDayNum);
vehicleDayNum = detail.getDayNum() - freeDayNum;
vehicleOrderItem.setCutNum(cutDayNum);
vehicleDayNum = detail.getDayNum() - cutDayNum;
detail.getOrder().setHasMemberRight(SYS_TRUE);
}else {
vehicleDayNum = detail.getDayNum();
......@@ -376,6 +378,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp.setVehicleDayNum(vehicleDayNum);
rvp.setFreeDayNum(freeDayNum);
rvp.setCutDayNum(cutDayNum);
rvp.setFreeAmount(vehicleOrderItem.getCutAmount());
rvp.setBuyVehicleAmount(vehicleOrderItem.getBuyAmount());
rvp.setRealVehicleAmount(vehicleOrderItem.getRealAmount());
......
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