Commit 72036fd3 authored by hezhen's avatar hezhen

添加接单功能

parent e530bd36
...@@ -54,6 +54,8 @@ public class RabbitConstant { ...@@ -54,6 +54,8 @@ public class RabbitConstant {
public static final String KEY_VCOMPANY_UPD="vcompany:upd"; public static final String KEY_VCOMPANY_UPD="vcompany:upd";
public static final String KEY_VEHICLE_RECEIVE="vehicle:receive";
static { static {
exchangeTopicSet = new HashSet<String>() {{ exchangeTopicSet = new HashSet<String>() {{
add(ADMIN_TOPIC); add(ADMIN_TOPIC);
......
...@@ -8,6 +8,7 @@ public enum OrderTypeEnum { ...@@ -8,6 +8,7 @@ public enum OrderTypeEnum {
TOUR(2, "旅游订单"), TOUR(2, "旅游订单"),
MEMBER(3, "会员订单"), MEMBER(3, "会员订单"),
ACTIVITY(4, "活动订单"), ACTIVITY(4, "活动订单"),
PUBLISH(5, "调车需求订单"),
; ;
/** /**
* 编码 * 编码
......
...@@ -2,10 +2,12 @@ package com.xxfc.platform.order.feign; ...@@ -2,10 +2,12 @@ package com.xxfc.platform.order.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderInvoice; import com.xxfc.platform.order.entity.OrderInvoice;
import com.xxfc.platform.order.pojo.dto.OrderDTO; import com.xxfc.platform.order.pojo.dto.OrderDTO;
import com.xxfc.platform.order.pojo.dto.OrderDetailDTO; import com.xxfc.platform.order.pojo.dto.OrderDetailDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.PulishReceiveBO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -46,4 +48,8 @@ public interface OrderFeign { ...@@ -46,4 +48,8 @@ public interface OrderFeign {
@RequestMapping(value = "chw/orderDetail/app/unauth/getOrderDetail", method = RequestMethod.GET) @RequestMapping(value = "chw/orderDetail/app/unauth/getOrderDetail", method = RequestMethod.GET)
ObjectRestResponse<OrderDetailDTO> getOrderDetail(@RequestParam("orderNo")String orderNo, @RequestParam("type")Integer type); ObjectRestResponse<OrderDetailDTO> getOrderDetail(@RequestParam("orderNo")String orderNo, @RequestParam("type")Integer type);
@PostMapping(value = "chw/orderPulishReceive/add")
ObjectRestResponse<BaseOrder> add(@RequestBody PulishReceiveBO bo);
} }
...@@ -20,7 +20,7 @@ public class PulishReceiveBO extends OrderPulishReceiveDetail implements OrderDe ...@@ -20,7 +20,7 @@ public class PulishReceiveBO extends OrderPulishReceiveDetail implements OrderDe
* 促成人联系方式 * 促成人联系方式
*/ */
@ApiModelProperty(value = "促成人联系方式") @ApiModelProperty(value = "促成人联系方式")
Integer facilitatePhone; String facilitatePhone;
/** /**
* 下单来源,1--app;2--小程序 * 下单来源,1--app;2--小程序
......
...@@ -62,6 +62,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle; ...@@ -62,6 +62,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle;
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 com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO;
import com.xxfc.platform.vehicle.util.DistanceUtil; import com.xxfc.platform.vehicle.util.DistanceUtil;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -70,6 +71,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -70,6 +71,7 @@ import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.BeanUtils;
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 org.springframework.transaction.annotation.Transactional;
...@@ -82,7 +84,6 @@ import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*; ...@@ -82,7 +84,6 @@ import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*;
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.order.pojo.mq.OrderMQDTO.*; import static com.xxfc.platform.order.pojo.mq.OrderMQDTO.*;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
import static com.xxfc.platform.universal.constant.DictionaryKey.ILLEGAL_TYPE; import static com.xxfc.platform.universal.constant.DictionaryKey.ILLEGAL_TYPE;
/** /**
...@@ -154,6 +155,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -154,6 +155,9 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
@Autowired @Autowired
SpecialRentBiz specialRentBiz; SpecialRentBiz specialRentBiz;
@Autowired
OrderPulishReceiveDetailBiz receiveDetailBiz;
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
...@@ -842,17 +846,33 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -842,17 +846,33 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
//处理App用户提醒短信的发送 //处理App用户提醒短信的发送
// orderMsgBiz.handelAppUserMsg(orvd, omd, baseOrder, appUserDTO); // orderMsgBiz.handelAppUserMsg(orvd, omd, baseOrder, appUserDTO);
orderMsgBiz.handelMsgPayNew(orvd, otd, omd, baseOrder, appUserDTO);
//处理后台用户提醒短信的发送 if (OrderTypeEnum.PUBLISH.getCode().equals(baseOrder.getType())){
OrderPulishReceiveDetail receiveDetail = new OrderPulishReceiveDetail();
receiveDetail.setOrderId(baseOrder.getId());
receiveDetail=receiveDetailBiz.selectOne(receiveDetail);
if (receiveDetail != null ){
Integer receiveType = receiveDetail.getType() == null ? 0 : receiveDetail.getType();
VehiclePublishReceiveDTO publishReceiveDTO = new VehiclePublishReceiveDTO();
BeanUtils.copyProperties(receiveDetail,publishReceiveDTO);
publishReceiveDTO.setStatus(receiveType == 2 ? VehiclePublishReceiveDTO.AGREE : VehiclePublishReceiveDTO.PAY);
publishReceiveDTO.setOrderNo(baseOrder.getNo());
vehicleFeign.updReceive(publishReceiveDTO);
}
}else {
orderMsgBiz.handelMsgPayNew(orvd, otd, omd, baseOrder, appUserDTO);
//处理后台用户提醒短信的发送
// orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY); // orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY);
sendOrderMq(orvd, otd, omd, baseOrder, ORDER_PAY); sendOrderMq(orvd, otd, omd, baseOrder, ORDER_PAY);
if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) { if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
sendOrderMq(orvd, otd, omd, baseOrder, ORDER_FINISH); sendOrderMq(orvd, otd, omd, baseOrder, ORDER_FINISH);
//订单完成时,payway为 支付宝,则转支付 //订单完成时,payway为 支付宝,则转支付
baseOrder.setPayWay(payWay); baseOrder.setPayWay(payWay);
orderAccountBiz.finishFreeze2PayAmount(baseOrder); orderAccountBiz.finishFreeze2PayAmount(baseOrder);
}
} }
} }
} else { } else {
log.error(" order has payed , orderNo:{}, tradeNo:{} ", orderNo, tradeNo); log.error(" order has payed , orderNo:{}, tradeNo:{} ", orderNo, tradeNo);
......
...@@ -13,5 +13,5 @@ import org.springframework.stereotype.Service; ...@@ -13,5 +13,5 @@ import org.springframework.stereotype.Service;
* @date 2019-06-19 17:00:35 * @date 2019-06-19 17:00:35
*/ */
@Service @Service
public class OrderPulishReceiveDetailDetailBiz extends BaseBiz<OrderPulishReceiveDetailMapper, OrderPulishReceiveDetail> { public class OrderPulishReceiveDetailBiz extends BaseBiz<OrderPulishReceiveDetailMapper, OrderPulishReceiveDetail> {
} }
\ No newline at end of file
...@@ -29,6 +29,7 @@ import com.xxfc.platform.universal.entity.Dictionary; ...@@ -29,6 +29,7 @@ import com.xxfc.platform.universal.entity.Dictionary;
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;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleVO; import com.xxfc.platform.vehicle.pojo.vo.VehicleVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -110,6 +111,10 @@ public class OrderCancelBiz { ...@@ -110,6 +111,10 @@ public class OrderCancelBiz {
@Autowired @Autowired
ActivityFeign activityFeign; ActivityFeign activityFeign;
@Autowired
OrderPulishReceiveDetailBiz receiveDetailBiz;
private static Map<Integer, List<Integer>> cancelAble; private static Map<Integer, List<Integer>> cancelAble;
static { static {
cancelAble = new HashMap<Integer, List<Integer>>(); cancelAble = new HashMap<Integer, List<Integer>>();
...@@ -127,6 +132,9 @@ public class OrderCancelBiz { ...@@ -127,6 +132,9 @@ public class OrderCancelBiz {
cancelAble.put(OrderTypeEnum.ACTIVITY.getCode(), new LinkedList<Integer>(){{ cancelAble.put(OrderTypeEnum.ACTIVITY.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode()); add(OrderStatusEnum.ORDER_UNPAY.getCode());
}}); }});
cancelAble.put(OrderTypeEnum.PUBLISH.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
}});
} }
/** /**
...@@ -140,6 +148,7 @@ public class OrderCancelBiz { ...@@ -140,6 +148,7 @@ public class OrderCancelBiz {
OrderTourDetail otd = new OrderTourDetail(); OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail(); OrderMemberDetail omd = new OrderMemberDetail();
OrderActiveDetail orderActiveDetail = new OrderActiveDetail(); OrderActiveDetail orderActiveDetail = new OrderActiveDetail();
OrderPulishReceiveDetail receiveDetail = new OrderPulishReceiveDetail();
if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) { if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) {
BaseOrder updateOrder = new BaseOrder(){{ BaseOrder updateOrder = new BaseOrder(){{
setId(baseOrder.getId()); setId(baseOrder.getId());
...@@ -468,6 +477,14 @@ public class OrderCancelBiz { ...@@ -468,6 +477,14 @@ public class OrderCancelBiz {
} }
}else if(OrderTypeEnum.PUBLISH.getCode().equals(baseOrder.getType())) {
receiveDetail = receiveDetailBiz.selectOne(new OrderPulishReceiveDetail(){{
setOrderId(baseOrder.getId());
}});
VehiclePublishReceiveDTO receiveDTO = new VehiclePublishReceiveDTO();
BeanUtils.copyProperties(receiveDetail,receiveDTO);
receiveDTO.setStatus(VehiclePublishReceiveDTO.CANCEL);
vehicleFeign.updReceive(receiveDTO);
} }
//返还优惠券 //返还优惠券
......
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderPulishReceiveDetailBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderPulishReceiveDetail;
import com.xxfc.platform.order.pojo.order.PulishReceiveBO;
import com.xxfc.platform.order.service.OrderPulishReceiveService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("chw/orderPulishReceive")
@Api(value = "调车需求订单", tags = {"调车需求订单"})
@IgnoreClientToken
public class OrderPulishReceiveController extends BaseController<OrderPulishReceiveDetailBiz, OrderPulishReceiveDetail> {
@Autowired
OrderPulishReceiveService receiveService;
@Autowired
UserFeign userFeign;
@RequestMapping(value = "add", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "确认订单")
public ObjectRestResponse<BaseOrder> add(@RequestBody PulishReceiveBO bo) {
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
//查询优惠券
receiveService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder());
}
}
\ 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 com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
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.util.process.ResultCode;
import com.xxfc.platform.activity.feign.ActivityFeign; 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.ItemTypeEnum;
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.OrderItem;
import com.xxfc.platform.order.pojo.order.MemberBO;
import com.xxfc.platform.order.pojo.order.PulishReceiveBO; import com.xxfc.platform.order.pojo.order.PulishReceiveBO;
import com.xxfc.platform.order.pojo.price.OrderPriceVO; import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.tour.feign.TourFeign;
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.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishReceiveVo; import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishReceiveVo;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -30,14 +23,11 @@ import java.math.BigDecimal; ...@@ -30,14 +23,11 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
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.APP_ORDER;
@Service @Service
@Log4j @Log4j
public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishReceiveDetailDetailBiz, PulishReceiveBO> implements UserRestInterface { public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishReceiveDetailBiz, PulishReceiveBO> implements UserRestInterface {
@Autowired @Autowired
...@@ -46,12 +36,6 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe ...@@ -46,12 +36,6 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe
@Autowired @Autowired
ThirdFeign thirdFeign; ThirdFeign thirdFeign;
@Autowired
private BaseOrderBiz baseOrderBiz;
@Autowired
private UserFeign userFeign;
private static Integer IS_CHILD = 1; private static Integer IS_CHILD = 1;
private static Integer LEVEL_DEFAULT = 0; private static Integer LEVEL_DEFAULT = 0;
...@@ -80,7 +64,7 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe ...@@ -80,7 +64,7 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe
@PostConstruct @PostConstruct
public void init() { public void init() {
this.channel = null; this.channel = null;
this.orderTypeEnum = OrderTypeEnum.MEMBER; this.orderTypeEnum = OrderTypeEnum.PUBLISH;
} }
public void initDictionary() { public void initDictionary() {
...@@ -99,7 +83,6 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe ...@@ -99,7 +83,6 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe
VehiclePublishReceiveVo receiveVo = receiveVos.get(0); VehiclePublishReceiveVo receiveVo = receiveVos.get(0);
//设置订单图片 //设置订单图片
bo.getOrder().setPicture(receiveVo.getCover()); bo.getOrder().setPicture(receiveVo.getCover());
//设置订单名称 //设置订单名称
bo.getOrder().setName(receiveVo.getName()); bo.getOrder().setName(receiveVo.getName());
} }
...@@ -130,9 +113,16 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe ...@@ -130,9 +113,16 @@ public class OrderPulishReceiveService extends AbstractOrderHandle<OrderPulishRe
detail.setItems(new ArrayList<OrderItem>()); detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(memberOrderItem);*/ detail.getItems().add(memberOrderItem);*/
List<VehiclePublishReceiveVo> receiveVos = detail.getReceiveVos();
BigDecimal receiveAmount = BigDecimal.ZERO;
if (receiveVos.size() > 0 ) {
receiveAmount = receiveVos.parallelStream().filter(oadTemp ->
(Integer.valueOf(VehiclePublishReceiveDTO.ADD).equals(oadTemp.getStatus()))
).map(VehiclePublishReceiveVo::getReceiveAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
}
//商品价格 //商品价格
//goodsAmount = goodsAmount.add(memberOrderItem.getCalculateAmount(Boolean.TRUE)); goodsAmount = goodsAmount.add(receiveAmount);
/* //vehicleAmount 优惠券处理 /* //vehicleAmount 优惠券处理
if (null != detail.getTickerNo() && detail.getTickerNo().size() > 0) { if (null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
......
...@@ -6,10 +6,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -6,10 +6,7 @@ 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.BranchCompanyAreaDTO; import com.xxfc.platform.vehicle.pojo.dto.*;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.*; import com.xxfc.platform.vehicle.pojo.vo.*;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -264,4 +261,7 @@ public interface VehicleFeign { ...@@ -264,4 +261,7 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/rent/apply/usable-vehicle", method = RequestMethod.POST) @RequestMapping(value = "/vehicleInfo/rent/apply/usable-vehicle", method = RequestMethod.POST)
public ObjectRestResponse<PageDataVO<UsableVeicleVO>> applyUsableVehicle(@RequestBody RentVehicleBookDTO rbd); public ObjectRestResponse<PageDataVO<UsableVeicleVO>> applyUsableVehicle(@RequestBody RentVehicleBookDTO rbd);
@PostMapping("app/publishAeceive/app/unauth/updReceive")
ObjectRestResponse updReceive(@RequestBody VehiclePublishReceiveDTO publishReceiveDTO);
} }
...@@ -43,6 +43,8 @@ public class VehiclePublishFindDTO extends PageParam implements DataInter { ...@@ -43,6 +43,8 @@ public class VehiclePublishFindDTO extends PageParam implements DataInter {
@ApiModelProperty("当前时间") @ApiModelProperty("当前时间")
private Long nowTime; private Long nowTime;
private String orderNo;
List<Integer> dataCorporationIds; List<Integer> dataCorporationIds;
......
...@@ -16,6 +16,11 @@ import java.util.List; ...@@ -16,6 +16,11 @@ import java.util.List;
@Data @Data
public class VehiclePublishReceiveDTO{ public class VehiclePublishReceiveDTO{
public static final int ADD=0;
public static final int PAY=1;
public static final int REFUSE=2;
public static final int AGREE=3;
public static final int CANCEL=4;
@ApiModelProperty("需求Id") @ApiModelProperty("需求Id")
private Integer publishId; private Integer publishId;
...@@ -37,8 +42,29 @@ public class VehiclePublishReceiveDTO{ ...@@ -37,8 +42,29 @@ public class VehiclePublishReceiveDTO{
List<Integer> ids; List<Integer> ids;
@ApiModelProperty(value = "接单ids(逗号隔开)")
private String receiveIds;
@ApiModelProperty(value = "拒绝的接单ids")
private String refuseReceiveIds;
private Integer status;
@ApiModelProperty("接单详情") @ApiModelProperty("接单详情")
List<VehiclePublishReceive> receives; List<VehiclePublishReceive> receives;
private String orderNo;
private Long nowTime;
public Long getNowTime(){
return System.currentTimeMillis();
}
} }
package com.xxfc.platform.vehicle.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class VehicleReceiveRefundDTO {
@ApiModelProperty("需求id")
private Integer publishId;
private String orderNoStr;
}
...@@ -18,5 +18,8 @@ public class VehiclePublishGoodsVo extends VehiclePublishGoods { ...@@ -18,5 +18,8 @@ public class VehiclePublishGoodsVo extends VehiclePublishGoods {
@ApiModelProperty("型号名称") @ApiModelProperty("型号名称")
String categoryName; String categoryName;
@ApiModelProperty("商品数量")
Integer goodsNumber;
private List<VehicleExtensionVO> extensionVOS; private List<VehicleExtensionVO> extensionVOS;
} }
...@@ -5,6 +5,7 @@ import com.xxfc.platform.vehicle.entity.VehiclePublishReceive; ...@@ -5,6 +5,7 @@ import com.xxfc.platform.vehicle.entity.VehiclePublishReceive;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
...@@ -34,4 +35,11 @@ public class VehiclePublishReceiveVo extends VehiclePublishReceive { ...@@ -34,4 +35,11 @@ public class VehiclePublishReceiveVo extends VehiclePublishReceive {
private Integer publishId; private Integer publishId;
@ApiModelProperty("接单者服务费(单个商品)")
private BigDecimal receiveAmount;
@ApiModelProperty("发布服务费(单个商品)")
private BigDecimal publishAmount;
} }
...@@ -101,6 +101,16 @@ public class VehiclePublishBiz extends BaseBiz<VehiclePublishMapper, VehiclePubl ...@@ -101,6 +101,16 @@ public class VehiclePublishBiz extends BaseBiz<VehiclePublishMapper, VehiclePubl
} }
public void updWaitConfirmNumber(Integer number,Integer id){
mapper.updWaitConfirmNumber(number,id);
}
public void updConfirmNumber(Integer number,Integer id){
mapper.updConfirmNumber(number,id);
}
......
...@@ -33,6 +33,19 @@ public class VehiclePublishGoodsBiz extends BaseBiz<VehiclePublishGoodsMapper, V ...@@ -33,6 +33,19 @@ public class VehiclePublishGoodsBiz extends BaseBiz<VehiclePublishGoodsMapper, V
public List<VehiclePublishGoodsVo> getList(VehiclePublishFindDTO publishFindDTO){ public List<VehiclePublishGoodsVo> getList(VehiclePublishFindDTO publishFindDTO){
List<VehiclePublishGoodsVo> list = mapper.selectList(publishFindDTO); List<VehiclePublishGoodsVo> list = mapper.selectList(publishFindDTO);
setGoodsList(list);
return list;
}
public List<VehiclePublishGoodsVo> getListByOrderNo(VehiclePublishFindDTO publishFindDTO){
List<VehiclePublishGoodsVo> list = mapper.selectListByOrderNo(publishFindDTO);
setGoodsList(list);
return list;
}
public void setGoodsList(List<VehiclePublishGoodsVo> list){
if (CollectionUtils.isNotEmpty(list)){ if (CollectionUtils.isNotEmpty(list)){
for (VehiclePublishGoodsVo publishGoodsVo : list){ for (VehiclePublishGoodsVo publishGoodsVo : list){
String vehicleId = publishGoodsVo.getVehicleId(); String vehicleId = publishGoodsVo.getVehicleId();
...@@ -48,7 +61,6 @@ public class VehiclePublishGoodsBiz extends BaseBiz<VehiclePublishGoodsMapper, V ...@@ -48,7 +61,6 @@ public class VehiclePublishGoodsBiz extends BaseBiz<VehiclePublishGoodsMapper, V
publishGoodsVo.setExtensionVOS(extensionVOS); publishGoodsVo.setExtensionVOS(extensionVOS);
} }
} }
return list;
} }
......
...@@ -26,6 +26,9 @@ public class RabbitVehicleConfig extends RabbitCommonConfig { ...@@ -26,6 +26,9 @@ public class RabbitVehicleConfig extends RabbitCommonConfig {
//同步门店信息 //同步门店信息
public static final String VEHICLE_COMPANY_UPD_QUEUE = "vehicle.company:upd.queue"; public static final String VEHICLE_COMPANY_UPD_QUEUE = "vehicle.company:upd.queue";
//接单退款消息
public static final String VEHICLE_RECEVIE_REFUND_QUEUE = "vehicle.recevie:refund.queue";
static { static {
myQueue = new ArrayList<BindDTO>() {{ myQueue = new ArrayList<BindDTO>() {{
...@@ -33,6 +36,8 @@ public class RabbitVehicleConfig extends RabbitCommonConfig { ...@@ -33,6 +36,8 @@ public class RabbitVehicleConfig extends RabbitCommonConfig {
add(new BindDTO(VEHICLE_CORPORATION_UPD_QUEUE, ADMIN_TOPIC, KEY_CORPORATION_UPD)); add(new BindDTO(VEHICLE_CORPORATION_UPD_QUEUE, ADMIN_TOPIC, KEY_CORPORATION_UPD));
//门店 //门店
add(new BindDTO(VEHICLE_COMPANY_UPD_QUEUE, ADMIN_TOPIC, KEY_COMPANY_UPD)); add(new BindDTO(VEHICLE_COMPANY_UPD_QUEUE, ADMIN_TOPIC, KEY_COMPANY_UPD));
//接单退款消息
add(new BindDTO(VEHICLE_RECEVIE_REFUND_QUEUE, VEHICLE_TOPIC, KEY_VEHICLE_RECEIVE));
}}; }};
} }
} }
......
...@@ -14,4 +14,7 @@ public interface VehiclePublishGoodsMapper extends Mapper<VehiclePublishGoods>, ...@@ -14,4 +14,7 @@ public interface VehiclePublishGoodsMapper extends Mapper<VehiclePublishGoods>,
List<VehiclePublishGoodsVo> selectList(VehiclePublishFindDTO publishFindDTO); List<VehiclePublishGoodsVo> selectList(VehiclePublishFindDTO publishFindDTO);
List<VehiclePublishGoodsVo> selectListByOrderNo(VehiclePublishFindDTO publishFindDTO);
} }
\ No newline at end of file
...@@ -4,6 +4,8 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -4,6 +4,8 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehiclePublish; import com.xxfc.platform.vehicle.entity.VehiclePublish;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO; import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo; import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper; import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -14,4 +16,11 @@ public interface VehiclePublishMapper extends Mapper<VehiclePublish>, SelectById ...@@ -14,4 +16,11 @@ public interface VehiclePublishMapper extends Mapper<VehiclePublish>, SelectById
List<VehiclePublishVo> selectList(VehiclePublishFindDTO publishFindDTO); List<VehiclePublishVo> selectList(VehiclePublishFindDTO publishFindDTO);
@Update("update vehicle_publish set wait_confirm_number=wait_confirm_number+#{number} where id=#{id}")
void updWaitConfirmNumber(@Param("number") Integer number,@Param("id")Integer id);
@Update("update vehicle_publish set confirm_number=confirm_number+#{number},wait_confirm_number=wait_confirm_number-#{number} where id=#{id} and confirm_number >= (confirm_number+#{number}) and (wait_confirm_number-#{number}) >= 0 ")
void updConfirmNumber(@Param("number") Integer number,@Param("id")Integer id);
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -4,6 +4,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehiclePublishReceive; import com.xxfc.platform.vehicle.entity.VehiclePublishReceive;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO; import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishReceiveVo; import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishReceiveVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper; import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -14,4 +15,8 @@ public interface VehiclePublishReceiveMapper extends Mapper<VehiclePublishReceiv ...@@ -14,4 +15,8 @@ public interface VehiclePublishReceiveMapper extends Mapper<VehiclePublishReceiv
List<VehiclePublishReceiveVo> selectList(VehiclePublishReceiveDTO receiveDTO); List<VehiclePublishReceiveVo> selectList(VehiclePublishReceiveDTO receiveDTO);
void updReceiveById(VehiclePublishReceiveDTO receiveDTO);
String getOrderNoStr(@Param("publishOrderNo") String publishOrderNo,@Param("ids")List<Integer> ids);
} }
\ No newline at end of file
package com.xxfc.platform.vehicle.mqhandler;
import cn.hutool.json.JSONUtil;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.vehicle.biz.CompanyInfoBiz;
import com.xxfc.platform.vehicle.biz.VehiclePublishReceiveBiz;
import com.xxfc.platform.vehicle.entity.CompanyInfo;
import com.xxfc.platform.vehicle.pojo.dto.VehicleReceiveRefundDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.xxfc.platform.vehicle.config.RabbitVehicleConfig.VEHICLE_CORPORATION_UPD_QUEUE;
import static com.xxfc.platform.vehicle.config.RabbitVehicleConfig.VEHICLE_RECEVIE_REFUND_QUEUE;
@Component
@Slf4j
public class VehicleReceiveMQHandler {
@Autowired
VehiclePublishReceiveBiz publishReceiveBiz;
/**
* 接单退款信息
* @param
*/
@RabbitListener(queues = VEHICLE_RECEVIE_REFUND_QUEUE)
public void integralHandler(Message message, @Headers Map<String, Object> headers, Channel channel) {
log.info("接单退款信息 messageJson:"+ JSONUtil.parse(message));
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(new Runnable() {
@Override
public void run() {
try {
String messageId = message.getMessageProperties().getMessageId();
String msg = new String(message.getBody(), "UTF-8");
VehicleReceiveRefundDTO receiveRefundDTO = JSONUtil.toBean(msg, VehicleReceiveRefundDTO.class);
publishReceiveBiz.refundReceiveQueue(receiveRefundDTO);
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
log.info("接收到的消息失败");
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
} catch (IOException i) {
log.error(e.getMessage(), i);
}
log.error(e.getMessage(), e);
}
}
});
}
}
...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.util.BeanUtils; ...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.util.BeanUtils;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.VehicleApplyBiz; import com.xxfc.platform.vehicle.biz.VehicleApplyBiz;
import com.xxfc.platform.vehicle.biz.VehiclePublishBiz; import com.xxfc.platform.vehicle.biz.VehiclePublishBiz;
import com.xxfc.platform.vehicle.biz.VehiclePublishGoodsBiz;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleApply; import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.entity.VehiclePublish; import com.xxfc.platform.vehicle.entity.VehiclePublish;
...@@ -16,6 +17,7 @@ import io.swagger.annotations.Api; ...@@ -16,6 +17,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
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;
...@@ -29,6 +31,9 @@ import java.util.List; ...@@ -29,6 +31,9 @@ import java.util.List;
@Api(tags = {"商品需求"}) @Api(tags = {"商品需求"})
public class AppVehiclePublishController extends BaseController<VehiclePublishBiz> { public class AppVehiclePublishController extends BaseController<VehiclePublishBiz> {
@Autowired
VehiclePublishGoodsBiz publishGoodsBiz;
...@@ -85,6 +90,14 @@ public class AppVehiclePublishController extends BaseController<VehiclePublishBi ...@@ -85,6 +90,14 @@ public class AppVehiclePublishController extends BaseController<VehiclePublishBi
} }
@GetMapping("orderDetail")
@ApiModelProperty("订单详情")
public ObjectRestResponse orderDetail(VehiclePublishFindDTO publishFindDTO) {
return ObjectRestResponse.succ(publishGoodsBiz.getListByOrderNo(publishFindDTO));
}
......
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.VehiclePublishReceiveBiz;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("app/publishAeceive")
@Api(tags = {"商品需求"})
public class AppVehiclePublishReceiveController extends BaseController<VehiclePublishReceiveBiz> {
@PostMapping("meet")
@ApiModelProperty("接单")
public ObjectRestResponse meet(@RequestBody VehiclePublishReceiveDTO publishReceiveDTO) {
if (publishReceiveDTO.getCompanyId() == null || publishReceiveDTO.getCompanyId() == 0){
List<Integer> companyIds = getBusinessUserCompanyIds();
if (companyIds != null && companyIds.size() > 0){
publishReceiveDTO.setCompanyId(companyIds.get(0));
}
}
return ObjectRestResponse.succ(baseBiz.receive(publishReceiveDTO));
}
@PostMapping("app/unauth/updReceive")
@ApiModelProperty("支付后处理")
@IgnoreUserToken
public ObjectRestResponse updReceive(@RequestBody VehiclePublishReceiveDTO publishReceiveDTO) {
baseBiz.updOrderReceive(publishReceiveDTO);
return ObjectRestResponse.succ();
}
}
...@@ -18,5 +18,22 @@ ...@@ -18,5 +18,22 @@
</where> </where>
order by g.number DESC order by g.number DESC
</select> </select>
<select id="selectListByOrderNo" resultType="com.xxfc.platform.vehicle.pojo.vo.VehiclePublishGoodsVo" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO">
SELECT r.goodsNumber,g.*,IFNULL(b1.cn_name,b.cn_name) as brandName,IFNULL(c1.`name`,c.`name`) as categoryName FROM
(SELECT COUNT(id) as goodsNumber,publish_goods_id FROM vehicle_publish_receive
WHERE receive_order_no = #{orderNo}
GROUP BY publish_goods_id) r
LEFT JOIN vehicle_publish_goods g ON r.publish_goods_id=g.id
LEFT JOIN vehicle v ON g.vehicle_id=v.id
LEFT JOIN vehicle_brand b1 ON v.brand_id=b1.id
LEFT JOIN vehicle_category c1 ON v.category_id=c1.id
LEFT JOIN vehicle_brand b ON g.brand_id=b.id
LEFT JOIN vehicle_category c ON g.category_id=c.id
order by g.number DESC
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
c.`name` categoryName, c.`name` categoryName,
bc.`name` as receiveCompanyName, bc.`name` as receiveCompanyName,
bc1.`name` as publishCompanyName, bc1.`name` as publishCompanyName,
g.`publish_id` as publishId g.`publish_id` as publishId,
g.`receive_amount` as receiveAmount,
g.`publish_amount` as publishAmount
FROM vehicle_publish_receive r FROM vehicle_publish_receive r
LEFT JOIN vehicle_brand b ON a.brand_id=b.id LEFT JOIN vehicle_brand b ON r.brand_id=b.id
LEFT JOIN vehicle_category c ON a.category_id=c.id LEFT JOIN vehicle_category c ON r.category_id=c.id
LEFT JOIN branch_company bc ON r.receive_company_id = bc.id LEFT JOIN branch_company bc ON r.receive_company_id = bc.id
LEFT JOIN branch_company bc1 ON r.publish_company_id = bc1.id LEFT JOIN branch_company bc1 ON r.publish_company_id = bc1.id
LEFT JOIN vehicle_publish_goods g ON r.publish_goods_id=g.id LEFT JOIN vehicle_publish_goods g ON r.publish_goods_id=g.id
...@@ -21,8 +23,8 @@ ...@@ -21,8 +23,8 @@
<if test="publishId != null and publishId > 0"> <if test="publishId != null and publishId > 0">
AND g.`publish_id`= #{publishId} AND g.`publish_id`= #{publishId}
</if> </if>
<if test="publishGoodsId != null and publishGoodsId > 0"> <if test="orderNo != null and orderNo != '' ">
AND r.`publish_goods_id`= #{publishGoodsId} AND r.`receive_order_no`= #{orderNo}
</if> </if>
<if test="ids != null and ids.size > 0"> <if test="ids != null and ids.size > 0">
and r.id in and r.id in
...@@ -34,4 +36,39 @@ ...@@ -34,4 +36,39 @@
order by r.id DESC order by r.id DESC
</select> </select>
<update id="updReceiveById" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO">
UPDATE vehicle_publish_receive SET
<choose>
<when test="type != null and type == 1">
receive_order_no = #{orderNo},receive_time=#{nowTime}
</when>
<otherwise>
publish_order_no = #{orderNo},ack_time=#{nowTime}
</otherwise>
</choose>
WHERE
id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<select id="getOrderNoStr" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePublishReceiveDTO" resultType="java.lang.String">
SELECT GROUP_CONCAT(distinct receive_order_no) FROM vehicle_publish_receive
<where>
<if test="publishOrderNo != null and publishOrderNo != '' ">
and publish_order_no =#{publishOrderNo}
</if>
<if test="ids != null and ids.size > 0">
and id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
</select>
</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