Commit f5385f2f authored by libin's avatar libin

Merge branch 'holiday-price' into dev

parents 79886bd9 0bcc34e1
...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign; ...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
...@@ -32,6 +33,7 @@ import java.util.Objects; ...@@ -32,6 +33,7 @@ import java.util.Objects;
@Aspect @Aspect
@Component @Component
@ConditionalOnClass(value = UserFeign.class) @ConditionalOnClass(value = UserFeign.class)
@Slf4j
public class TokenAop { public class TokenAop {
...@@ -54,7 +56,7 @@ public class TokenAop { ...@@ -54,7 +56,7 @@ public class TokenAop {
public Object token(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{ public Object token(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
String token = request.getHeader(tokenHeader); String token = request.getHeader(tokenHeader);
log.info("token【{}】",token);
Object[] args = proceedingJoinPoint.getArgs(); Object[] args = proceedingJoinPoint.getArgs();
if (ArrayUtil.isEmpty(args)){ if (ArrayUtil.isEmpty(args)){
//没有参数直接返回 //没有参数直接返回
...@@ -77,6 +79,7 @@ public class TokenAop { ...@@ -77,6 +79,7 @@ public class TokenAop {
if (Objects.isNull(userDTO)){ if (Objects.isNull(userDTO)){
userDTO = new AppUserDTO(); userDTO = new AppUserDTO();
} }
log.info("token查询app用户【{}】",userDTO);
args[i]= userDTO; args[i]= userDTO;
break; break;
} }
......
...@@ -4,10 +4,13 @@ import java.io.Serializable; ...@@ -4,10 +4,13 @@ import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.*; import javax.persistence.*;
import cn.hutool.json.JSONUtil;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum; import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType; import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -147,20 +150,6 @@ public class OrderItem implements Serializable { ...@@ -147,20 +150,6 @@ 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() + ""));
} }
......
package com.xxfc.platform.order.pojo.calculate; package com.xxfc.platform.order.pojo.calculate;
import cn.hutool.core.collection.CollUtil;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data; import lombok.Data;
import org.assertj.core.util.Lists; import org.assertj.core.util.Lists;
...@@ -69,4 +71,15 @@ public class InProgressVO { ...@@ -69,4 +71,15 @@ public class InProgressVO {
String violateDesc = ""; String violateDesc = "";
/**
* 使用(消耗)详情列表
*/
List<VMCalendarPriceCostDTO> useAmountList = CollUtil.newArrayList();
/**
* 延期 详情列表
*/
List<VMCalendarPriceCostDTO> overAmountList = CollUtil.newArrayList();
} }
package com.xxfc.platform.order.pojo.order;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
@Data
public class VehicleItemDTO extends OrderItem {
public static final int topNum = 2;
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 getCutAmount() {
List<VehicleModelCalendarPriceDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){
return super.getCutAmount();
}
BigDecimal cutAmount = BigDecimal.ZERO;
for(int i = 0; i < getCutNum(); i++) {
cutAmount = cutAmount.add(vmcpds.get(i).getPrice());
}
return cutAmount;
}
public List<VehicleModelCalendarPriceDTO> getVehicleDetail() {
if(StrUtil.isBlank(getDetail())) {
return CollUtil.newArrayList();
}
return JSONUtil.toList(JSONUtil.parseArray(getDetail()), VehicleModelCalendarPriceDTO.class);
}
public BigDecimal getBuyAmount() {
List<VehicleModelCalendarPriceDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){
return super.getBuyAmount();
}
BigDecimal buyAmount = BigDecimal.ZERO;
for(int i = 0; i < getBuyNum(); i++) {
buyAmount = buyAmount.add(vmcpds.get(i).getPrice());
}
return buyAmount;
}
public BigDecimal getTopAmount(Integer useDays) {
List<VehicleModelCalendarPriceDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){
return getUnitPrice().multiply(new BigDecimal(topNum+ ""));
}
BigDecimal topAmount = BigDecimal.ZERO;
for(int i = useDays; i < getTotalNum(); i++) {
topAmount = topAmount.add(vmcpds.get(i).getPrice());
}
//未用天数 小于 topNum
if(getTotalNum() - useDays < topNum) {
Integer residue = getTotalNum() - useDays;
topAmount = topAmount.add(vmcpds.get(vmcpds.size() - 1).getPrice().multiply(new BigDecimal((topNum - residue) + "")));
}
return topAmount;
}
public BigDecimal getUsedAmount(Integer useDays) {
return getUnitPrice().multiply(new BigDecimal(useDays+ ""));
}
public BigDecimal getFreeAmount(Integer freeDays) {
List<VehicleModelCalendarPriceDTO> vmcpds = getVehicleDetail();
if(CollUtil.isEmpty(vmcpds)){
return getUnitPrice().multiply(new BigDecimal(freeDays+ ""));
}
BigDecimal freeAmount = BigDecimal.ZERO;
for(int i = 0; i < getBuyNum(); i++) {
freeAmount = freeAmount.add(vmcpds.get(i).getPrice());
}
return freeAmount;
}
}
package com.xxfc.platform.order.pojo.price; package com.xxfc.platform.order.pojo.price;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@Data @Data
public class CancelStartedVO extends CostDetailExtend { public class CancelStartedVO extends CostDetailExtend {
...@@ -65,4 +67,11 @@ public class CancelStartedVO extends CostDetailExtend { ...@@ -65,4 +67,11 @@ public class CancelStartedVO extends CostDetailExtend {
* 赔偿金 * 赔偿金
*/ */
private BigDecimal damagesAmount = BigDecimal.ZERO; private BigDecimal damagesAmount = BigDecimal.ZERO;
/**
* 使用(消耗)详情列表
*/
List<VMCalendarPriceCostDTO> useAmountList;
//= CollUtil.newArrayList();
} }
...@@ -23,6 +23,7 @@ import com.xxfc.platform.order.pojo.account.OrderAccountDeduction; ...@@ -23,6 +23,7 @@ import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail; import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO; import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO; import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO; import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.order.pojo.price.CostDetailExtend; import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
...@@ -346,7 +347,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -346,7 +347,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
setType(crosstownTypeEnum); setType(crosstownTypeEnum);
}}); }});
OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{ VehicleItemDTO vehicleItemDTO = (VehicleItemDTO) orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode()); setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(orderMQDTO.getId()); setOrderId(orderMQDTO.getId());
}}); }});
...@@ -361,7 +362,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -361,7 +362,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
} }
OrderAccountDetail oad = new OrderAccountDetail(); OrderAccountDetail oad = new OrderAccountDetail();
InProgressVO inProgressVO = orderCalculateBiz.calculateOrderComplete(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), oad, orderItem, orderMQDTO.getOrderRentVehicleDetail().getUsedDay(), Boolean.FALSE); InProgressVO inProgressVO = orderCalculateBiz.calculateOrderComplete(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), oad, vehicleItemDTO, orderMQDTO.getOrderRentVehicleDetail().getUsedDay(), Boolean.FALSE);
//设置定损金额 //设置定损金额
String handleDedRefundDesc = ""; String handleDedRefundDesc = "";
...@@ -427,7 +428,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -427,7 +428,7 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
//生成额外的费用明细 //生成额外的费用明细
csv.setConsumeAmount(inProgressVO.getConsumeAmount()); csv.setConsumeAmount(inProgressVO.getConsumeAmount());
csv.setModelAmount(orderItem.getUnitPrice()); csv.setModelAmount(vehicleItemDTO.getUnitPrice());
csv.setUsedAmount(inProgressVO.getUsedAmount()); csv.setUsedAmount(inProgressVO.getUsedAmount());
csv.setUsedDayNum(inProgressVO.getUsedDays()); csv.setUsedDayNum(inProgressVO.getUsedDays());
csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays()); csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays());
......
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum; import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderItem; import com.xxfc.platform.order.entity.OrderItem;
...@@ -8,6 +14,8 @@ import com.xxfc.platform.order.mapper.OrderItemMapper; ...@@ -8,6 +14,8 @@ import com.xxfc.platform.order.mapper.OrderItemMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/** /**
* 购房车提交表单 * 购房车提交表单
...@@ -18,6 +26,10 @@ import java.math.BigDecimal; ...@@ -18,6 +26,10 @@ import java.math.BigDecimal;
*/ */
@Service @Service
public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> { public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> {
@Autowired
VehicleFeign vehicleFeign;
public OrderItem initOrderItem(BigDecimal price, Integer num, String name, Integer goodId, ItemTypeEnum itemTypeEnum, String detail){ public OrderItem initOrderItem(BigDecimal price, Integer num, String name, Integer goodId, ItemTypeEnum itemTypeEnum, String detail){
return new OrderItem(){{ return new OrderItem(){{
setMetaUnitPrice(price); setMetaUnitPrice(price);
...@@ -37,4 +49,17 @@ public class OrderItemBiz extends BaseBiz<OrderItemMapper,OrderItem> { ...@@ -37,4 +49,17 @@ 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){
return initOrderItem(price, num, name, goodId, itemTypeEnum, null); return initOrderItem(price, num, name, goodId, itemTypeEnum, null);
} }
public List<VMCalendarPriceCostDTO> getOverAmountList(Date endDate, Integer overDays, Integer modelId, Integer userId) {
List<VMCalendarPriceCostDTO> overAmountList = CollUtil.newArrayList();
//根据延期的天数算出 对应的日期价格
Date overStart = DateUtil.offsetDay(endDate, 1);
Date overEnd = DateUtil.offsetDay(endDate, overDays);
List<VehicleModelCalendarPriceDTO> overlist = vehicleFeign.findVehicleModelCalendarPriceByDate(overStart, overEnd, modelId, userId);
for(VehicleModelCalendarPriceDTO vmcpd : overlist) {
overAmountList.add((VMCalendarPriceCostDTO) vmcpd);
}
return overAmountList;
}
} }
\ No newline at end of file
package com.xxfc.platform.order.biz.inner; package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.xxfc.platform.activity.entity.Coupon; import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
...@@ -16,14 +21,19 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail; ...@@ -16,14 +21,19 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction; import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail; import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO; import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.dto.order.VMCalendarPriceCostDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists; import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -58,42 +68,52 @@ public class OrderCalculateBiz { ...@@ -58,42 +68,52 @@ public class OrderCalculateBiz {
@Autowired @Autowired
OrderAccountBiz orderAccountBiz; OrderAccountBiz orderAccountBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad, Boolean isCancel) { public InProgressVO inProgressCalculate(BaseOrder baseOrder, VehicleItemDTO vehicleItemDTO, Integer freeDays, Integer useDays, OrderAccountDetail oad, Boolean isCancel) {
BigDecimal refundAmount = BigDecimal.ZERO; BigDecimal refundAmount = BigDecimal.ZERO;
BigDecimal consumeAmount = BigDecimal.ZERO; BigDecimal consumeAmount = BigDecimal.ZERO;
//融入日期价格
List<VehicleModelCalendarPriceDTO> vmcpds = JSONUtil.toList(JSONUtil.parseArray(vehicleItemDTO.getDetail()), VehicleModelCalendarPriceDTO.class);
List<VMCalendarPriceCostDTO> useAmountList = CollUtil.newArrayList();
//商品真实价格 //商品真实价格
BigDecimal goodsRealAmount = baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()); BigDecimal goodsRealAmount = baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount());
//其他消费金额 = 商品真实价格 - 主要商品真实价格 = (商品价格 - 优惠价格)- 主要商品真实价格 //其他消费金额 = 商品真实价格 - 主要商品真实价格 = (商品价格 - 优惠价格)- 主要商品真实价格
BigDecimal otherItemRealAmount = goodsRealAmount.subtract(orderItem.getRealAmount()); BigDecimal otherItemRealAmount = goodsRealAmount.subtract(vehicleItemDTO.getRealAmount());
InProgressVO inProgressVO = new InProgressVO(); InProgressVO inProgressVO = new InProgressVO();
inProgressVO.setUsedDays(useDays); inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ ""))); inProgressVO.setUsedAmount(vehicleItemDTO.getUsedAmount(useDays));
//计算:剩余免费天数 //计算:剩余免费天数
Integer backFreeDays = freeDays - useDays; Integer backFreeDays = freeDays - useDays;
//待返还的免费天数 //待返还的免费天数
List<String> backCouponNos = Lists.newArrayList(); List<String> backCouponNos = Lists.newArrayList();
//剩余天数 //剩余天数
Integer residueDays = orderItem.getTotalNum() - useDays; Integer residueDays = vehicleItemDTO.getTotalNum() - useDays;
//过了出发时间取消订单 ,优先使用免费天数 //过了出发时间取消订单 ,优先使用免费天数
if(backFreeDays <= 0) { if(backFreeDays <= 0) {
//设置免费天数 //设置免费天数
inProgressVO.setUsedfreeDays(freeDays); inProgressVO.setUsedfreeDays(freeDays);
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(freeDays+ ""))); inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(freeDays));
//消费天数 //消费天数
Integer consumeDays = useDays - freeDays; Integer consumeDays = useDays - freeDays;
//如果使用天数 大于 总天数 //如果使用天数 大于 总天数
if(useDays > orderItem.getTotalNum()) { if(useDays > vehicleItemDTO.getTotalNum()) {
//消费天数 //消费天数
consumeDays = orderItem.getTotalNum() - freeDays; consumeDays = vehicleItemDTO.getTotalNum() - freeDays;
} }
//需要扣除订单费用 //需要扣除订单费用
//判断是否达到优惠券条件 不符合则返还优惠券 //判断是否达到优惠券条件 不符合则返还优惠券
//计算使用天数的费用 //计算使用天数的费用
consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+"")); //融入日期价格
//consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
for(int i = freeDays; i < (freeDays+ consumeDays); i++) {
consumeAmount = consumeAmount.add(vmcpds.get(i).getPrice());
}
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) { if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
List<BigDecimal> couponAmounts = Lists.newArrayList(); List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) { for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
...@@ -119,12 +139,19 @@ public class OrderCalculateBiz { ...@@ -119,12 +139,19 @@ public class OrderCalculateBiz {
}else { }else {
//设置免费天数 //设置免费天数
inProgressVO.setUsedfreeDays(useDays); inProgressVO.setUsedfreeDays(useDays);
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ ""))); inProgressVO.setUsedFreeDaysAmount(vehicleItemDTO.getFreeAmount(useDays));
//返回剩余免费天数,返回优惠券,订单款 //返回剩余免费天数,返回优惠券,订单款
//修改bug,不需要提前加, 已在handleConsumeAmount方法中添加 //修改bug,不需要提前加, 已在handleConsumeAmount方法中添加
// refundAmount = refundAmount.add(goodsRealAmount); // refundAmount = refundAmount.add(goodsRealAmount);
inProgressVO.setBackFreeDays(backFreeDays); // inProgressVO.setBackFreeDays(backFreeDays);
//融入日期价格
Integer trueBackFreeDays = 0;
for(int i = (freeDays - backFreeDays); i < freeDays; i++) {
trueBackFreeDays += vmcpds.get(i).getFreeDays();
}
inProgressVO.setBackFreeDays(trueBackFreeDays);
//返回优惠券 //返回优惠券
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) { if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
...@@ -149,33 +176,52 @@ public class OrderCalculateBiz { ...@@ -149,33 +176,52 @@ public class OrderCalculateBiz {
//计算违约金 //计算违约金
//residueDays * 身份价格 //residueDays * 身份价格
if(residueDays > 0) { if(residueDays > 0) {
String violateDesc = StrUtil.format("{}元/天 x{}天", orderItem.getUnitPrice().toString(), residueDays); //设置消耗费用列表
for(int i = 0; i < useDays; i++) {
useAmountList.add((VMCalendarPriceCostDTO) vmcpds.get(i));
}
//"{}元/天 x{}天"
BigDecimal residueAmount = BigDecimal.ZERO;
for(int i = useDays; i < vehicleItemDTO.getTotalNum(); i++) {
residueAmount = residueAmount.add(vmcpds.get(i).getPrice());
}
String violateDesc = StrUtil.format("{}元", residueAmount.toString());
if(residueDays > 2) { if(residueDays > 2) {
residueDays = 2; residueDays = 2;
violateDesc += StrUtil.format("(封顶{}元)", orderItem.getUnitPrice().multiply(new BigDecimal((residueDays + "")))); residueAmount = BigDecimal.ZERO;
for(int i = useDays; i < (useDays + residueDays + 1); i++) {
residueAmount = residueAmount.add(vmcpds.get(i).getPrice());
} }
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal((residueDays + "")))); violateDesc += StrUtil.format("(封顶{}元)", residueAmount);
}
inProgressVO.setViolateAmount(residueAmount);
inProgressVO.setViolateDesc(" 提前还车违约金:"+ violateDesc); inProgressVO.setViolateDesc(" 提前还车违约金:"+ violateDesc);
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), violateDesc, DeductionTypeEnum.VIOLATE_ADVANCE, OrderAccountDeduction.ORIGIN_DEPOSIT); OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), violateDesc, DeductionTypeEnum.VIOLATE_ADVANCE, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction); oad.getDeductions().add(violateDeduction);
}else if(residueDays < 0 && !isCancel){ }else if(residueDays < 0 && !isCancel){
//设置消耗费用列表
useAmountList.addAll(Convert.toList(VMCalendarPriceCostDTO.class, vmcpds));
//如果订单 出发中 或者 已完成 或者定损中 //如果订单 出发中 或者 已完成 或者定损中
if(OrderStatusEnum.ORDER_WAIT.getCode().equals(baseOrder.getStatus()) || if(OrderStatusEnum.ORDER_WAIT.getCode().equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FINISH.getCode().equals(baseOrder.getStatus()) || OrderStatusEnum.ORDER_FINISH.getCode().equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FIXED_LOSS.getCode().equals(baseOrder.getStatus())) { OrderStatusEnum.ORDER_FIXED_LOSS.getCode().equals(baseOrder.getStatus())) {
Integer overDays = 0 - residueDays; Integer overDays = 0 - residueDays;
String violateDesc = StrUtil.format("({}元/天 x200%) x{}天", orderItem.getUnitPrice().toString(), overDays); String violateDesc = StrUtil.format(" 延迟{}天", overDays);
// if(overDays > 2) {
// overDays = 2; List<VMCalendarPriceCostDTO> overAmountList = orderItemBiz.getOverAmountList(vmcpds.get(vmcpds.size() - 1).getDate(), overDays, vehicleItemDTO.getGoodId(), baseOrder.getUserId());
// violateDesc += StrUtil.format("(封顶{}元)", orderItem.getUnitPrice().multiply(new BigDecimal((residueDays + "")))); BigDecimal overAmount = overAmountList.parallelStream()
// } .map(VMCalendarPriceCostDTO::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add).add(new BigDecimal(2+ ""));
//超过的天数 * 200% * 单价
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal(2+ "")).multiply(new BigDecimal((overDays + "")))); //超过的天数 价格 * 200%
inProgressVO.setViolateAmount(overAmount);
inProgressVO.setViolateDesc(" 延期还车违约金:"+ violateDesc); inProgressVO.setViolateDesc(" 延期还车违约金:"+ violateDesc);
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), violateDesc, DeductionTypeEnum.VIOLATE_DELAY, OrderAccountDeduction.ORIGIN_DEPOSIT); OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), violateDesc, DeductionTypeEnum.VIOLATE_DELAY, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction); oad.getDeductions().add(violateDeduction);
} }
} }
//设置消耗费用列表
inProgressVO.setUseAmountList(useAmountList);
return inProgressVO; return inProgressVO;
} }
...@@ -199,16 +245,16 @@ public class OrderCalculateBiz { ...@@ -199,16 +245,16 @@ public class OrderCalculateBiz {
} }
public InProgressVO inProgressCalculate(BaseOrder baseOrder, Integer useDays) { public InProgressVO inProgressCalculate(BaseOrder baseOrder, Integer useDays) {
OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{ VehicleItemDTO vehicleItemDTO = (VehicleItemDTO) orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode()); setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum(); Integer freeDays = (null == vehicleItemDTO.getCutNum())?0 :vehicleItemDTO.getCutNum();
return inProgressCalculate(baseOrder, orderItem, freeDays, useDays, new OrderAccountDetail(), Boolean.FALSE); return inProgressCalculate(baseOrder, vehicleItemDTO, freeDays, useDays, new OrderAccountDetail(), Boolean.FALSE);
} }
public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, OrderItem orderItem, Integer useDays, Boolean isCancel) { public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, VehicleItemDTO vehicleItemDTO, Integer useDays, Boolean isCancel) {
InProgressVO inProgressVO = inProgressCalculate(baseOrder, orderItem, orvd.getFreeDays(), useDays, oad, isCancel); InProgressVO inProgressVO = inProgressCalculate(baseOrder, vehicleItemDTO, vehicleItemDTO.getCutNum(), useDays, oad, isCancel);
//定金 - (额外消费金额 + 违约金) //定金 - (额外消费金额 + 违约金)
oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount().add(inProgressVO.getViolateAmount()))); oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount().add(inProgressVO.getViolateAmount())));
......
...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
...@@ -18,6 +17,7 @@ import com.xxfc.platform.order.pojo.account.OrderAccountDeduction; ...@@ -18,6 +17,7 @@ import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail; import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO; import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO; import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
import com.xxfc.platform.order.pojo.price.CancelNoStartVO; import com.xxfc.platform.order.pojo.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO; import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.order.pojo.price.CostDetailExtend; import com.xxfc.platform.order.pojo.price.CostDetailExtend;
...@@ -139,7 +139,7 @@ public class OrderCancelBiz { ...@@ -139,7 +139,7 @@ public class OrderCancelBiz {
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{ VehicleItemDTO vehicleItemDTO = (VehicleItemDTO) orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode()); setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
...@@ -156,7 +156,7 @@ public class OrderCancelBiz { ...@@ -156,7 +156,7 @@ public class OrderCancelBiz {
log.info("useTimeLag {}", new BigDecimal(useTimeLag + "")); log.info("useTimeLag {}", new BigDecimal(useTimeLag + ""));
log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000)+ "")); log.info("divide {}", new BigDecimal((24 * 60 * 60 * 1000)+ ""));
Integer useDays = new BigDecimal(useTimeLag + "").divide(new BigDecimal((24 * 60 * 60 * 1000)+ ""), 0, RoundingMode.UP).intValue(); Integer useDays = new BigDecimal(useTimeLag + "").divide(new BigDecimal((24 * 60 * 60 * 1000)+ ""), 0, RoundingMode.UP).intValue();
inProgressVO = orderCalculateBiz.calculateOrderComplete(baseOrder, orvd, oad, orderItem, useDays, Boolean.TRUE); inProgressVO = orderCalculateBiz.calculateOrderComplete(baseOrder, orvd, oad, vehicleItemDTO, useDays, Boolean.TRUE);
//结合 //结合
//退款子流程: 订单基础,退款描述,退款金额 //退款子流程: 订单基础,退款描述,退款金额
orderAccountBiz.refundSubProcess(baseOrder, "", baseOrder.getRealAmount().subtract(orvd.getDeposit()), oad.getDepositAmount().add(oad.getOrderAmount()), AccountTypeEnum.OUT_ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode(), oad); orderAccountBiz.refundSubProcess(baseOrder, "", baseOrder.getRealAmount().subtract(orvd.getDeposit()), oad.getDepositAmount().add(oad.getOrderAmount()), AccountTypeEnum.OUT_ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode(), oad);
...@@ -166,7 +166,7 @@ public class OrderCancelBiz { ...@@ -166,7 +166,7 @@ public class OrderCancelBiz {
CancelStartedVO csv = new CancelStartedVO(); CancelStartedVO csv = new CancelStartedVO();
csv.setType(CostDetailExtend.CANCEL_STARTED); csv.setType(CostDetailExtend.CANCEL_STARTED);
csv.setConsumeAmount(inProgressVO.getConsumeAmount()); csv.setConsumeAmount(inProgressVO.getConsumeAmount());
csv.setModelAmount(orderItem.getUnitPrice()); csv.setModelAmount(vehicleItemDTO.getUnitPrice());
csv.setUsedAmount(inProgressVO.getUsedAmount()); csv.setUsedAmount(inProgressVO.getUsedAmount());
csv.setUsedDayNum(inProgressVO.getUsedDays()); csv.setUsedDayNum(inProgressVO.getUsedDays());
csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays()); csv.setUsedfreeDayNum(inProgressVO.getUsedfreeDays());
...@@ -174,6 +174,7 @@ public class OrderCancelBiz { ...@@ -174,6 +174,7 @@ public class OrderCancelBiz {
csv.setHadConpon((StrUtil.isNotBlank(baseOrder.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE)); csv.setHadConpon((StrUtil.isNotBlank(baseOrder.getCouponTickerNos())? Boolean.TRUE: Boolean.FALSE));
csv.setViolateAmount(BigDecimal.ZERO); csv.setViolateAmount(BigDecimal.ZERO);
csv.setViolateDesc(""); csv.setViolateDesc("");
csv.setUseAmountList(inProgressVO.getUseAmountList());
//如果有扣款项,则生成额外的费用明细 //如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) { if(oad.getDeductions().size() > 0) {
...@@ -195,13 +196,10 @@ public class OrderCancelBiz { ...@@ -195,13 +196,10 @@ public class OrderCancelBiz {
orderRentVehicleBiz.updateSelectiveByIdRe(orvd); orderRentVehicleBiz.updateSelectiveByIdRe(orvd);
}else { }else {
// //没到出车时间 // //没到出车时间
// //判断是否使用免费天数,并且进行扣款
//违约金封顶 租车身份价 * 2天
BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal(2+ ""));
//退款流程 //退款流程
orderAccountBiz.rentRefundProcessCancel(baseOrder, BigDecimal.ZERO, timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), orderItem.getBuyAmount(), oad, topAmount); //违约金封顶 租车身份价 * 2天
orderAccountBiz.rentRefundProcessCancel(baseOrder, BigDecimal.ZERO, timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), vehicleItemDTO.getBuyAmount(), oad, vehicleItemDTO.getTopAmount(0));
//设置订单数据 //设置订单数据
//baseOrder.setDamagesAmount(csv.getDamagesAmount()); //baseOrder.setDamagesAmount(csv.getDamagesAmount());
......
...@@ -24,6 +24,7 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail; ...@@ -24,6 +24,7 @@ import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail; import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO; import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
import lombok.Data; import lombok.Data;
import org.joda.time.DateTime; import org.joda.time.DateTime;
...@@ -92,15 +93,15 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe ...@@ -92,15 +93,15 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
Long timeLag = orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis(); Long timeLag = orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis();
OrderItem vehicleItem = orderItemBiz.selectOne(new OrderItem(){{ VehicleItemDTO vehicleItemDTO = (VehicleItemDTO) orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode()); setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(orderPageVO.getId()); setOrderId(orderPageVO.getId());
}}); }});
if(timeLag < 0 ) { if(timeLag < 0 ) {
OrderAccountDetail oad = new OrderAccountDetail(); OrderAccountDetail oad = new OrderAccountDetail();
Integer freeDays = (null == vehicleItem.getCutNum())?0 :vehicleItem.getCutNum(); Integer freeDays = (null == vehicleItemDTO.getCutNum())?0 :vehicleItemDTO.getCutNum();
inProgressVO = orderCalculateBiz.inProgressCalculate(orderPageVO, vehicleItem, freeDays, baseOrderBiz.getDaysBetweenDateTime(startTime, nowTime), new OrderAccountDetail(), Boolean.FALSE); inProgressVO = orderCalculateBiz.inProgressCalculate(orderPageVO, vehicleItemDTO, freeDays, baseOrderBiz.getDaysBetweenDateTime(startTime, nowTime), new OrderAccountDetail(), Boolean.FALSE);
//.inProgressCalculate(orderPageVO, baseOrderBiz.getDaysBetweenDateTime(startTime, nowTime)); //.inProgressCalculate(orderPageVO, baseOrderBiz.getDaysBetweenDateTime(startTime, nowTime));
totalDeductAmount = oad.realTotalDeduct(); totalDeductAmount = oad.realTotalDeduct();
totalRefundAmount = oad.getOrderAmount().add(oad.getDepositAmount()); totalRefundAmount = oad.getOrderAmount().add(oad.getDepositAmount());
...@@ -109,7 +110,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe ...@@ -109,7 +110,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
String key = RENT_REFUND; String key = RENT_REFUND;
BigDecimal deductionAmount = orderAccountBiz.calculateDeduction(vehicleItem.getBuyAmount() BigDecimal deductionAmount = orderAccountBiz.calculateDeduction(vehicleItemDTO.getBuyAmount()
, orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis() , orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis()
, DictionaryKey.APP_ORDER+ "_"+ key , DictionaryKey.APP_ORDER+ "_"+ key
, refundDescBuilder); , refundDescBuilder);
......
...@@ -28,6 +28,7 @@ import com.xxfc.platform.order.entity.OrderItem; ...@@ -28,6 +28,7 @@ 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.RentVehicleBO; import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.order.VehicleItemDTO;
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;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
...@@ -241,7 +242,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -241,7 +242,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//设置Item //设置Item
OrderItem vehicleOrderItem = orderItemBiz.initOrderItem(vehicleModel.getPrice(), detail.getDayNum(), vehicleModel.getName(), vehicleModel.getId(), ItemTypeEnum.VEHICLE_MODEL, JSONUtil.parseArray(vmcpds).toString()); VehicleItemDTO vehicleOrderItem = (VehicleItemDTO) orderItemBiz.initOrderItem(vehicleModel.getPrice(), detail.getDayNum(), vehicleModel.getName(), vehicleModel.getId(), ItemTypeEnum.VEHICLE_MODEL, JSONUtil.parseArray(vmcpds).toString());
OrderItem driverOrderItem = orderItemBiz.initOrderItem(DRIVER_PRICE, detail.getDayNum(), "平台司机", null, ItemTypeEnum.DRIVER); OrderItem driverOrderItem = orderItemBiz.initOrderItem(DRIVER_PRICE, detail.getDayNum(), "平台司机", null, ItemTypeEnum.DRIVER);
OrderItem damageSafeOrderItem = orderItemBiz.initOrderItem(DAMAGE_SAFE, detail.getDayNum(), "免赔费用", null, ItemTypeEnum.DAMAGE_SAFE); OrderItem damageSafeOrderItem = orderItemBiz.initOrderItem(DAMAGE_SAFE, detail.getDayNum(), "免赔费用", null, ItemTypeEnum.DAMAGE_SAFE);
......
package com.xxfc.platform.vehicle.pojo.dto; package com.xxfc.platform.vehicle.pojo.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
......
package com.xxfc.platform.vehicle.pojo.dto.order;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import lombok.Data;
import java.util.Date;
@Data
public class VMCalendarPriceCostDTO extends VehicleModelCalendarPriceDTO {
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
private Date date;
}
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