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
...@@ -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) {
...@@ -194,14 +195,11 @@ public class OrderCancelBiz { ...@@ -194,14 +195,11 @@ public class OrderCancelBiz {
orvd.handelCostDetailExtend(csv); orvd.handelCostDetailExtend(csv);
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