Commit 9a56695c authored by 周健威's avatar 周健威

修改明细,车型检索等

parent b626698e
...@@ -46,7 +46,9 @@ public class GlobalExceptionHandler { ...@@ -46,7 +46,9 @@ public class GlobalExceptionHandler {
@ExceptionHandler(BaseException.class) @ExceptionHandler(BaseException.class)
public BaseResponse baseExceptionHandler(HttpServletResponse response, BaseException ex) { public BaseResponse baseExceptionHandler(HttpServletResponse response, BaseException ex) {
logger.error(ex.getMessage(),ex); logger.error(ex.getMessage(),ex);
response.setStatus(500); if(0 == ex.getStatus()) {
response.setStatus(500);
}
return new BaseResponse(ex.getStatus(), ex.getMessage()); return new BaseResponse(ex.getStatus(), ex.getMessage());
} }
......
package com.github.wxiaoqi.security.common.msg; package com.github.wxiaoqi.security.common.msg;
import com.github.wxiaoqi.security.common.constant.RestCode;
/** /**
* Created by Ace on 2017/6/11. * Created by Ace on 2017/6/11.
*/ */
...@@ -45,4 +47,7 @@ public class ObjectRestResponse<T> extends BaseResponse { ...@@ -45,4 +47,7 @@ public class ObjectRestResponse<T> extends BaseResponse {
this.data = data; this.data = data;
} }
public static ObjectRestResponse success() {
return new ObjectRestResponse().status(RestCode.SUCCESS.getStatus()).msg(RestCode.SUCCESS.getMsg()).rel(true);
}
} }
#代码生成器,配置信息 #代码生成器,配置信息
#包名 #包名
package=com.xxfc.platform.universal package=com.xxfc.platform.order
#作者 #作者
author=zjw author=zjw
#Email #Email
......
...@@ -20,13 +20,6 @@ public enum OrderStatusEnum { ...@@ -20,13 +20,6 @@ public enum OrderStatusEnum {
private String desc; private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>(); private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
// static{
// for(VehicleBookRecordStatus constantType : VehicleBookRecordStatus.values()){
// codeAndDesc.put(constantType.getCode(),constantType.getDesc());
// }
// }
OrderStatusEnum(Integer code, String desc){ OrderStatusEnum(Integer code, String desc){
this.code=code; this.code=code;
......
...@@ -96,6 +96,13 @@ public class BaseOrder implements Serializable { ...@@ -96,6 +96,13 @@ public class BaseOrder implements Serializable {
@Column(name = "name") @Column(name = "name")
@ApiModelProperty(value = "名称") @ApiModelProperty(value = "名称")
private String name; private String name;
/**
* 取消原因
*/
@Column(name = "cancel_reason")
@ApiModelProperty(value = "取消原因")
private String cancelReason;
//创建时间 //创建时间
@Column(name = "crt_time") @Column(name = "crt_time")
......
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 费用明细
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-04 22:14:33
*/
@Data
@Table(name = "order_template")
public class OrderTemplate implements Serializable {
private static final long serialVersionUID = 1L;
//主键
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
//模板名称
@Column(name = "name")
@ApiModelProperty(value = "模板名称")
private String name;
//模板内容
@Column(name = "template")
@ApiModelProperty(value = "模板内容")
private String template;
//代号
@Column(name = "code")
@ApiModelProperty(value = "代号")
private String code;
//
@Column(name = "param_key")
@ApiModelProperty(value = "")
private String paramKey;
}
package com.xxfc.platform.order.vo; package com.xxfc.platform.order.pojo;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Data @Data
public class AddRentVehicleDTO{ public class AddRentVehicleDTO{
......
package com.xxfc.platform.order.pojo.order;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CancelOrderDTO {
@ApiModelProperty(value = "取消原因")
private String cancelReason;
}
\ No newline at end of file
package com.xxfc.platform.order.vo.order; package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data; import lombok.Data;
import java.util.Map;
@Data @Data
public class OrderDetailVO extends OrderPageVO { public class OrderDetailVO extends OrderPageVO {
VehicleModel vehicleModel; VehicleModel vehicleModel;
......
package com.xxfc.platform.order.vo.order; package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import lombok.Data; import lombok.Data;
import java.util.List;
import java.util.Map; import java.util.Map;
@Data @Data
......
package com.xxfc.platform.order.vo.order; package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.BaseOrder; 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.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.vo.price.RentVehiclePriceVO;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleModel; import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data; import lombok.Data;
......
package com.xxfc.platform.order.vo.pay; package com.xxfc.platform.order.pojo.pay;
import com.xxfc.platform.universal.vo.OrderPayVo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
package com.xxfc.platform.order.vo.price; package com.xxfc.platform.order.pojo.price;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
......
package com.xxfc.platform.order.vo.price; package com.xxfc.platform.order.pojo.price;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
......
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
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.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.mapper.BaseOrderMapper; import com.xxfc.platform.order.mapper.BaseOrderMapper;
import com.xxfc.platform.order.vo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -21,4 +27,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -21,4 +27,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){ public List<OrderPageVO> pageByParm(Map<String, Object> paramMap){
return mapper.pageByParm(paramMap); return mapper.pageByParm(paramMap);
} }
private static Map<Integer, List<Integer>> cancelAble;
static {
cancelAble = new HashMap<Integer, List<Integer>>();
cancelAble.put(OrderTypeEnum.RentVehicle.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
}});
}
public void cancel(BaseOrder baseOrder) {
if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) {
this.updateSelectiveById(new BaseOrder(){{
setId(baseOrder.getId());
setStatus(OrderStatusEnum.ORDER_CANCEL.getCode());
setCancelReason(baseOrder.getCancelReason());
}});
}else {
throw new BaseException(ResultCode.FAILED_CODE);
}
}
} }
\ No newline at end of file
package com.xxfc.platform.order.biz;
import cn.hutool.core.lang.Dict;
import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.mapper.OrderTemplateMapper;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 费用明细
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-04 22:14:33
*/
@Service
public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate> {
public String result (OrderTemplate orderTemplate, Dict dict) {
// TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig());
// OrderCostDetail orderCostDetail = orderCostDetailBiz.selectById(OrderCostEnum.RentVehicle.getCode());
// Template template = engine.getTemplate(orderCostDetail.getTemplate());
// String result = template.render(Dict.parse(vo));
// vo.setCostDetail(result);
List<OrderTemplate> all = this.selectListAll();
Map<String, Object> allCodeMap = all.parallelStream().collect(Collectors.toMap(item -> "tem_"+ item.getCode(), OrderTemplate::getTemplate));
List<String> codes = all.parallelStream().map(OrderTemplate::getCode).collect(Collectors.toList());
String result = "";
TemplateEngine engine = TemplateUtil.createEngine();
//匹配模板 ParamKey() 判断是否存在别的模板
List<String> list = Arrays.asList(orderTemplate.getParamKey().split(",")).parallelStream().filter(item -> codes.contains(item)).collect(Collectors.toList());
if(list.size() > 0) {
allCodeMap.remove("tem_0101");
Template template = engine.getTemplate(orderTemplate.getTemplate());
result = template.render(new Dict(allCodeMap));
}
//匹配参数 填充参数
return result;
}
// public Map<String, OrderTemplate> allCodeMap() {
// return this.selectListAll().parallelStream().collect(Collectors.toMap(OrderTemplate::getCode, template -> template));
// }
}
\ No newline at end of file
package com.xxfc.platform.order.config;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.BaseResponse;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class PlatformExceptionHandler {
@ExceptionHandler(BaseException.class)
public BaseResponse baseExceptionHandler(BaseException e) {
return new BaseResponse(e.getStatus(), e.getMessage());
}
}
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.vo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderTemplate;
import tk.mybatis.mapper.common.Mapper;
/**
* 费用明细
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-04 22:14:33
*/
public interface OrderTemplateMapper extends Mapper<OrderTemplate> {
}
...@@ -17,13 +17,13 @@ import com.github.wxiaoqi.security.common.vo.PageParam; ...@@ -17,13 +17,13 @@ import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.inter.OrderDetail; import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.vo.order.OrderDetailVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.vo.order.OrderPageVO; import com.xxfc.platform.order.pojo.pay.RentVehicleOrderPayVO;
import com.xxfc.platform.order.vo.pay.RentVehicleOrderPayVO;
import com.xxfc.platform.universal.constant.enumerate.PayChannelEnum; import com.xxfc.platform.universal.constant.enumerate.PayChannelEnum;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderPayVo; import com.xxfc.platform.universal.vo.OrderPayVo;
import com.xxfc.platform.vehicle.entity.VehicleCata;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -34,6 +34,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -34,6 +34,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -73,7 +75,6 @@ public class BaseOrderController extends CommonBaseController { ...@@ -73,7 +75,6 @@ public class BaseOrderController extends CommonBaseController {
return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query.getPage(), query.getLimit(), baseOrderBiz.pageByParm(query.getSuper()))); return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query.getPage(), query.getLimit(), baseOrderBiz.pageByParm(query.getSuper())));
} }
@ApiOperation("订单详情") @ApiOperation("订单详情")
@RequestMapping(value = "/{no}",method = RequestMethod.GET) @RequestMapping(value = "/{no}",method = RequestMethod.GET)
@IgnoreClientToken @IgnoreClientToken
...@@ -125,7 +126,26 @@ public class BaseOrderController extends CommonBaseController { ...@@ -125,7 +126,26 @@ public class BaseOrderController extends CommonBaseController {
orderPayVo.setUserId(baseOrder.getUserId()); orderPayVo.setUserId(baseOrder.getUserId());
ObjectRestResponse response = BeanUtil.toBean(thirdFeign.wx(orderPayVo), ObjectRestResponse.class); ObjectRestResponse response = BeanUtil.toBean(thirdFeign.wx(orderPayVo), ObjectRestResponse.class);
return response; return response;
//.data(PageDataVO.pageInfo(query.getPage(), query.getLimit(), baseOrderBiz.pageByParm(query.getSuper()))); }
@RequestMapping(value = "/cancel/{no}",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "取消订单")
@IgnoreClientToken
public ObjectRestResponse cancel(@PathVariable String no, @RequestBody CancelOrderDTO cancelOrderDto){
//查询列表数据
if(StringUtils.isBlank(BaseContextHandler.getUserID())) {
throw new BaseException(ResultCode.AJAX_WECHAT_NOTEXIST_CODE);
}
BaseOrder dbBaseOrder = baseOrderBiz.selectOne(new BaseOrder(){{
setNo(no);
}});
if(null == dbBaseOrder || !BaseContextHandler.getUserID().equals(dbBaseOrder.getUserId().toString())) {
throw new BaseException(ResultCode.NOTEXIST_CODE);
}
dbBaseOrder.setCancelReason(cancelOrderDto.getCancelReason());
baseOrderBiz.cancel(dbBaseOrder);
return ObjectRestResponse.success();
} }
@RequestMapping(value = "/app/unauth/notifyUrl",method = RequestMethod.GET) @RequestMapping(value = "/app/unauth/notifyUrl",method = RequestMethod.GET)
......
...@@ -5,13 +5,13 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; ...@@ -5,13 +5,13 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController; import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz; import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.service.OrderRentVehicleService; import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.order.vo.AddRentVehicleDTO; import com.xxfc.platform.order.pojo.AddRentVehicleDTO;
import com.xxfc.platform.order.vo.order.RentVehicleBO; import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.vo.price.OrderPriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.order.vo.price.RentVehiclePriceVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -19,7 +19,6 @@ import lombok.Data; ...@@ -19,7 +19,6 @@ import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
@Controller @Controller
@RequestMapping("orderRentVehicle") @RequestMapping("orderRentVehicle")
...@@ -33,6 +32,9 @@ public class OrderRentVehicleController extends CommonBaseController { ...@@ -33,6 +32,9 @@ public class OrderRentVehicleController extends CommonBaseController {
@Autowired @Autowired
OrderRentVehicleBiz orderRentVehicleBiz; OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
BaseOrderBiz baseOrderBiz;
@RequestMapping(value = "add",method = RequestMethod.POST) @RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "确认租车订单") @ApiOperation(value = "确认租车订单")
......
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.entity.OrderTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("orderTemplate")
public class OrderTemplateController extends BaseController<OrderTemplateBiz,OrderTemplate> {
}
\ No newline at end of file
package com.xxfc.platform.order.service; package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler; import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
...@@ -12,7 +11,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; ...@@ -12,7 +11,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; 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.vo.price.OrderPriceVO; import com.xxfc.platform.order.pojo.price.OrderPriceVO;
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;
......
...@@ -8,13 +8,13 @@ import cn.hutool.extra.template.TemplateEngine; ...@@ -8,13 +8,13 @@ import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil; import cn.hutool.extra.template.TemplateUtil;
import com.xxfc.platform.order.biz.OrderCostDetailBiz; import com.xxfc.platform.order.biz.OrderCostDetailBiz;
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.contant.enumerate.OrderCostEnum; import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderCostDetail; import com.xxfc.platform.order.entity.OrderCostDetail;
import com.xxfc.platform.order.vo.order.RentVehicleBO; import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.vo.price.OrderPriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.order.vo.price.RentVehiclePriceVO;
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 lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
...@@ -29,6 +29,7 @@ import java.math.BigDecimal; ...@@ -29,6 +29,7 @@ import java.math.BigDecimal;
public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicleBiz, RentVehicleBO> { public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicleBiz, RentVehicleBO> {
private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00"); private static BigDecimal DRIVER_PRICE = new BigDecimal("600.00");
private static BigDecimal DAMAGE_SAFE = new BigDecimal("100.00"); //车损免赔
private static Integer DRIVER_TYPE_COMPANY = 1; private static Integer DRIVER_TYPE_COMPANY = 1;
private static BigDecimal DEPOSIT = new BigDecimal("20000.00"); private static BigDecimal DEPOSIT = new BigDecimal("20000.00");
...@@ -38,6 +39,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -38,6 +39,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Autowired @Autowired
OrderCostDetailBiz orderCostDetailBiz; OrderCostDetailBiz orderCostDetailBiz;
@Autowired
OrderTemplateBiz orderTemplateBiz;
@PostConstruct @PostConstruct
public void init(){ public void init(){
this.orderTypeEnum = OrderTypeEnum.RentVehicle; this.orderTypeEnum = OrderTypeEnum.RentVehicle;
...@@ -117,6 +121,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -117,6 +121,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
* @return * @return
*/ */
private String costDetail(RentVehiclePriceVO vo) { private String costDetail(RentVehiclePriceVO vo) {
//orderTemplateBiz.result(orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode()), Dict.parse(vo));
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig()); TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig());
OrderCostDetail orderCostDetail = orderCostDetailBiz.selectById(OrderCostEnum.RentVehicle.getCode()); OrderCostDetail orderCostDetail = orderCostDetailBiz.selectById(OrderCostEnum.RentVehicle.getCode());
Template template = engine.getTemplate(orderCostDetail.getTemplate()); Template template = engine.getTemplate(orderCostDetail.getTemplate());
......
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
<!-- <result property="updHost" column="upd_host"/>--> <!-- <result property="updHost" column="upd_host"/>-->
<!-- </resultMap>--> <!-- </resultMap>-->
<resultMap type="com.xxfc.platform.order.vo.order.OrderPageVO" id="orderPageMap"> <resultMap type="com.xxfc.platform.order.pojo.order.OrderPageVO" id="orderPageMap">
<result javaType="Integer" column="type" property="type"></result> <result javaType="Integer" column="type" property="type"></result>
<discriminator javaType="Integer" column="type"> <discriminator javaType="Integer" column="type">
<case value="1" resultType="com.xxfc.platform.order.vo.order.OrderPageVO"> <case value="1" resultType="com.xxfc.platform.order.pojo.order.OrderPageVO">
<association column="id" property="detail" select="com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper.oneByOrderId"></association> <association column="id" property="detail" select="com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper.oneByOrderId"></association>
</case> </case>
</discriminator> </discriminator>
......
package com.xxfc.platform.order; package com.xxfc.platform.order;
import cn.hutool.core.lang.Dict;
import cn.hutool.extra.template.Template; import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine; import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil; import cn.hutool.extra.template.TemplateUtil;
import com.xxfc.platform.order.vo.price.OrderPriceVO;
import com.xxfc.platform.order.vo.price.RentVehiclePriceVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.math.BigDecimal;
@Slf4j @Slf4j
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes={OrderApplication.class}) @SpringBootTest(classes={OrderApplication.class})
......
...@@ -246,13 +246,37 @@ ...@@ -246,13 +246,37 @@
<select id="searchUsableModel" parameterType="java.util.Map" <select id="searchUsableModel" parameterType="java.util.Map"
resultMap="searchUsableModelMap"> resultMap="searchUsableModelMap">
select distinct vm.id as model_id, bc.id as company_id select distinct vm.id as model_id, bc.id as company_id
<if test=" catas != null ">
GROUP_CONCAT(vc.cata_id) as catas,
</if>
<if test="lon != null and lat != null"> <if test="lon != null and lat != null">
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance ,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
</if> </if>
<if test=" yearMonthAndParam !=null ">
,vbi.booked_date
</if>
<include refid="searchUsableSql"/> <include refid="searchUsableSql"/>
GROUP BY model_id, company_id<if test="lon != null and lat != null">, distance</if>
<!-- 循环 相同父级 数据做并集, 不同父级做或集 -->
<if test=" catas != null ">
having ( 0
<foreach collection="catas" index="key" item="cataList">
| (
<foreach collection="cataList" index="cIndex" item="cata">
<if test=" cIndex != 0">
&amp;
</if>
FIND_IN_SET(vc.cata_id,catas)
</foreach>
)
</foreach>
) > 0
</if>
<if test="lon != null and lat != null">
order by
distance asc
</if>
</select> </select>
<select id="searchUsableVehicle" parameterType="java.util.Map" <select id="searchUsableVehicle" parameterType="java.util.Map"
...@@ -262,9 +286,13 @@ ...@@ -262,9 +286,13 @@
,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance ,st_distance_sphere(point(#{lon}, #{lat}), point(bc.longitude, bc.latitude)) as distance
</if> </if>
<if test=" yearMonthAndParam !=null "> <if test=" yearMonthAndParam !=null ">
,vbi.booked_date ,ifnull(vbi.booked_date,0) as booked_date
</if> </if>
<include refid="searchUsableSql"/> <include refid="searchUsableSql"/>
<if test="lon != null and lat != null">
order by
distance asc
</if>
</select> </select>
<sql id="searchUsableSql"> <sql id="searchUsableSql">
...@@ -291,23 +319,10 @@ ...@@ -291,23 +319,10 @@
<if test=" modelId != null "> <if test=" modelId != null ">
and v.model_id = #{modelId} and v.model_id = #{modelId}
</if> </if>
<if test=" catas != null "> <if test=" addrCity != null ">
<foreach collection="catas" index="key" item="cataList"> and bc.addr_city = #{addrCity}
and (
<foreach collection="cataList" index="cIndex" item="cata">
<if test=" cIndex != 0">
or
</if>
vc.cata_id = #{cata.id}
</foreach>
)
</foreach>
</if> </if>
</where> </where>
<if test="lon != null and lat != null">
order by
distance asc
</if>
</sql> </sql>
</mapper> </mapper>
\ No newline at end of file
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