Commit f81d776e authored by hanfeng's avatar hanfeng

Merge remote-tracking branch 'origin/dev' into dev

parents fd84a5e9 b3290acd
...@@ -4,12 +4,17 @@ import java.util.HashMap; ...@@ -4,12 +4,17 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
public enum OrderCostEnum { public enum OrderCostEnum {
RentVehicle(1, "租车费用明细"), RENT_VEHICLE("01", "租车费用明细"),
TOUR("02", "旅游费用明细"),
CANCEL_NO_START("03", "取消违约金明细"),
CANCEL_STARTED("04", "取消费用明细"),
FINLISH_ADVANCE("05", "租车费用明细"),
FINLISH_DELAY("06", "租车费用明细"),
; ;
/** /**
* 编码 * 编码
*/ */
private Integer code; private String code;
/** /**
* 类型描述 * 类型描述
*/ */
...@@ -17,16 +22,16 @@ public enum OrderCostEnum { ...@@ -17,16 +22,16 @@ public enum OrderCostEnum {
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>(); private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
OrderCostEnum(Integer code, String desc){ OrderCostEnum(String code, String desc){
this.code=code; this.code=code;
this.desc=desc; this.desc=desc;
} }
public Integer getCode() { public String getCode() {
return code; return code;
} }
public void setCode(Integer code) { public void setCode(String code) {
this.code = code; this.code = code;
} }
......
...@@ -323,4 +323,8 @@ public class OrderRentVehicleDetail implements Serializable { ...@@ -323,4 +323,8 @@ public class OrderRentVehicleDetail implements Serializable {
@Column(name = "used_day") @Column(name = "used_day")
Integer usedDay; Integer usedDay;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
} }
...@@ -245,6 +245,10 @@ public class OrderTourDetail implements Serializable { ...@@ -245,6 +245,10 @@ public class OrderTourDetail implements Serializable {
@ApiModelProperty(value = "是否省外 1--省外;0--省内") @ApiModelProperty(value = "是否省外 1--省外;0--省内")
private Integer isOutside; private Integer isOutside;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
@Transient @Transient
private List<TourUser> userVoList; private List<TourUser> userVoList;
} }
...@@ -23,6 +23,11 @@ public class InProgressVO { ...@@ -23,6 +23,11 @@ public class InProgressVO {
*/ */
BigDecimal extraAmount = BigDecimal.ZERO; BigDecimal extraAmount = BigDecimal.ZERO;
/**
* 实际消费金额
*/
BigDecimal consumeAmount = BigDecimal.ZERO;
/** /**
* 已使用天数 * 已使用天数
*/ */
......
package com.xxfc.platform.order.pojo.price;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelNoStartVO extends CostDetailExtend{
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金额
*/
private BigDecimal violateAmount = BigDecimal.ZERO;
public CancelNoStartVO() {
this.type = CANCEL_NO_START;
}
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelStartedVO extends CostDetailExtend {
/**
* 消费金额(实际计费)
*/
private BigDecimal consumeAmount;
/**
* 租车单价
*/
private BigDecimal modelAmount;
/**
* 使用天数
*/
private Integer usedDayNum;
/**
* 使用金额
*/
private BigDecimal usedAmount;
/**
* 使用免费天数
*/
private Integer usedfreeDayNum;
/**
* 使用免费金额
*/
private BigDecimal usedFreeAmount;
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金金额
*/
private BigDecimal violateAmount;
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
@Data
public class CostDetailExtend {
public static final int CANCEL_NO_START = 1;
public static final int CANCEL_STARTED = 2;
public static final int FINLISH_ADVANCE = 3;
public static final int FINLISH_DELAY = 4;
private String costDetail;
/**
* type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细
*/
protected Integer type;
}
...@@ -86,12 +86,14 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -86,12 +86,14 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
* @param timeLag 与开始时间的时间差 * @param timeLag 与开始时间的时间差
* @param dicParentKey * @param dicParentKey
*/ */
public BigDecimal rentRefundProcessCancel(BaseOrder baseOrder, BigDecimal mainItemRealAmount, Long timeLag, String dicParentKey, BigDecimal depositAmount, BigDecimal originalDeductAmount) { public BigDecimal rentRefundProcessCancel(BaseOrder baseOrder, BigDecimal mainItemRealAmount, Long timeLag, String dicParentKey, BigDecimal depositAmount, BigDecimal originalDeductAmount, OrderAccountDetail oad) {
//计算退款金额 //计算退款金额
//商品价格 - 优惠券减免的价格 //商品价格 - 优惠券减免的价格
BigDecimal originalRefundAmount = BigDecimal.ZERO.add(mainItemRealAmount); BigDecimal originalRefundAmount = BigDecimal.ZERO.add(mainItemRealAmount);
StringBuilder refundDescBuilder = new StringBuilder("取消订单退款:"); StringBuilder refundDescBuilder = new StringBuilder("取消订单退款:");
OrderAccountDetail oad = new OrderAccountDetail(); if(null == oad) {
oad = new OrderAccountDetail();
}
BigDecimal refundMainGoodsAmount = calculateRefund(originalRefundAmount, timeLag, dicParentKey, refundDescBuilder, oad); BigDecimal refundMainGoodsAmount = calculateRefund(originalRefundAmount, timeLag, dicParentKey, refundDescBuilder, oad);
refundMainGoodsAmount = refundMainGoodsAmount.setScale(2, RoundingMode.HALF_UP); refundMainGoodsAmount = refundMainGoodsAmount.setScale(2, RoundingMode.HALF_UP);
...@@ -188,7 +190,9 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -188,7 +190,9 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
set("ga", goodsAmount); set("ga", goodsAmount);
}})).toString()); }})).toString());
refundDescBuilder = refundDescBuilder.insert(0, names[1]+ ","); refundDescBuilder = refundDescBuilder.insert(0, names[1]+ ",");
if(goodsAmount.subtract(refundGoodsAmount).compareTo(BigDecimal.ZERO) > 0) {
orderAccountDetail.getDeductions().add(initDeduction(goodsAmount.subtract(refundGoodsAmount), names[1], DeductionTypeEnum.VIOLATE_CANCEL, OrderAccountDeduction.ORIGIN_DEPOSIT)); orderAccountDetail.getDeductions().add(initDeduction(goodsAmount.subtract(refundGoodsAmount), names[1], DeductionTypeEnum.VIOLATE_CANCEL, OrderAccountDeduction.ORIGIN_DEPOSIT));
}
break; break;
} }
} }
......
...@@ -6,11 +6,16 @@ import cn.hutool.extra.template.TemplateEngine; ...@@ -6,11 +6,16 @@ import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil; import cn.hutool.extra.template.TemplateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.mapper.OrderTemplateMapper; import com.xxfc.platform.order.mapper.OrderTemplateMapper;
import com.xxfc.platform.order.pojo.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -58,6 +63,32 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate> ...@@ -58,6 +63,32 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate>
return template.render(map); return template.render(map);
} }
public OrderTemplate selectByCode(String code) {
return selectOne(new OrderTemplate(){{
setCode(code);
}});
}
/**
* 计算费用明细
* @param vo
* @return
*/
public void handleCostDetailExtend(CancelNoStartVO vo) {
OrderTemplate template = selectByCode(OrderCostEnum.CANCEL_NO_START.getCode());
vo.setCostDetail(result(template.getTemplate(), Dict.parse(vo)));
}
/**
* 取消费用明细
* @param vo
* @return
*/
public void handleCostDetailExtend(CancelStartedVO vo) {
OrderTemplate template = selectByCode(OrderCostEnum.CANCEL_STARTED.getCode());
vo.setCostDetail(result(template.getTemplate(), Dict.parse(vo)));
}
public static void main(String[] args) { public static void main(String[] args) {
String tempStr = "{\"key\":\"费用明细\", \"val\":\"\", \"consumeAmount\":\"${consumeAmount}\",\"children\":[${children}]}"; String tempStr = "{\"key\":\"费用明细\", \"val\":\"\", \"consumeAmount\":\"${consumeAmount}\",\"children\":[${children}]}";
Map map = Maps.newHashMap(); Map map = Maps.newHashMap();
......
package com.xxfc.platform.order.biz.inner; package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.lang.Dict;
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;
...@@ -12,6 +13,7 @@ import com.xxfc.platform.order.entity.*; ...@@ -12,6 +13,7 @@ import com.xxfc.platform.order.entity.*;
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.price.RentVehiclePriceVO;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -20,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,6 +22,7 @@ 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.HashMap;
import java.util.List; import java.util.List;
/** /**
...@@ -59,6 +62,7 @@ public class OrderCalculateBiz { ...@@ -59,6 +62,7 @@ public class OrderCalculateBiz {
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad) { public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad) {
BigDecimal refundAmount = BigDecimal.ZERO; BigDecimal refundAmount = BigDecimal.ZERO;
BigDecimal consumeAmount = BigDecimal.ZERO;
InProgressVO inProgressVO = new InProgressVO(); InProgressVO inProgressVO = new InProgressVO();
inProgressVO.setUsedDays(useDays); inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedfreeDays(freeDays); inProgressVO.setUsedfreeDays(freeDays);
...@@ -80,7 +84,7 @@ public class OrderCalculateBiz { ...@@ -80,7 +84,7 @@ public class OrderCalculateBiz {
//消费天数 //消费天数
Integer consumeDays = 0 - backFreeDays; Integer consumeDays = 0 - backFreeDays;
//计算使用天数的费用 //计算使用天数的费用
BigDecimal consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+"")); consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
List<BigDecimal> couponAmounts = Lists.newArrayList(); List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) { for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK); BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
...@@ -153,7 +157,7 @@ public class OrderCalculateBiz { ...@@ -153,7 +157,7 @@ public class OrderCalculateBiz {
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum(); Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum();
return inProgressCalculate(baseOrder, orderItem, freeDays, useDays, null); return inProgressCalculate(baseOrder, orderItem, freeDays, useDays, new OrderAccountDetail());
} }
public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, OrderItem orderItem, Integer useDays) { public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, OrderItem orderItem, Integer useDays) {
......
...@@ -11,9 +11,12 @@ import com.xxfc.platform.activity.feign.ActivityFeign; ...@@ -11,9 +11,12 @@ import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
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.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.tour.feign.TourFeign; import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
...@@ -67,6 +70,9 @@ public class OrderCancelBiz { ...@@ -67,6 +70,9 @@ public class OrderCancelBiz {
@Autowired @Autowired
OrderAccountBiz orderAccountBiz; OrderAccountBiz orderAccountBiz;
@Autowired
OrderTemplateBiz orderTemplateBiz;
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
...@@ -152,6 +158,25 @@ public class OrderCancelBiz { ...@@ -152,6 +158,25 @@ public class OrderCancelBiz {
//退款子流程: 订单基础,退款描述,退款金额 //退款子流程: 订单基础,退款描述,退款金额
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);
//如果有扣款项,则生成额外的费用明细
CancelStartedVO csv = new CancelStartedVO();
csv.setConsumeAmount(inProgressVO.getConsumeAmount());
csv.setModelAmount(orderItem.getUnitPrice());
csv.setUsedAmount(inProgressVO.getUsedAmount());
csv.setUsedDayNum(inProgressVO.getUsedDays());
csv.setUsedFreeAmount(inProgressVO.getUsedFreeDaysAmount());
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
csv.setViolateAmount(deduction.getAmount());
csv.setViolateDesc(deduction.getName());
}
}
}
orderTemplateBiz.handleCostDetailExtend(csv);
orvd.setCostDetailExtend(csv.getCostDetail());
orderRentVehicleBiz.updateSelectiveByIdRe(orvd);
}else { }else {
//没到出车时间 //没到出车时间
//判断是否使用免费天数,并且进行扣款 //判断是否使用免费天数,并且进行扣款
...@@ -161,11 +186,26 @@ public class OrderCancelBiz { ...@@ -161,11 +186,26 @@ public class OrderCancelBiz {
//违约金封顶 租车身份价 * 2天 //违约金封顶 租车身份价 * 2天
BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal(2+ "")); BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal(2+ ""));
if(freeDayAmount.compareTo(topAmount) > 0) { if(freeDayAmount.compareTo(topAmount) > 0) {
freeDayAmount = freeDayAmount; freeDayAmount = topAmount;
} }
} }
//退款流程 //退款流程
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, orderItem.getRealAmount(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), freeDayAmount); orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, orderItem.getRealAmount(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), freeDayAmount, null);
//如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
CancelNoStartVO cnsv = new CancelNoStartVO(){{
setViolateAmount(deduction.getAmount());
setViolateDesc(deduction.getName());
}};
orderTemplateBiz.handleCostDetailExtend(cnsv);
orvd.setCostDetailExtend(cnsv.getCostDetail());
orderRentVehicleBiz.updateSelectiveByIdRe(orvd);
}
}
}
} }
//已付款的取消订单发送消息 //已付款的取消订单发送消息
...@@ -199,8 +239,24 @@ public class OrderCancelBiz { ...@@ -199,8 +239,24 @@ public class OrderCancelBiz {
if(SYS_TRUE.equals(otd.getIsOutside())) { if(SYS_TRUE.equals(otd.getIsOutside())) {
key = TOUR_REFUND; key = TOUR_REFUND;
} }
//退款流程 //退款流程
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, adultItem.getRealAmount().add(childItem.getRealAmount()), timeLag, APP_ORDER+ "_"+ key, BigDecimal.ZERO, BigDecimal.ZERO); orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, adultItem.getRealAmount().add(childItem.getRealAmount()), timeLag, APP_ORDER+ "_"+ key, BigDecimal.ZERO, BigDecimal.ZERO, oad);
//如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
CancelNoStartVO cnsv = new CancelNoStartVO(){{
setViolateAmount(deduction.getAmount());
setViolateDesc(deduction.getName());
}};
orderTemplateBiz.handleCostDetailExtend(cnsv);
otd.setCostDetailExtend(cnsv.getCostDetail());
orderTourDetailBiz.updateSelectiveByIdRe(otd);
}
}
}
//站点总人数减少 //站点总人数减少
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, (otd.getTotalNumber() * -1)); tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, (otd.getTotalNumber() * -1));
...@@ -213,10 +269,11 @@ public class OrderCancelBiz { ...@@ -213,10 +269,11 @@ public class OrderCancelBiz {
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
//取消租车预定 //取消租车预定 和 记录生成额外的费用明细
//已支付,并且是待出行状态,取消预约 //已支付,并且是待出行状态,取消预约
if(OrderStatusEnum.ORDER_TOSTART.getCode().equals(baseOrder.getStatus()) && SYS_TRUE.equals(baseOrder.getHasPay())){ if(OrderStatusEnum.ORDER_TOSTART.getCode().equals(baseOrder.getStatus()) && SYS_TRUE.equals(baseOrder.getHasPay())){
vehicleFeign.rentUnbookVehicle(orvd.getBookRecordId()); vehicleFeign.rentUnbookVehicle(orvd.getBookRecordId());
}else { }else {
//未支付,拒绝之前的预约 //未支付,拒绝之前的预约
RestResponse<Integer> restResponse = vehicleFeign.rentRejectVehicleBooking(orvd.getBookRecordId()); RestResponse<Integer> restResponse = vehicleFeign.rentRejectVehicleBooking(orvd.getBookRecordId());
......
...@@ -7,7 +7,9 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -7,7 +7,9 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.app.entity.Cofig; import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign; import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz; import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.AccountTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum; import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum; import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
...@@ -69,6 +71,9 @@ public class OrderMsgBiz { ...@@ -69,6 +71,9 @@ public class OrderMsgBiz {
@Autowired @Autowired
OrderRefundBiz orderRefundBiz; OrderRefundBiz orderRefundBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
/** /**
* 处理App用户提醒短信的发送 * 处理App用户提醒短信的发送
* @param orvd * @param orvd
...@@ -277,25 +282,23 @@ public class OrderMsgBiz { ...@@ -277,25 +282,23 @@ public class OrderMsgBiz {
CompanyDetail startCompanyDetail = vehicleFeign.getCompanyDetail(orvd.getStartCompanyId()).getData(); CompanyDetail startCompanyDetail = vehicleFeign.getCompanyDetail(orvd.getStartCompanyId()).getData();
CompanyDetail endCompanyDetail = vehicleFeign.getCompanyDetail(orvd.getEndCompanyId()).getData(); CompanyDetail endCompanyDetail = vehicleFeign.getCompanyDetail(orvd.getEndCompanyId()).getData();
if(null != orvd.getEndCompanyId() && !SYS_FALSE.equals(orvd.getEndCompanyId())) { if(null != orvd.getEndCompanyId() && !SYS_FALSE.equals(orvd.getEndCompanyId())) {
//查询订单退款记录
OrderRefund orderRefund = orderRefundBiz.selectOne(new OrderRefund(){{
setOrderId(baseOrder.getId());
setRefundType(RefundTypeEnum.ORDER_FUND.getCode());
}});
//查询押金退款记录 //新的账单 记录
OrderRefund depositOrderRefund = orderRefundBiz.selectOne(new OrderRefund(){{ OrderAccount orderAccount = orderAccountBiz.selectOne(new OrderAccount(){{
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
setRefundType(RefundTypeEnum.DEPOSIT.getCode()); setAccountType(AccountTypeEnum.IN_ORDER_PAY.getCode());
}}); }});
if(BigDecimal.ZERO.equals(orderRefund.getDeductAmount())) { if(BigDecimal.ZERO.equals(orderAccount.getDeductAmount())) {
//使用免费天数 //使用免费天数
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) { if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
smstype = SmsTemplateDTO.CANCEL_B; smstype = SmsTemplateDTO.CANCEL_B;
}else { }else {
smstype = SmsTemplateDTO.CANCEL_A; smstype = SmsTemplateDTO.CANCEL_A;
} }
//发送用户取消消息
sms2AppUser(startCompanyDetail, endCompanyDetail, orvd, otd, omd, baseOrder, appUserDTO, smstype, smsParams);
}else { }else {
//使用免费天数 //使用免费天数
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) { if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
...@@ -303,14 +306,13 @@ public class OrderMsgBiz { ...@@ -303,14 +306,13 @@ public class OrderMsgBiz {
}else { }else {
smstype = SmsTemplateDTO.CANCEL_C; smstype = SmsTemplateDTO.CANCEL_C;
} }
//发送用户退款消息
smsParams.clear();
sms2RefundAppUser(BigDecimal.ZERO, orderAccount.getDeductAmount(), orderAccount.getAccountAmount(), BigDecimal.ZERO, baseOrder, appUserDTO, smstype, smsParams);
} }
//发送用户取消消息
sms2AppUser(startCompanyDetail, endCompanyDetail, orvd, otd, omd, baseOrder, appUserDTO, smstype, smsParams);
//发送用户退款消息
// smsParams.clear();
// sms2RefundAppUser(BigDecimal.ZERO, orderRefund.getDeductAmount(), depositOrderRefund.getRefundAmount().add(orderRefund.getRefundAmount()), BigDecimal.ZERO, baseOrder, appUserDTO, smstype, smsParams);
//后台发送消息(出车人) //后台发送消息(出车人)
smsParams.clear(); smsParams.clear();
...@@ -508,6 +510,13 @@ public class OrderMsgBiz { ...@@ -508,6 +510,13 @@ public class OrderMsgBiz {
smsParams.add(USER_N+ appUserDTO.getRealname()); smsParams.add(USER_N+ appUserDTO.getRealname());
} }
break; break;
case SmsTemplateDTO.CANCEL_B :
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
smsParams.add(USER_M+ appUserDTO.getRealname());
}else {
smsParams.add(USER_N+ appUserDTO.getRealname());
}
break;
case SmsTemplateDTO.PAY_I : case SmsTemplateDTO.PAY_I :
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) { if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
smsParams.add(USER_M+ appUserDTO.getRealname()); smsParams.add(USER_M+ appUserDTO.getRealname());
......
...@@ -15,7 +15,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -15,7 +15,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
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;
import com.xxfc.platform.order.biz.OrderCostDetailBiz; import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz; import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz; import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum; import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
...@@ -25,18 +24,15 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; ...@@ -25,18 +24,15 @@ 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.OrderItemDTO;
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;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType; import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO; import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo; import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.Data; import lombok.Data;
...@@ -134,7 +130,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -134,7 +130,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//设置订单状态为3 //设置订单状态为3
bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode()); bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode());
//设置订单图片 //设置订单图片
bo.getOrder().setPicture(bo.getVehicleModel().getPicture());
bo.getOrder().setPicture(StrUtil.isNotBlank(bo.getVehicleModel().getCoverPic())? bo.getVehicleModel().getCoverPic(): bo.getVehicleModel().getPicture());
//设置订单名称 //设置订单名称
bo.getOrder().setName(bo.getVehicleModel().getName()); bo.getOrder().setName(bo.getVehicleModel().getName());
...@@ -414,7 +411,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -414,7 +411,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
* @return * @return
*/ */
private void costDetail(RentVehiclePriceVO vo, String children) { private void costDetail(RentVehiclePriceVO vo, String children) {
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode()); OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RENT_VEHICLE.getCode());
template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{ template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{
put("children", children); put("children", children);
put("vehicleAmount", vo.getVehicleAmount()); put("vehicleAmount", vo.getVehicleAmount());
......
...@@ -3,7 +3,6 @@ package com.xxfc.platform.order.service; ...@@ -3,7 +3,6 @@ package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Dict;
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.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -12,7 +11,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -12,7 +11,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
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;
import com.xxfc.platform.order.biz.OrderCostDetailBiz; import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz; import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.biz.OrderTourDetailBiz; import com.xxfc.platform.order.biz.OrderTourDetailBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum; import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
...@@ -312,7 +310,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -312,7 +310,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
* @return * @return
*/ */
private void costDetail(TourPriceVO vo, String children) { private void costDetail(TourPriceVO vo, String children) {
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode()); OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RENT_VEHICLE.getCode());
template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{ template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{
put("children", children); put("children", children);
}})); }}));
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</if> </if>
<if test="travelDate!=null"> <if test="travelDate!=null">
and p.start_time=#{travelDate} and p.start_time=#{travelDate}
</if> ORDER BY s.depart_time ) as `goodOrder` </if> ORDER BY p.start_time DESC ) as `goodOrder`
</select> </select>
<!-- 获取旅游路线id--> <!-- 获取旅游路线id-->
<select id="getGoodList" resultType="com.xxfc.platform.tour.vo.TourVerificationInfoVo"> <select id="getGoodList" resultType="com.xxfc.platform.tour.vo.TourVerificationInfoVo">
......
package com.xxfc.platform.uccn.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/17 15:24
*/
@RestController
@RequestMapping("/app/unauth/branch_company")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class BranchCompanyController {
private final VehicleFeign vehicleFeign;
@PostMapping("/page")
public ObjectRestResponse<PageDataVO> listBranchCompanyWithPage(@RequestBody BranchCompanyFindDTO branchCompanyFindDTO) {
PageDataVO<BranchCompanyListVO> branchCompanyWithPage = vehicleFeign.findBranchCompanyWithPage(branchCompanyFindDTO);
return ObjectRestResponse.succ(branchCompanyWithPage);
}
}
...@@ -6,13 +6,13 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -6,13 +6,13 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo; import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo; import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import io.swagger.annotations.ApiParam; import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
...@@ -153,6 +153,14 @@ public interface VehicleFeign { ...@@ -153,6 +153,14 @@ public interface VehicleFeign {
@GetMapping("/vehicleInfo/findwith_plate_number") @GetMapping("/vehicleInfo/findwith_plate_number")
List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber); List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber);
/**
* 根据位置查询
* @param branchCompanyFindDTO
* @return
*/
@PostMapping("/branchCompany/app/unauth/companys")
PageDataVO<BranchCompanyListVO> findBranchCompanyWithPage(@RequestBody BranchCompanyFindDTO branchCompanyFindDTO);
@GetMapping("/vehicleInfo/findVehicleIds") @GetMapping("/vehicleInfo/findVehicleIds")
List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode); List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode);
} }
...@@ -15,4 +15,6 @@ public class BranchCompanyFindDTO extends PageParam { ...@@ -15,4 +15,6 @@ public class BranchCompanyFindDTO extends PageParam {
private Integer addrProvince; private Integer addrProvince;
private Integer addrCity; private Integer addrCity;
private String name;
} }
package com.xxfc.platform.vehicle.pojo.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/17 14:48
*/
@Data
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
public class VehiclePlatCataVo {
private Integer id;
private String name;
}
...@@ -375,7 +375,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -375,7 +375,7 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
public PageDataVO<BranchCompanyListVO> findBranchCompanyWithPage(BranchCompanyFindDTO branchCompanyFindDTO) { public PageDataVO<BranchCompanyListVO> findBranchCompanyWithPage(BranchCompanyFindDTO branchCompanyFindDTO) {
PageDataVO<BranchCompanyListVO> pageDataVO = new PageDataVO<>(); PageDataVO<BranchCompanyListVO> pageDataVO = new PageDataVO<>();
PageDataVO<BranchCompanyListDTO> dataVO = PageDataVO.pageInfo(branchCompanyFindDTO.getPage(), branchCompanyFindDTO.getLimit(), () -> mapper.findBranchCompanys(branchCompanyFindDTO.getAddrProvince(), branchCompanyFindDTO.getAddrCity())); PageDataVO<BranchCompanyListDTO> dataVO = PageDataVO.pageInfo(branchCompanyFindDTO.getPage(), branchCompanyFindDTO.getLimit(), () -> mapper.findBranchCompanys(branchCompanyFindDTO.getAddrProvince(), branchCompanyFindDTO.getAddrCity(),branchCompanyFindDTO.getName()));
List<BranchCompanyListDTO> data = dataVO.getData(); List<BranchCompanyListDTO> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)) { if (CollectionUtils.isEmpty(data)) {
return pageDataVO; return pageDataVO;
......
...@@ -178,7 +178,7 @@ public class VehicleActiveService { ...@@ -178,7 +178,7 @@ public class VehicleActiveService {
} }
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态"); stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
return stringBuilder.toString(); return stringBuilder.toString();
} }
public void arrival(VehicleArrivalVo arrivalVo) { public void arrival(VehicleArrivalVo arrivalVo) {
Vehicle vehicle = vehicleMapper.selectByPrimaryKey(arrivalVo.getVehicleId()); Vehicle vehicle = vehicleMapper.selectByPrimaryKey(arrivalVo.getVehicleId());
...@@ -214,9 +214,6 @@ public class VehicleActiveService { ...@@ -214,9 +214,6 @@ public class VehicleActiveService {
} }
vehicle.setExpectDestinationBranchCompanyId(0); vehicle.setExpectDestinationBranchCompanyId(0);
vehicleMapper.updateByPrimaryKeySelective(vehicle); vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 出车记录 // 出车记录
VehicleDepartureLogVo departureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(arrivalVo.getBookRecordId()); VehicleDepartureLogVo departureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(arrivalVo.getBookRecordId());
...@@ -229,12 +226,12 @@ public class VehicleActiveService { ...@@ -229,12 +226,12 @@ public class VehicleActiveService {
boolean flag = true; boolean flag = true;
VehicleDepartureLog departureLog = departureLogVo.getVehicleDeparture(departureLogVo); VehicleDepartureLog departureLog = departureLogVo.getVehicleDeparture(departureLogVo);
List<VehicleDepartureLog> list = vehicleDepartureLogMapper.selectByVehicle(arrivalVo.getVehicleId()); List<VehicleDepartureLog> list = vehicleDepartureLogMapper.selectByVehicle(arrivalVo.getVehicleId());
for(VehicleDepartureLog vehicleDepartureLogVo : list) { for (VehicleDepartureLog vehicleDepartureLogVo : list) {
if(vehicleDepartureLogVo.getState() != 1 && vehicleDepartureLogVo.getId() > departureLog.getId()) { //后面还有未收车的记录 if (vehicleDepartureLogVo.getState() != 1 && vehicleDepartureLogVo.getId() > departureLog.getId()) { //后面还有未收车的记录
flag = false; flag = false;
} }
} }
if(flag) { //如果此条记录后面还有未收车记录,就不修改车辆状态 if (flag) { //如果此条记录后面还有未收车记录,就不修改车辆状态
int result = vehicleMapper.updateStatus(arrivalVo.getVehicleId(), VehicleStatus.NORMAL.getCode()); int result = vehicleMapper.updateStatus(arrivalVo.getVehicleId(), VehicleStatus.NORMAL.getCode());
// if (result == 0) { // if (result == 0) {
// throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(), // throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
...@@ -330,7 +327,7 @@ public class VehicleActiveService { ...@@ -330,7 +327,7 @@ public class VehicleActiveService {
} }
} }
} }
if(!(startDate.minusDays(1).compareTo(DateTime.now()) <= 0 && DateTime.now().compareTo(endDate) <= 0 && vehicleBookRecord.getStatus() == VehicleBookRecordStatus.APPROVE.getCode() && (list == null || list.size() <= 0))) { if (!(startDate.minusDays(1).compareTo(DateTime.now()) <= 0 && DateTime.now().compareTo(endDate) <= 0 && vehicleBookRecord.getStatus() == VehicleBookRecordStatus.APPROVE.getCode() && (list == null || list.size() <= 0))) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getDesc(),
ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getCode()); ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getCode());
} }
...@@ -340,7 +337,6 @@ public class VehicleActiveService { ...@@ -340,7 +337,6 @@ public class VehicleActiveService {
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) { public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if (vehicleBookRecord != null) { if (vehicleBookRecord != null) {
if (type == 1) { if (type == 1) {
vehicleBookRecord.setActualStartDate(new Date()); vehicleBookRecord.setActualStartDate(new Date());
...@@ -355,9 +351,9 @@ public class VehicleActiveService { ...@@ -355,9 +351,9 @@ public class VehicleActiveService {
} }
/** /**
* 车辆保养 * 车辆保养
*
* @param vehicleUpkeepVo * @param vehicleUpkeepVo
*/ */
@Transactional @Transactional
...@@ -411,6 +407,7 @@ public class VehicleActiveService { ...@@ -411,6 +407,7 @@ public class VehicleActiveService {
/** /**
* 保养结束 * 保养结束
*
* @param vehicleUpkeepEndVo * @param vehicleUpkeepEndVo
*/ */
@Transactional @Transactional
......
...@@ -259,9 +259,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -259,9 +259,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if (addOrUpdateVehicleVo.getNumberPlate() == null) { if (addOrUpdateVehicleVo.getNumberPlate() == null) {
throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL); throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL);
} }
boolean exist = checkCodeExist(addOrUpdateVehicleVo.getCode(),addOrUpdateVehicleVo.getId()); boolean exist = checkCodeExist(addOrUpdateVehicleVo.getCode(), addOrUpdateVehicleVo.getId());
if (exist){ if (exist) {
throw new BaseException("车辆编码已经被占用",400); throw new BaseException("车辆编码已经被占用", 400);
} }
List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo); List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo);
return vehicles; return vehicles;
......
...@@ -3,7 +3,9 @@ package com.xxfc.platform.vehicle.biz; ...@@ -3,7 +3,9 @@ package com.xxfc.platform.vehicle.biz;
import com.ace.cache.annotation.Cache; import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
...@@ -16,7 +18,9 @@ import com.xxfc.platform.vehicle.entity.VehiclePlatCata; ...@@ -16,7 +18,9 @@ import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.mapper.VehiclePlatCataMapper; import com.xxfc.platform.vehicle.mapper.VehiclePlatCataMapper;
import com.xxfc.platform.vehicle.pojo.Cascade; import com.xxfc.platform.vehicle.pojo.Cascade;
import com.xxfc.platform.vehicle.pojo.CataVo; import com.xxfc.platform.vehicle.pojo.CataVo;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePlatCataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.assertj.core.util.Arrays; import org.assertj.core.util.Arrays;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -492,4 +496,19 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl ...@@ -492,4 +496,19 @@ public class VehiclePlatCataBiz extends BaseBiz<VehiclePlatCataMapper, VehiclePl
} }
return vpcMap; return vpcMap;
} }
public List<VehiclePlatCataVo> findVehicleCategoryByParentId(Integer parentId){
List<VehiclePlatCataVo> cataVos = new ArrayList<>();
Example example = new Example(VehiclePlatCata.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("parentId",parentId);
criteria.andEqualTo("state",0);
List<VehiclePlatCata> vehiclePlatCatas = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(vehiclePlatCatas)){
return cataVos;
}
cataVos= JSON.parseObject(JSON.toJSONString(vehiclePlatCatas), new TypeReference<List<VehiclePlatCataVo>>() {
});
return cataVos;
}
} }
...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.mapper;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO; import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper; import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
...@@ -18,7 +17,7 @@ public interface BranchCompanyMapper extends Mapper<BranchCompany>, SelectByIdLi ...@@ -18,7 +17,7 @@ public interface BranchCompanyMapper extends Mapper<BranchCompany>, SelectByIdLi
List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId); List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId);
List<BranchCompanyListDTO > findBranchCompanys(@Param("provinceCode") Integer provinceCode,@Param("cityCode") Integer cityCode); List<BranchCompanyListDTO > findBranchCompanys(@Param("provinceCode") Integer provinceCode,@Param("cityCode") Integer cityCode,@Param("name") String name);
@Select("SELECT `code`,count(id) cd FROM `vehicle` WHERE is_del=0 and number_plate LIKE '%测试%' GROUP BY code HAVING cd>=2") @Select("SELECT `code`,count(id) cd FROM `vehicle` WHERE is_del=0 and number_plate LIKE '%测试%' GROUP BY code HAVING cd>=2")
......
...@@ -202,8 +202,8 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -202,8 +202,8 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
} }
@PostMapping("/app/unauth/companys") @PostMapping("/app/unauth/companys")
public ObjectRestResponse<PageDataVO<BranchCompanyListVO>> findBranchCompanyWithPage(@RequestBody BranchCompanyFindDTO branchCompanyFindDTO){ public PageDataVO<BranchCompanyListVO> findBranchCompanyWithPage(@RequestBody BranchCompanyFindDTO branchCompanyFindDTO){
PageDataVO<BranchCompanyListVO> pageDataVO = baseBiz.findBranchCompanyWithPage(branchCompanyFindDTO); PageDataVO<BranchCompanyListVO> pageDataVO = baseBiz.findBranchCompanyWithPage(branchCompanyFindDTO);
return ObjectRestResponse.succ(pageDataVO); return pageDataVO;
} }
} }
...@@ -11,6 +11,7 @@ import com.xxfc.platform.vehicle.common.VehicleBaseController; ...@@ -11,6 +11,7 @@ import com.xxfc.platform.vehicle.common.VehicleBaseController;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata; import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.pojo.Cascade; import com.xxfc.platform.vehicle.pojo.Cascade;
import com.xxfc.platform.vehicle.pojo.CataVo; import com.xxfc.platform.vehicle.pojo.CataVo;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePlatCataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -185,6 +186,16 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata ...@@ -185,6 +186,16 @@ public class VehicleCataController extends VehicleBaseController<VehiclePlatCata
return baseBiz.setIsore(id,isMore); return baseBiz.setIsore(id,isMore);
} }
/**
* 根据类型id查询分类
* @param type
* @return
*/
@GetMapping("/types")
public ObjectRestResponse<List<VehiclePlatCataVo>> findVehiclePlatCate(@RequestParam(value = "type",required = false,defaultValue = "7") Integer type){
List<VehiclePlatCataVo> category = baseBiz.findVehicleCategoryByParentId(type);
return ObjectRestResponse.succ(category);
}
......
...@@ -70,7 +70,11 @@ ...@@ -70,7 +70,11 @@
bc.longitude, bc.longitude,
bc.latitude bc.latitude
FROM FROM
(SELECT * FROM `branch_company` WHERE `is_del`=0 AND `state`=1) AS `bc` (SELECT * FROM `branch_company` WHERE `is_del`=0 AND `state`=1
<if test="name !=null and name !='' ">
and name like concat('%',#{name},'%')
</if>
) AS `bc`
INNER JOIN (SELECT * FROM `company_base` WHERE `is_del`=0 INNER JOIN (SELECT * FROM `company_base` WHERE `is_del`=0
<if test="provinceCode != null"> <if test="provinceCode != null">
AND `addr_province`=#{provinceCode} AND `addr_province`=#{provinceCode}
......
...@@ -327,7 +327,7 @@ ...@@ -327,7 +327,7 @@
<select id="selectByVehicleIdAndTime" parameterType="java.util.Map" resultMap="searchBookRecord"> <select id="selectByVehicleIdAndTime" parameterType="java.util.Map" resultMap="searchBookRecord">
select v1.* from vehicle_book_record v1 select v1.* from vehicle_book_record v1
where v1.vehicle_id = #{vehicleId} and v1.book_end_date > #{time} and v1.status BETWEEN 1 and 2 where v1.vehicle_id = #{vehicleId} and v1.book_end_date &gt; #{time} and v1.status BETWEEN 1 and 2
</select> </select>
<select id="selectZeroHourRecord" resultMap="searchBookRecord" parameterType="java.util.Map"> <select id="selectZeroHourRecord" resultMap="searchBookRecord" parameterType="java.util.Map">
...@@ -478,6 +478,9 @@ ...@@ -478,6 +478,9 @@
<if test="bookType != null"> <if test="bookType != null">
and v1.book_type = #{bookType} and v1.book_type = #{bookType}
</if> </if>
<if test="keywords != null and keywords != ''">
and (v3.number_plate like concat('%', #{keywords}, '%') or v3.code like concat('%', #{keywords}, '%'))
</if>
<if test="companyIds != null and companyIds.size > 0"> <if test="companyIds != null and companyIds.size > 0">
and (v1.lift_company in and (v1.lift_company in
<foreach collection="companyIds" item="id" open="(" separator="," close=")"> <foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
...@@ -383,6 +383,9 @@ ...@@ -383,6 +383,9 @@
<if test="numberPlate != null"> <if test="numberPlate != null">
and v1.number_plate = #{numberPlate} and v1.number_plate = #{numberPlate}
</if> </if>
<if test="keywords != null and keywords != ''">
and (v1.number_plate like concat('%', #{keywords}, '%') or v1.code like concat('%', #{keywords}, '%'))
</if>
<if test="status != null"> <if test="status != null">
and v1.status = #{status} and v1.status = #{status}
</if> </if>
......
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