Commit 7a0e389d authored by hezhen's avatar hezhen

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents 264e6890 d012c2f4
...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.constant.RestCode; ...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* Created by ace on 2017/9/8. * Created by ace on 2017/9/8.
...@@ -57,4 +58,9 @@ public class BaseException extends RuntimeException { ...@@ -57,4 +58,9 @@ public class BaseException extends RuntimeException {
super(ResultCode.getMsg(code) + (map == null? "" : map.toString())); super(ResultCode.getMsg(code) + (map == null? "" : map.toString()));
this.status = code; this.status = code;
} }
public BaseException(int code, Set<String> set) {
super(ResultCode.getMsg(code)+ (set == null? "" : set.toString()));
this.status = code;
}
} }
package com.github.wxiaoqi.security.common.util;
import org.apache.commons.jexl2.Expression;
import org.apache.commons.jexl2.JexlContext;
import org.apache.commons.jexl2.JexlEngine;
import org.apache.commons.jexl2.MapContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.util.Map;
/**
*
* @ClassName: IntervalUtil
* @author: kangyl17909
* @date: 2018年7月3日
*/
public class IntervalUtil {
/**
* 判断data_value是否在interval区间范围内
* @author: kangyl17909
* @date: 2018年7月3日
* @param data_value 数值类型的
* @param interval 正常的数学区间,包括无穷大等,如:(1,3)、>5%、(-∞,6]、(125%,135%)U(70%,80%)
* @return true:表示data_value在区间interval范围内,false:表示data_value不在区间interval范围内
*/
public boolean isInTheInterval(String data_value,String interval) {
//将区间和data_value转化为可计算的表达式
String formula = getFormulaByAllInterval(data_value,interval,"||");
ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
try {
//计算表达式
return (Boolean) jse.eval(formula);
} catch (Exception t) {
return false;
}
}
/**
* 将所有阀值区间转化为公式:如
* [75,80) =》 date_value < 80 && date_value >= 75
* (125%,135%)U(70%,80%) =》 (date_value < 1.35 && date_value > 1.25) || (date_value < 0.8 && date_value > 0.7)
* @param date_value
* @param interval 形式如:(125%,135%)U(70%,80%)
* @param connector 连接符 如:") || ("
*/
private String getFormulaByAllInterval(String date_value, String interval, String connector) {
StringBuffer buff = new StringBuffer();
for(String limit:interval.split("U")){//如:(125%,135%)U (70%,80%)
buff.append("(").append(getFormulaByInterval(date_value, limit," && ")).append(")").append(connector);
}
String allLimitInvel = buff.toString();
int index = allLimitInvel.lastIndexOf(connector);
allLimitInvel = allLimitInvel.substring(0,index);
return allLimitInvel;
}
/**
* 将整个阀值区间转化为公式:如
* 145) =》 date_value < 145
* [75,80) =》 date_value < 80 && date_value >= 75
* @param date_value
* @param interval 形式如:145)、[75,80)
* @param connector 连接符 如:&&
*/
private String getFormulaByInterval(String date_value, String interval, String connector) {
StringBuffer buff = new StringBuffer();
for(String halfInterval:interval.split(",")){//如:[75,80)、≥80
buff.append(getFormulaByHalfInterval(halfInterval, date_value)).append(connector);
}
String limitInvel = buff.toString();
int index = limitInvel.lastIndexOf(connector);
limitInvel = limitInvel.substring(0,index);
return limitInvel;
}
/**
* 将半个阀值区间转化为公式:如
* 145) =》 date_value < 145
* ≥80% =》 date_value >= 0.8
* [130 =》 date_value >= 130
* <80% =》 date_value < 0.8
* @param halfInterval 形式如:145)、≥80%、[130、<80%
* @param date_value
* @return date_value < 145
*/
private String getFormulaByHalfInterval(String halfInterval, String date_value) {
halfInterval = halfInterval.trim();
if(halfInterval.contains("∞")){//包含无穷大则不需要公式
return "1 == 1";
}
StringBuffer formula = new StringBuffer();
String data = "";
String opera = "";
if(halfInterval.matches("^([<>≤≥\\[\\(]{1}(-?\\d+.?\\d*\\%?))$")){//表示判断方向(如>)在前面 如:≥80%
opera = halfInterval.substring(0,1);
data = halfInterval.substring(1);
}else{//[130、145)
opera = halfInterval.substring(halfInterval.length()-1);
data = halfInterval.substring(0,halfInterval.length()-1);
}
double value = dealPercent(data);
formula.append(date_value).append(" ").append(opera).append(" ").append(value);
String a = formula.toString();
//转化特定字符
return a.replace("[", ">=").replace("(", ">").replace("]", "<=").replace(")", "<").replace("≤", "<=").replace("≥", ">=");
}
/**
* 去除百分号,转为小数
* @param str 可能含百分号的数字
* @return
*/
private double dealPercent(String str){
double d = 0.0;
if(str.contains("%")){
str = str.substring(0,str.length()-1);
d = Double.parseDouble(str)/100;
}else{
d = Double.parseDouble(str);
}
return d;
}
public static boolean staticIsInTheInterval(String data_value,String interval) {
return new IntervalUtil().isInTheInterval(data_value, interval);
}
public static Object evaluate(String expression, JexlContext jexlContext) {
Expression e = new JexlEngine().createExpression(expression);
return e.evaluate(jexlContext);
}
public static Object evaluate(String expression, Map<String, Object> jexlContextMap) {
Expression e = new JexlEngine().createExpression(expression);
JexlContext jexlContext = new MapContext();
jexlContextMap.forEach((k, v) -> jexlContext.set(k, v));
return e.evaluate(jexlContext);
}
public static void main(String[] args) {
IntervalUtil a = new IntervalUtil();
System.out.println(a.isInTheInterval("6", "(-∞,6]"));
}
}
...@@ -6,7 +6,9 @@ import com.github.wxiaoqi.security.common.util.SystemProperty; ...@@ -6,7 +6,9 @@ import com.github.wxiaoqi.security.common.util.SystemProperty;
public class ResultCode { public class ResultCode {
////////////////////////////参数相关/////////////////////////// ////////////////////////////参数相关///////////////////////////
//参数非法,请修改
public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE")); public static int PARAM_ILLEGAL_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_ILLEGAL_CODE"));
//参数时效已过时,不能使用
public static int PARAM_EXPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE")); public static int PARAM_EXPIRE_CODE = Integer.valueOf(SystemProperty.getResultConfig("PARAM_EXPIRE_CODE"));
// 操作成功 // 操作成功
......
...@@ -8,7 +8,7 @@ public enum OrderStatusEnum { ...@@ -8,7 +8,7 @@ public enum OrderStatusEnum {
ORDER_CRT(1, "创建订单"), ORDER_CRT(1, "创建订单"),
ORDER_CANCEL(2, "取消订单"), ORDER_CANCEL(2, "取消订单"),
ORDER_UNPAY(3, "待支付"), ORDER_UNPAY(3, "待支付"),
ORDER_TOSTART(4, "待进行(待出行)"), ORDER_TOSTART(4, "待进行(待出行/租车已支付)"),
ORDER_WAIT(5, "出行中(进行中)"), ORDER_WAIT(5, "出行中(进行中)"),
ORDER_FINISH(6, "已完成"), ORDER_FINISH(6, "已完成"),
; ;
......
...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign; ...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
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;
import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
...@@ -22,18 +23,19 @@ import com.xxfc.platform.vehicle.common.RestResponse; ...@@ -22,18 +23,19 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.jexl2.MapContext;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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 org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
import static com.xxfc.platform.universal.constant.DictionaryKey.RENT_REFUND;
/** /**
* *
...@@ -165,6 +167,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -165,6 +167,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* 取消订单 * 取消订单
* @param baseOrder * @param baseOrder
*/ */
@Transactional
public void cancel(BaseOrder baseOrder) { public void cancel(BaseOrder baseOrder) {
if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) { if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) {
BaseOrder updateOrder = new BaseOrder(){{ BaseOrder updateOrder = new BaseOrder(){{
...@@ -190,10 +193,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -190,10 +193,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}}); }});
//退款流程 //退款流程
refundProcess(baseOrder, orvd); rentRefundProcess(baseOrder, orvd.getDeposit(), orvd.getStartTime(), APP_ORDER+ "_"+ RENT_REFUND);
}else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) { }else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
OrderTourDetail otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
//退款流程
rentRefundProcess(baseOrder, otd.getStartTime(), APP_ORDER+ "_"+ RENT_REFUND);
} }
} }
...@@ -202,7 +209,15 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -202,7 +209,15 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail(){{ OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail(){{
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
//取消租车预定 //取消租车预定
//已支付,并且是待出行状态,取消预约
if(OrderStatusEnum.ORDER_TOSTART.equals(baseOrder.getType()) && SYS_TRUE.equals(baseOrder.getHasPay())){
vehicleFeign.unbookVehicle(orvd.getBookRecordId());
}else {
//未支付,拒绝之前的预约
vehicleFeign.rejectVehicleBooking(orvd.getBookRecordId());
}
//取消租车免费天数使用 //取消租车免费天数使用
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) { if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
...@@ -225,17 +240,64 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -225,17 +240,64 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
} }
} }
private void refundProcess(BaseOrder baseOrder, OrderRentVehicleDetail orvd) { private void rentRefundProcess(BaseOrder baseOrder, Long startTime, String dicParentKey){
rentRefundProcess(baseOrder, BigDecimal.ZERO, startTime, dicParentKey);
}
private void rentRefundProcess(BaseOrder baseOrder, BigDecimal depositAmont, Long startTime, String dicParentKey) {
//计算退款金额 //计算退款金额
// 1、押金 + 租金(规则扣除) // 1、押金 + 租金(规则扣除)
BigDecimal refundAmont = orvd.getDeposit().add(baseOrder.getGoodsAmount()); BigDecimal refundGoodsAmount = baseOrder.getGoodsAmount();
String refundTradeNo = thirdFeign.refund(new OrderRefundVo(){{ String refundDesc = "取消订单退款:";
BigDecimal refundGoodsAmont = baseOrder.getGoodsAmount();
BigDecimal refundAmont = BigDecimal.ZERO;
if(null == depositAmont) {
depositAmont = BigDecimal.ZERO;
}
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
//LocalDateTime StartDay = LocalDateTime.ofInstant(Instant.ofEpochMilli(orvd.getStartTime()), ZoneOffset.ofHours(8));
Long timeLag = startTime - System.currentTimeMillis();
Integer hourLag = Long.valueOf(timeLag/(1000L * 60L * 60L)).intValue();
Map<String, com.xxfc.platform.universal.entity.Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
//APP_ORDER+ "_"+ RENT_REFUND
Set<com.xxfc.platform.universal.entity.Dictionary> rentRefunds = dictionaryMap.get(dicParentKey).getChildrens();
for(com.xxfc.platform.universal.entity.Dictionary dic : rentRefunds) {
if(StrUtil.isBlank(dic.getName())) {
continue;
}
String[] names = dic.getName().split("\\|");
if(names.length < 2) {
continue;
}
//符合范围
if(IntervalUtil.staticIsInTheInterval(hourLag.toString(), names[0])){
refundGoodsAmont = new BigDecimal(((Double) IntervalUtil.evaluate(dic.getDetail(), new MapContext(){{
set("ga", baseOrder.getGoodsAmount());
}})).toString());
refundDesc = names[1]+ ","+ refundDesc;
break;
}
}
refundAmont = depositAmont.add(refundGoodsAmont);
OrderRefundVo orv = new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue()); setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setRefundAmount(refundAmont.multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo()); setOrderNo(baseOrder.getNo());
setRefundDesc("取消订单退款:"+ refundAmont.toString()); }};
}}).getData(); orv.setRefundDesc(refundDesc+ refundAmont.toString());
orv.setRefundAmount(refundAmont.multiply(new BigDecimal("100")).intValue());
String refundTradeNo = thirdFeign.refund(orv).getData();
//记录订单退款记录
addOrderRefund(baseOrder.getId(), refundDesc, refundAmont, refundTradeNo);
}
private void addOrderRefund(Integer orderId, String refundDesc, BigDecimal refundAmont, String refundTradeNo) {
//如果返回的流水为空,则当做失败 //如果返回的流水为空,则当做失败
Integer refundStatus = SYS_TRUE; Integer refundStatus = SYS_TRUE;
if(StrUtil.isBlank(refundTradeNo)) { if(StrUtil.isBlank(refundTradeNo)) {
...@@ -244,13 +306,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -244,13 +306,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//创建订单退款记录 //创建订单退款记录
OrderRefund orderRefund = new OrderRefund(){{ OrderRefund orderRefund = new OrderRefund(){{
setOrderId(baseOrder.getId()); setOrderId(orderId);
setRefundAmount(refundAmont);
setRefundTime(System.currentTimeMillis()); setRefundTime(System.currentTimeMillis());
setRefundDesc("取消订单退款:"+ refundAmont.toString());
setTradeNo(refundTradeNo); setTradeNo(refundTradeNo);
setRefundType(RefundTypeEnum.RentVehicle.getCode()); setRefundType(RefundTypeEnum.RentVehicle.getCode());
}}; }};
orderRefund.setRefundAmount(refundAmont);
orderRefund.setRefundDesc(refundDesc);
orderRefund.setRefundStatus(refundStatus); orderRefund.setRefundStatus(refundStatus);
orderRefundBiz.insertSelective(orderRefund); orderRefundBiz.insertSelective(orderRefund);
} }
......
...@@ -74,6 +74,7 @@ public class OrderRentVehicleController extends CommonBaseController { ...@@ -74,6 +74,7 @@ public class OrderRentVehicleController extends CommonBaseController {
if(StrUtil.isNotBlank(BaseContextHandler.getToken())) { if(StrUtil.isNotBlank(BaseContextHandler.getToken())) {
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData()); bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
} }
orderRentVehicleService.initDetailSecond(bo);
return ObjectRestResponse.succ(orderRentVehicleService.calculatePrice(bo)); return ObjectRestResponse.succ(orderRentVehicleService.calculatePrice(bo));
} }
......
...@@ -13,10 +13,12 @@ import com.xxfc.platform.order.entity.BaseOrder; ...@@ -13,10 +13,12 @@ import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.inter.OrderDetail; import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.order.mqhandler.RabbitProduct; import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.price.OrderPriceVO; import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.universal.entity.Dictionary;
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;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Map;
@Transactional @Transactional
public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends OrderDetail>{ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends OrderDetail>{
...@@ -26,6 +28,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or ...@@ -26,6 +28,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
@Autowired @Autowired
protected Biz detailBiz; protected Biz detailBiz;
protected Map<String, Dictionary> dictionaryMap;
@Autowired @Autowired
RabbitProduct rabbitProduct; RabbitProduct rabbitProduct;
......
...@@ -24,6 +24,7 @@ import javax.annotation.PostConstruct; ...@@ -24,6 +24,7 @@ import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
@Service @Service
@Log4j @Log4j
...@@ -69,8 +70,8 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -69,8 +70,8 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
super.initDetail(bo); super.initDetail(bo);
BaseUserMemberLevel buml = userFeign.level(bo.getMemberLevel()); BaseUserMemberLevel buml = userFeign.level(bo.getMemberLevel());
if(!bo.getMemberLevelId().equals(buml.getId())) { if(!bo.getMemberLevelId().equals(buml.getId())) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, new HashMap<String, Object>(){{ throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, new HashSet<String>(){{
put("MemberLevelId 和 MemberLevel", "不对称"); add("MemberLevelId 和 MemberLevel不对称");
}}); }});
} }
bo.setBaseUserMemberLevel(buml); bo.setBaseUserMemberLevel(buml);
......
...@@ -20,7 +20,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; ...@@ -20,7 +20,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderTemplate; import com.xxfc.platform.order.entity.OrderTemplate;
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.entity.Dictionary; 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.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
...@@ -33,8 +33,10 @@ import org.springframework.stereotype.Service; ...@@ -33,8 +33,10 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*; import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
@Log4j @Log4j
...@@ -47,6 +49,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -47,6 +49,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
private static Integer DISCOUNT_STATUS_NONE = 0; private static Integer DISCOUNT_STATUS_NONE = 0;
private static Integer DISCOUNT_STATUS_MEMBER = 1; private static Integer DISCOUNT_STATUS_MEMBER = 1;
private static Integer DISCOUNT_STATUS_FIXED = 2; private static Integer DISCOUNT_STATUS_FIXED = 2;
private static Long autoCancelTime;
@Autowired @Autowired
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
...@@ -72,23 +75,21 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -72,23 +75,21 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Override @Override
public void initDetail(RentVehicleBO bo) { public void initDetail(RentVehicleBO bo) {
super.initDetail(bo); super.initDetail(bo);
initDetailSecond(bo);
}
public void initDetailSecond(RentVehicleBO bo) {
initDictionary(); initDictionary();
VehicleModel vehicleModel = vehicleFeign.get(bo.getModelId()).getData(); VehicleModel vehicleModel = vehicleFeign.get(bo.getModelId()).getData();
bo.setVehicleModel(vehicleModel); bo.setVehicleModel(vehicleModel);
} }
private void initDictionary() { public void initDictionary() {
Dictionary driverPriceDic = thirdFeign.dictionaryGet(BeanUtil.beanToMap(new Dictionary(){{ dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
setType("APP_ORDER"); this.autoCancelTime = Long.valueOf(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_RENT).getDetail());
setCode("DRIVER_PRICE"); this.DRIVER_PRICE = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.DRIVER_PRICE).getDetail());
}}, false, true)).getData().get(0); this.DAMAGE_SAFE = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.DAMAGE_SAFE).getDetail());
Dictionary damageSafeDic = thirdFeign.dictionaryGet(BeanUtil.beanToMap(new Dictionary(){{
setType("APP_ORDER");
setCode("DAMAGE_SAFE");
}}, false, true)).getData().get(0);
this.DRIVER_PRICE = new BigDecimal(driverPriceDic.getDetail());
this.DAMAGE_SAFE = new BigDecimal(damageSafeDic.getDetail());
} }
@Override @Override
...@@ -112,9 +113,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -112,9 +113,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
super.handleDetail(bo); super.handleDetail(bo);
//发送定时取消订单(30分钟) //发送定时取消订单(数据字典设置--5分钟)
//rabbitProduct.sendDelayMessage(bo.getOrder(), 1000L * 60 * 30); rabbitProduct.sendDelayMessage(bo.getOrder(), autoCancelTime);
rabbitProduct.sendDelayMessage(bo.getOrder(), 1000L * 60 * 5);
} }
@Override @Override
...@@ -139,8 +139,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -139,8 +139,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果用户存在,并且为会员,并且车辆有优惠价 //如果用户存在,并且为会员,并且车辆有优惠价
if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) { if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) {
if(dto.getRentFreeDays() <= 0) { if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) {
throw new BaseException(ResultCode.PARAM_EXPIRE_CODE); throw new BaseException(ResultCode.PARAM_EXPIRE_CODE, new HashSet<String>() {{
add("免费租车天数不存在或为0");
}});
} }
if(detail.getDayNum() > dto.getRentFreeDays()) { if(detail.getDayNum() > dto.getRentFreeDays()) {
freeDayNum = dto.getRentFreeDays(); freeDayNum = dto.getRentFreeDays();
...@@ -194,25 +196,26 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -194,25 +196,26 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
orderAmount = orderAmount.add(goodsAmount).add(vehicleModel.getDeposit()); orderAmount = orderAmount.add(goodsAmount).add(vehicleModel.getDeposit());
//生成订单明细 //生成订单明细
RentVehiclePriceVO rvp = new RentVehiclePriceVO(); RentVehiclePriceVO rvp = new RentVehiclePriceVO(){{
rvp.setOrderAmount(orderAmount); setOrderAmount(orderAmount);
rvp.setGoodsAmount(goodsAmount); setGoodsAmount(goodsAmount);
setRealAmount(orderAmount);
setDeposit(vehicleModel.getDeposit());
setDriverPrice(DRIVER_PRICE);
setDamageSafePrice(DAMAGE_SAFE);
setModelName(vehicleModel.getName());
setDayNum(detail.getDayNum());
setVehicleNum(1);
setDriverNum(1);
}};
rvp.setDriverAmount(driverAmount); rvp.setDriverAmount(driverAmount);
rvp.setVehicleAmount(vehicleAmount); rvp.setVehicleAmount(vehicleAmount);
rvp.setDamageSafeAmount(damageSafeAmount); rvp.setDamageSafeAmount(damageSafeAmount);
rvp.setRealAmount(orderAmount);
rvp.setDeposit(vehicleModel.getDeposit());
rvp.setModelAmount(modelAmount); rvp.setModelAmount(modelAmount);
rvp.setDriverPrice(DRIVER_PRICE);
rvp.setDamageSafePrice(DAMAGE_SAFE);
rvp.setModelName(vehicleModel.getName());
rvp.setDayNum(detail.getDayNum());
rvp.setVehicleDayNum(vehicleDayNum); rvp.setVehicleDayNum(vehicleDayNum);
rvp.setVehicleNum(1);
rvp.setDriverNum(1);
//设置收费明细 //设置收费明细
costDetail(rvp, handlechildren(detail, vehicleDayNum)); costDetail(rvp, handleChildren(detail, vehicleDayNum));
return rvp; return rvp;
} }
...@@ -234,7 +237,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -234,7 +237,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
return modelAmount; return modelAmount;
} }
private String handlechildren(RentVehicleBO detail, Integer vehicleDayNum) { private String handleChildren(RentVehicleBO detail, Integer vehicleDayNum) {
StringBuffer childrenStr = new StringBuffer(""); StringBuffer childrenStr = new StringBuffer("");
if(vehicleDayNum > 0) { if(vehicleDayNum > 0) {
childrenStr.append(",${tem_0101}"); childrenStr.append(",${tem_0101}");
......
...@@ -6,7 +6,9 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,7 +6,9 @@ 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;
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.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.OrderCostDetailBiz; import com.xxfc.platform.order.biz.OrderCostDetailBiz;
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;
...@@ -22,6 +24,8 @@ import com.xxfc.platform.tour.entity.TourGoodVerification; ...@@ -22,6 +24,8 @@ import com.xxfc.platform.tour.entity.TourGoodVerification;
import com.xxfc.platform.tour.entity.TourUser; import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign; import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.tour.vo.TourSpePriceVo; import com.xxfc.platform.tour.vo.TourSpePriceVo;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.SysRegion; import com.xxfc.platform.vehicle.entity.SysRegion;
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.CompanyDetail;
...@@ -34,11 +38,12 @@ import javax.servlet.http.HttpServletRequest; ...@@ -34,11 +38,12 @@ import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
@Log4j @Log4j
...@@ -49,13 +54,13 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -49,13 +54,13 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Autowired @Autowired
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
private static Integer IS_CHILD = 1; private static Integer IS_CHILD = 1;
private static Integer LEVEL_DEFAULT = 0; private static Integer LEVEL_DEFAULT = 0;
private static Integer NUMBER_ZERO = 0; private static Integer NUMBER_ZERO = 0;
private static BigDecimal INSURE_PRICE = new BigDecimal("5.00"); //保险 private static BigDecimal INSURE_PRICE;
private static Long autoCancelTime;
//= new BigDecimal("5.00"); //保险
@Autowired @Autowired
OrderCostDetailBiz orderCostDetailBiz; OrderCostDetailBiz orderCostDetailBiz;
...@@ -69,6 +74,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -69,6 +74,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
@Autowired
ThirdFeign thirdFeign;
@Autowired @Autowired
public HttpServletRequest request; public HttpServletRequest request;
...@@ -84,11 +92,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -84,11 +92,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Override @Override
public void initDetail(TourBO bo) { public void initDetail(TourBO bo) {
super.initDetail(bo); super.initDetail(bo);
initDictionary();
TourGood tourGood = tourFeign.usableGet(bo.getGoodId()).getData(); TourGood tourGood = tourFeign.usableGet(bo.getGoodId()).getData();
bo.setTourGood(tourGood); bo.setTourGood(tourGood);
bo.setAppUserDTO(getUserInfo()); bo.setAppUserDTO(getUserInfo());
} }
public void initDictionary() {
dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
this.INSURE_PRICE = new BigDecimal(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.INSURE_PRICE).getDetail());
this.autoCancelTime = Long.valueOf(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.ACT_TOUR).getDetail());
}
@Override @Override
public void handleDetail(TourBO bo) { public void handleDetail(TourBO bo) {
//设置订单状态为3 //设置订单状态为3
...@@ -117,7 +132,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -117,7 +132,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
super.handleDetail(bo); super.handleDetail(bo);
//发送定时取消订单(30分钟) //发送定时取消订单(30分钟)
rabbitProduct.sendDelayMessage(bo.getOrder(), 1000L * 60 * 30); rabbitProduct.sendDelayMessage(bo.getOrder(), autoCancelTime);
} }
@Override @Override
...@@ -156,6 +171,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -156,6 +171,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
detail.setTotalNumber(detail.getAdultNum() + detail.getChildNum()); detail.setTotalNumber(detail.getAdultNum() + detail.getChildNum());
} }
if(detail.getAdultNum() <= 0) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, new HashSet<String>(){{add("最少一个成人");}});
}
//计算旅游价格 //计算旅游价格
ObjectRestResponse<TourSpePriceVo> objectRestResponse = tourFeign.refund(new TourSpePriceDTO(){{ ObjectRestResponse<TourSpePriceVo> objectRestResponse = tourFeign.refund(new TourSpePriceDTO(){{
setChildNumber(detail.getChildNum()); setChildNumber(detail.getChildNum());
...@@ -193,11 +212,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -193,11 +212,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tpv.setTotalNumber(detail.getTotalNumber()); tpv.setTotalNumber(detail.getTotalNumber());
//设置收费明细 //设置收费明细
costDetail(tpv, handlechildren(detail)); costDetail(tpv, handleChildren(detail));
return tpv; return tpv;
} }
private String handlechildren(TourBO detail) { private String handleChildren(TourBO detail) {
StringBuffer childrenStr = new StringBuffer(""); StringBuffer childrenStr = new StringBuffer("");
if(NUMBER_ZERO < detail.getAdultNum()) { if(NUMBER_ZERO < detail.getAdultNum()) {
childrenStr.append(",${tem_0201}"); childrenStr.append(",${tem_0201}");
......
package com.xxfc.platform.universal.constant;
public class DictionaryKey {
/**
* 订单类型
*/
public static final String APP_ORDER ="APP_ORDER";
/**
* 租车,旅游退款
*/
public static final String RENT_REFUND ="RENT_REFUND";
public static final String TOUR_REFUND ="TOUR_REFUND";
/**
* 租车:公司司机租金、免赔费用
*/
public static final String DRIVER_PRICE ="DRIVER_PRICE";
public static final String DAMAGE_SAFE ="DAMAGE_SAFE";
/**
* 旅游:保险费用
*/
public static final String INSURE_PRICE ="INSURE_PRICE";
/**
* 自动取消订单时间:租车、旅游
*/
public static final String ACT_RENT = "ACT_RENT";
public static final String ACT_TOUR = "ACT_TOUR";
}
...@@ -69,4 +69,7 @@ public interface ThirdFeign { ...@@ -69,4 +69,7 @@ public interface ThirdFeign {
// @GetMapping(value = "/dictionary/get") // @GetMapping(value = "/dictionary/get")
@RequestMapping(value = "/dictionary/get", method = RequestMethod.GET) @RequestMapping(value = "/dictionary/get", method = RequestMethod.GET)
public ObjectRestResponse<List<Dictionary>> dictionaryGet(@RequestParam(value = "dictionary") Map<String, Object> dictionary); public ObjectRestResponse<List<Dictionary>> dictionaryGet(@RequestParam(value = "dictionary") Map<String, Object> dictionary);
@RequestMapping(value = "/dictionary/getAll4Map", method = RequestMethod.GET)
public ObjectRestResponse<Map<String, Dictionary>> dictionaryGetAll4Map();
} }
...@@ -12,10 +12,9 @@ import lombok.extern.slf4j.Slf4j; ...@@ -12,10 +12,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.*;
import java.util.HashSet; import java.util.function.Function;
import java.util.List; import java.util.stream.Collectors;
import java.util.Set;
@Service @Service
@Slf4j @Slf4j
...@@ -83,6 +82,11 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> { ...@@ -83,6 +82,11 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
if(StringUtils.isEmpty(type)) { if(StringUtils.isEmpty(type)) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
List<Dictionary> dictionaryList = getParentCommon(type);
return ObjectRestResponse.succ(dictionaryList);
}
private List<Dictionary> getParentCommon(String type) {
Dictionary dictionary = new Dictionary(); Dictionary dictionary = new Dictionary();
dictionary.setType(type); dictionary.setType(type);
dictionary.setPid(0); dictionary.setPid(0);
...@@ -91,10 +95,19 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> { ...@@ -91,10 +95,19 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
Set<Dictionary> dictionaryVoList = buildTree(parent.getId()); Set<Dictionary> dictionaryVoList = buildTree(parent.getId());
parent.setChildrens(dictionaryVoList); parent.setChildrens(dictionaryVoList);
} }
return ObjectRestResponse.succ(dictionaryList); return dictionaryList;
} }
public Map<String, Dictionary> getAll4Map(){
// List<Dictionary> dictionaries = this.getParentCommon(null);
List<Dictionary> dictionaries = selectListAll();
Map<String, Dictionary> dictionaryMap = dictionaries.parallelStream().collect(Collectors.toMap(dic -> dic.getType()+ "_"+ dic.getCode()
, Function.identity(), (oldValue, newValue) -> newValue));
dictionaryMap.forEach((k,v) -> {
v.setChildrens(buildTree(v.getId()));
});
return dictionaryMap;
}
public DictionaryVo buidTree(Dictionary dictionary) { public DictionaryVo buidTree(Dictionary dictionary) {
DictionaryVo dictionaryVo = new DictionaryVo(); DictionaryVo dictionaryVo = new DictionaryVo();
......
...@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
@RestController @RestController
@RequestMapping(value = "dictionary") @RequestMapping(value = "dictionary")
...@@ -47,4 +48,10 @@ public class DictionaryController { ...@@ -47,4 +48,10 @@ public class DictionaryController {
public ObjectRestResponse<List<Dictionary>> getParent(String type) { public ObjectRestResponse<List<Dictionary>> getParent(String type) {
return dictionaryBiz.getParent(type); return dictionaryBiz.getParent(type);
} }
@GetMapping(value = "/getAll4Map")
@ApiOperation(value = "获取所有的内容, key为 <type>_<code>")
public ObjectRestResponse<Map<String, Dictionary>> getAll4Map() {
return ObjectRestResponse.succ(dictionaryBiz.getAll4Map());
}
} }
...@@ -37,10 +37,16 @@ public interface VehicleFeign { ...@@ -37,10 +37,16 @@ public interface VehicleFeign {
@RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET) @RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET)
public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id); public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id);
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE) //拒绝预约
@RequestMapping(value = "/vehicleInfo/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT)
public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId);
//取消预约
@RequestMapping(value = "/vehicleInfo/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId); public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId);
@RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT) //通过预约
@RequestMapping(value = "/vehicleInfo/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT)
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId); public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId);
//获取分公司列表 //获取分公司列表
......
...@@ -449,6 +449,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -449,6 +449,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
if(effected == 0){//修改失败,手动回滚 if(effected == 0){//修改失败,手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//手动回滚
return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode()); return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
}else if(VehicleBookRecordStatus.REJECTED.getCode().equals(rsStatus)){
//拒绝,则释放bookinfo
bookVehicleVo.setUnbookStartDate(bookVehicleVo.getBookStartDate());
bookVehicleVo.setUnbookEndDate(bookVehicleVo.getBookEndDate());
Boolean hasSuc = unbookVehicle(bookVehicleVo);
} }
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -645,7 +650,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -645,7 +650,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
} }
/** /**
* 取消预定 * 取消预定(释放bookinfo)
* @return * @return
*/ */
@Transactional @Transactional
......
...@@ -42,10 +42,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -42,10 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -401,8 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -401,8 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
//查询可车辆信息 //查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto); PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) { if (pageDataVO.getData().size() <= 0) {
throw new BaseException(ResultCode.NOTEXIST_CODE, new HashMap<String, Object>(){{ throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{
put("可用车辆", "不存在"); add("可用车辆不存在");
}}); }});
} }
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId()); bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
......
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