Commit 9f6c8df5 by 姜海波

Merge branch 'develop' of…

Merge branch 'develop' of http://gitlab.freemud.com/order-group-application/order-group into develop

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	assortment-ordercenter-sdk/readme.md
parents 3f72954a fbd5769d
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.0-SNAPSHOT</version>
<version>1.5.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -37,4 +37,6 @@
| 1.3.1.RELEASE | queryOrderById返回新增商家、平台优惠 | 侯书虎 | 2020-04-20 |
| 1.3.2.RELEASE | ext_info 增加stapleFood主食设置 | 李小二 | 2020-04-20 |
| 1.3.3.RELEASE | 第三方外卖单配送费类型与新用户立减类型重复区分 | wuping | 2020-04-21 |
| 1.5.0-SNAPSHOT | APP渠道 | 丁凯 | 2020-04-22 |
| 1.5.1-SNAPSHOT | oms订单正向操作 | 侯书虎 | 2020-04-23 |
| 1.5.0-SNAPSHOT | 预约单打印 | 海波 | 2020-04-23 |
......@@ -50,6 +50,12 @@ public class OrderSdkAdapter {
private static final int STACK_SUB = 1;
/**
* 接单request
* @param operator
* @param orderBean
* @return
*/
public BaseQueryOrderRequest getOrderConfirmRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderRequest = new BaseQueryOrderRequest();
orderRequest.setOrderId(orderBean.getOid());
......@@ -65,6 +71,22 @@ public class OrderSdkAdapter {
return orderRequest;
}
/**
* 配送request
* @param operator
* @param orderBean
* @return
*/
public BaseQueryOrderRequest getOrderDeliveryRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderDeliveryRequest = getOrderConfirmRequest(operator, orderBean);
if (orderBean.getType() == 1) {
orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_EXPRESS);
} else {
orderDeliveryRequest.setOrderType(com.freemud.application.sdk.api.ordercenter.enums.OrderType.GENERAL_SELF_PICKUP);
}
return orderDeliveryRequest;
}
public CancelOrderRequest convent2CancelOrderRequest(String orderId, String partnerId, AfterSalesType afterSalesType,
String reason, String trackingNo, Long refund_id) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
......@@ -411,6 +433,9 @@ public class OrderSdkAdapter {
if ("saasmall".equals(queryOrdersRequest.getSource()[i])) {
orderClients.add(OrderClientType.SAASMALL.getIndex());
}
if ("app".equals(queryOrdersRequest.getSource()[i])) {
orderClients.add(OrderClientType.APP.getIndex());
}
}
orderClients.add(OrderClientType.ALIPAY.getIndex());
orderConditionsReq.setOrderClients(orderClients);
......
......@@ -33,6 +33,9 @@ public class OrderCallBackConfig {
public static final String WECHAT_ORDER_REPORT_QUEUE_ROUTING_KEY="wechat-order-report-queue-routing-key";
public static final String WECHAT_ORDER_REPORT_QUEUE="wechat-order-report-queue";
public static final String INVOICE_EXCHANGE = "invoice-report-topic-exchange";
public static final String INVOICE_QUEUE = "invoice-report-queue";
public static final String INVOICE_ROUTE_KEY = "invoice-report-queue-routing-key";
/**
* 定义基于Fanout 的Exchange。
* 基于这个代码,也可以非常方便的定义其他的Exchange类型。
......@@ -96,4 +99,20 @@ public class OrderCallBackConfig {
return new OrderCallBackMQService();
}
/**
* 发票queue绑定设置
* @return
*/
@Bean(name = "invoiceExchange")
public Exchange invoiceExchange() {
return ExchangeBuilder.topicExchange(INVOICE_EXCHANGE).durable(true).build();
}
@Bean(name="invoiceQueue")
public Queue invoiceQueue() {
return QueueBuilder.durable(INVOICE_QUEUE).build();
}
@Bean
Binding bindingInvoiceQueue(@Qualifier("invoiceQueue") Queue invoiceQueue,@Qualifier("invoiceExchange") Exchange invoiceExchange) {
return BindingBuilder.bind(invoiceQueue).to(invoiceExchange).with(INVOICE_ROUTE_KEY).noargs();
}
}
......@@ -36,11 +36,13 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemR
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.sdk.api.assortment.orderdistributor.request.DisRequest;
import com.freemud.sdk.api.assortment.orderdistributor.service.OrderDistributionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -50,6 +52,7 @@ import java.util.List;
import java.util.Map;
@Component
@Slf4j
public class OrderCallBackMQService {
private static ApplicationContext context;
private static Logger logger = LoggerFactory.getLogger(OrderCallBackMQService.class);
......@@ -63,6 +66,8 @@ public class OrderCallBackMQService {
private RedisCache redisCache;
@Autowired
private AssortmentOpenPlatformWxappManager openPlatformWxappManager;
@Value("${saas.order.invoice.report.partnerIds}")
private String InvoicePartnerIds;
public void sendOrderMQ(OrderCallBackRequestVo body) {
//发送订单回调
......@@ -77,6 +82,8 @@ public class OrderCallBackMQService {
}
//微信数据上传(创建新订单&支付成功时上传)
sendWechatReportMQ(body);
//上报发票信息
sendnvoiceReportMQ(body);
}
private void sendWechatReportMQ(OrderCallBackRequestVo body) {
try {
......@@ -214,4 +221,38 @@ public class OrderCallBackMQService {
wechatReportOrderDto.setDishList(dishList);
return wechatReportOrderDto;
}
/**
* 上报指定商户已支付的订单到MQ
* 只上报普通订单
* @param body
*/
private void sendnvoiceReportMQ(OrderCallBackRequestVo body) {
log.info("sendnvoiceReportMQ:{},{}",body.getOrderCode(), body.getContent());
if (!ObjectUtils.equals("1", body.getMsgType()) || body.getOperateType() == null || body.getOperateType() == 2) {
return ;
}
OrderInfoReqs orderInfoReqs = JSONObject.parseObject(body.getContent(), OrderInfoReqs.class);
if (
(
orderInfoReqs == null
|| !NewOrderStatus.PENDING_PAYMENT.getIndex().equals(orderInfoReqs.getOrderState())
|| orderInfoReqs.getBizType()!=1
)
&& !InvoicePartnerIds.contains(orderInfoReqs.getPartnerId())
) {
return;
}
try {
Header header = new Header("report", "call-back-service-api",
OrderCallBackConfig.INVOICE_ROUTE_KEY, OrderCallBackConfig.INVOICE_QUEUE);
MQMessage<OrderInfoReqs> message = new MQMessage<>(header, orderInfoReqs);
mqService.convertAndSend(OrderCallBackConfig.INVOICE_EXCHANGE, OrderCallBackConfig.INVOICE_ROUTE_KEY, message);
} catch (Exception e) {
log.error("setInvoice,orderCode={}",orderInfoReqs.getOrderCode(),e.toString());
}
}
}
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.PushInvoiceRequestVo;
import cn.freemud.service.ToolsService;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.controller ToolController
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RestController
@RequestMapping(value = "/tools", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class ToolsController {
@Autowired
private ToolsService toolsService;
@PostMapping("/push")
@ApiAnnotation(logMessage = "/push")
public BaseResponse push(@Valid @RequestBody @LogParams PushInvoiceRequestVo requestVo) {
return toolsService.push(requestVo);
}
}
package cn.freemud.entities.vo;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities PushInvoiceRequestVo
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class PushInvoiceRequestVo {
private String partnerId;
private String startTime;
private String endTime;
private String send;
private List<String> orderCodes;
}
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.PushInvoiceRequestVo;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderCallBackService
* @Package cn.freemud.service
* @Description:
* @author: ping.wu
* @date: 2019/4/16 10:16
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public interface ToolsService {
BaseResponse push(PushInvoiceRequestVo requestVo);
}
package cn.freemud.service.impl;
import cn.freemud.amp.config.OrderCallBackConfig;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.vo.PushInvoiceRequestVo;
import cn.freemud.service.ToolsService;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.service.impl ToolsServiceImpl
* @Description: TDO 描述....
* @author: family
* @date: 2020/4/22
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public class ToolsServiceImpl implements ToolsService {
@Autowired
private OrderDownLoadSdkService orderDownLoadSdkService;
@Autowired
private MQService mqService;
@Override
public BaseResponse push(PushInvoiceRequestVo requestVo) {
long start = DateUtil.getTimestamp(requestVo.getStartTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
long end = DateUtil.getTimestamp(requestVo.getEndTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
OrderConditionsReq req = new OrderConditionsReq();
req.setPartnerId(requestVo.getPartnerId());
req.setStartTimestamp(start/1000);
req.setEndTimestamp(end/1000);
req.setPayStatuses(Arrays.asList(2));
req.setBizType(1);
req.setPageSize(1);
req.setPageNum(1);
if (requestVo.getOrderCodes()!=null) {
req.setOrderCodes(requestVo.getOrderCodes());
}
BaseDownLoadResponse<List<OrderInfoReqs>> response = orderDownLoadSdkService.queryOrderByConditions(req, LogThreadLocal.getTrackingNo());
if (!"100".equals(response.getCode()) || response.getResult()==null) {
return new BaseResponse("1","1","查询Es数据失败");
}
if (response.getTotalNum()==0) {
return new BaseResponse("1","100","在ES没查询到数据.");
}
//订单总数
Integer orderTotal = response.getTotalNum();
if (!"1".equals(requestVo.getSend())) {
return new BaseResponse("1","100","符合条件的订单数据:"+orderTotal+"条");
}
int pageSize = 500;
int pageTotal = (int) Math.ceil((double) orderTotal / (double) pageSize);
for (int i=0;i<pageTotal;i++) {
req.setPageSize(pageSize);
req.setPageNum(i+1);
response = orderDownLoadSdkService.queryOrderByConditions(req, LogTreadLocal.getTrackingNo());
for (OrderInfoReqs reqs : response.getResult()) {
Header header = new Header("report", "call-back-service-api",
OrderCallBackConfig.INVOICE_ROUTE_KEY, OrderCallBackConfig.INVOICE_QUEUE);
MQMessage<String> message = new MQMessage<>(header, JSON.toJSONString(reqs));
mqService.convertAndSend(OrderCallBackConfig.INVOICE_EXCHANGE, OrderCallBackConfig.INVOICE_ROUTE_KEY, message);
}
}
return new BaseResponse("1","100","写入MQ:"+orderTotal);
}
}
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.4.8-SNAPSHOT</version>
<version>1.5.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -107,7 +107,7 @@ public class AppOrderServiceImpl implements AppOrderService {
throw new ServiceException(ResponseResult.ORDER_HAS_PAID);
}
OrderExtInfoDTO extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDTO.class);
if(extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
if(extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || !extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
throw new ServiceException(ResponseResult.ORDER_OWNER_ERROR);
}
}
......
......@@ -46,7 +46,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.4.1-SNAPSHOT</version>
<version>1.5.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
......
package cn.freemud.management.adapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import com.freemud.application.sdk.api.takeaway.request.order.BaseOrderRequest;
import com.freemud.application.sdk.api.takeaway.request.order.OrderSendOutRequest;
import com.freemud.application.sdk.api.takeaway.request.order.PlatformOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: WaimaiSdkAdapter
* @Package cn.freemud.management.adapter
* @Description:
* @author: shuhu.hou
* @date: 2020/4/20 14:38
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public class WaimaiSdkAdapter {
/**
* 接单request
* @param request
* @param orderBean
* @return
*/
public PlatformOrderRequest getPlatformOrderRequest (OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest();
platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder());
platformOrderRequest.setChannel(orderBean.getSource());
platformOrderRequest.setCompanyId(orderBean.getCompanyId());
platformOrderRequest.setOrderId(orderBean.getOid());
platformOrderRequest.setShopId(orderBean.getShopId());
platformOrderRequest.setOperator(request.getOperator());
return platformOrderRequest;
}
/**
* 配送request
* @param request
* @param orderBean
* @return
*/
public OrderSendOutRequest getOrderSendOutRequest (OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
OrderSendOutRequest orderSendOutRequest = new OrderSendOutRequest();
orderSendOutRequest.setCompanyId(orderBean.getCompanyId());
orderSendOutRequest.setOrderId(orderBean.getOid());
orderSendOutRequest.setShopId(orderBean.getShopId());
orderSendOutRequest.setOperator(request.getOperator());
return orderSendOutRequest;
}
/**
* 送达request
* @param request
* @param orderBean
* @return
*/
public OrderSendOutRequest getOrderArriveRequest (OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
OrderSendOutRequest arriveReq = new OrderSendOutRequest();
arriveReq.setOrderId(orderBean.getOid());
arriveReq.setChannel( orderBean.getSource());
arriveReq.setCompanyId(orderBean.getCompanyId());
arriveReq.setOperator(request.getOperator());
arriveReq.setShopId(request.getStoreId());
return arriveReq;
}
}
......@@ -47,6 +47,12 @@ public class OrderManagerController {
switch (byOpType) {
case ORDER_CONFIRM:
return orderManagerAdapter.orderConfirmTake(request);
case ORDER_DONE:
return orderManagerAdapter.orderDone(request);
case ORDER_SEND:
return orderManagerAdapter.orderDelivery(request);
case ORDER_AFFIRM:
return orderManagerAdapter.orderAffirm(request,null);
case ORDER_REJECT:
return orderManagerAdapter.orderReject(request);
default:
......
......@@ -37,6 +37,11 @@ public class OrderManagerResponse {
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
}
public OrderManagerResponse(RefundStatus refundStatus){
if (refundStatus!=null){
this.refundStatus=refundStatus.getCode();
}
}
public OrderManagerResponse(OrderStatus status, RefundStatus refundStatus){
if (status!=null){
this.status=status.getCode();
......@@ -45,6 +50,12 @@ public class OrderManagerResponse {
this.refundStatus=refundStatus.getCode();
}
}
public OrderManagerResponse(Long gmtExpect, Integer status, Integer refundStatus) {
this.gmtExpect=gmtExpect;
this.status = status;
this.refundStatus = refundStatus;
}
public OrderManagerResponse(String orderPrintConfig, Long gmtExpect, RefundStatus refundStatus){
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
......
......@@ -17,11 +17,11 @@ public enum OrderStatus {
TAKE_ORDER(1, "下单"),
WAIT_PAY(2, "待支付"),
RECEIPT(3, "接单"),
COMPLETE_MAKE(31, "制作完成"),
DISTRIBUTION(4, "配送中"),
COMPLETE(5, "完成"),
CALCEL(6, "取消"),
REFUSE(7,"拒单"),
COMPLETE_MAKE(31, "制作完成");
CANCEL(6, "取消"),
REFUSE(7,"拒单");
private Integer code;
private String desc;
......
......@@ -135,12 +135,23 @@ public enum ResponseResult {
ORDER_REPEAT_DO_COMPLETE("45052", "重复操作,订单已经完成"),
ORDER_HAS_CANCELED("45053", "订单已经被取消"),
ORDER_MALL_NOT_MATCH("45054", "非商城订单,无法操作"),
AFFIRM_ORDER_FAIL("45055", "确认订单失败"),
AFFIRM_ORDER_FAIL("45055", "订单完成失败"),
ORDER_CANNOT_CONFIRM("45056", "该笔订单不是新订单,不能接单"),
ORDER_ACCEPT_FAILED("45057", "接单失败"),
ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED("45058", "创建配送单失败导致接单失败"),
ORDER_OPERATE_TYPE_NOT_VALIDATE("45059","订单操作类型(operateType)不支持"),
ORDER_IS_COMPLETE_CAN_NOT_DELIVERY("45060","订单已经完成,不能送出"),
DELIVERY_SEND_MAKE_UNFINISHED("45061","订单不是制作完成,不能送出"),
DELIVERY_SEND_REPETITION("45062","重复操作,订单已送出"),
DELIVERY_SEND_APPLY_REFUND("45063","订单已经申请退款,不能送出"),
DELIVERY_SEND_STATUS_NOTAKE("45064","订单不是接单,不能送出"),
DELIVERY_FAIL("45065","送出失败,不能送出"),
ORDER_DELIVERY_FAILED("45066","订单不是配送状态,不能送达"),
DONE_FAIL_APPLY_REFUND("45067","订单已经申请退款,不能制作"),
AFFIRM_FAIL_APPLY_REFUND("45068","订单已经申请退款,不能完成"),
DONE_FAIL_NOT_ACCEPT("45069","订单不是接单状态,不能制作"),
DONE_FAIL_REPETITION("45070","重复操作,订单已送出"),
DONE_ORDER_FAIL("45071", "制作完成更改作态失败"),
/**
* 支付
*/
......
package cn.freemud.management.intercept;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.util.ResponseUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: BizExceptionHandler 拦截校验参数
* @Package com.freemud.base.exception
* @Description: 全局异常处理
* @author: aiqi.gong
* @date: 2017/5/8 11:27
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RestControllerAdvice
@Slf4j
public class OrderExceptionHandler {
@ExceptionHandler(OrderServiceException.class)
@ResponseStatus(HttpStatus.OK)
public BaseResponse bindException(OrderServiceException e) {
return ResponseUtil.error(e.getResult());
}
}
\ No newline at end of file
package cn.freemud.management.intercept;
import cn.freemud.management.enums.ResponseResult;
import com.freemud.application.sdk.api.exception.IgnoreErrorAnnotation;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderServiceException
* @Package cn.freemud.management.intercept
* @Description:
* @author: shuhu.hou
* @date: 2020/4/23 11:37
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@IgnoreErrorAnnotation
public class OrderServiceException extends RuntimeException {
private ResponseResult result;
private String message;
public OrderServiceException(ResponseResult result) {
this.result = result;
this.message = result.getMessage();
}
public OrderServiceException(ResponseResult result, String message) {
this.result = result;
this.message = message;
}
public ResponseResult getResult() {
return result;
}
public void setResult(ResponseResult result) {
this.result = result;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
\ No newline at end of file
......@@ -18,5 +18,28 @@ public interface OrderManagerService {
*/
BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean);
/**
* 制作完成
* @param request
* @param orderBean
* @return
*/
BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean);
/**
* 订单配送
* @param request
* @param orderBean
* @return
*/
BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean);
/**
* 订单完成
* @param request
* @param orderBean
* @return
*/
BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean);
}
......@@ -3,11 +3,19 @@ package cn.freemud.management.service.adapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.RefundStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.impl.OrderVerifyService;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -40,7 +48,95 @@ public class OrderManagerAdapter {
}
/**
* 制作完成
* @param request
* @return
*/
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyService.orderDoneVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderDone(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
/**
* 送出
* @param request
* @return
*/
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
/*****兼容爱马哥,送出即完成start******/
if (orderBean.getType().equals(OldOrderType.TAKE_OUT.getCode())){
orderAffirm(request,orderBean);
}
/*****容爱马哥,送出即完成end******/
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyService.orderDeliveryVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return StringUtils.equals(verifyResponse.getCode(), ResponseResult.ORDER_IS_COMPLETE_CAN_NOT_DELIVERY.getCode()) ? handleResponse(request,orderBean,ResponseUtil.success()) : handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
/**
* 完成
* @param request
* @return
*/
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request,QueryOrdersResponse.DataBean.OrderBean orderBean) {
if (orderBean==null){
//查询订单
orderBean = orderBaseService.getByOrderCode(request.getOrderId());
}
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyService.orderAffirmVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderAffirm(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
private BaseResponse<OrderManagerResponse> handleResponse(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean,BaseResponse result) {
if (orderBean==null){
return result;
}
RefundStatus refundStatus = CollectionUtils.isNotEmpty(orderBean.getRefundList()) ? RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus()) : null;
OrderStatus orderStatus = OrderStatus.getByCode(orderBean.getStatus());
if (ObjectUtils.equals(ResponseResult.SUCCESS.getCode(),result.getCode())){
OperateType byOpType = OperateType.getByOpType(request.getOperateType());
switch (byOpType) {
case ORDER_CONFIRM:
orderStatus=OrderStatus.RECEIPT;
break;
case ORDER_DONE:
orderStatus=OrderStatus.COMPLETE_MAKE;
break;
case ORDER_SEND:
orderStatus=OrderStatus.DISTRIBUTION;
break;
case ORDER_AFFIRM:
orderStatus=OrderStatus.COMPLETE;
break;
default:
}
return ResponseUtil.success(new OrderManagerResponse(orderStatus,refundStatus));
}
result.setResult(new OrderManagerResponse(orderStatus,refundStatus));
return result;
}
/**
* 拒单
*
* @param request
* @return
*/
......
......@@ -2,12 +2,14 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.application.sdk.api.ordercenter.enums.OperateType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.stereotype.Service;
......@@ -38,20 +40,137 @@ public class OrderVerifyService {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
if (!OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_CANNOT_CONFIRM);
return ResponseUtil.error(ResponseResult.ORDER_CANNOT_CONFIRM,getOrderManagerResponse(orderBean));
}
return commonVerify(orderBean, request);
}
/**
* 订单配送校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderDeliveryVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//已完成的订单不能配送
if(OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_IS_COMPLETE_CAN_NOT_DELIVERY,getOrderManagerResponse(orderBean));
}
//订单已经发送过配送
if(OrderStatus.DISTRIBUTION.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_REPETITION,getOrderManagerResponse(orderBean));
}
//判断订单状态是否为已经申请退款订单
if (orderBean.getHasRefund() != null
&& orderBean.getHasRefund()
&& (orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 1
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 4)) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_APPLY_REFUND,getOrderManagerResponse(orderBean));
}
//外卖订单不是接单不能送出
if (!OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_STATUS_NOTAKE,getOrderManagerResponse(orderBean));
}
return commonVerify(orderBean, request);
}
/**
* 订单制作完成校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderDoneVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//已制作完成的订单不能重复操作
if (OrderStatus.COMPLETE_MAKE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_REPETITION,getOrderManagerResponse(orderBean));
}
//订单非接单状态,不能制作完成
if (!OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_NOT_ACCEPT,getOrderManagerResponse(orderBean));
}
//判断订单状态是否为已经申请退款订单
if (orderBean.getHasRefund() != null
&& orderBean.getHasRefund()
&& (orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 1
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 4)) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_APPLY_REFUND,getOrderManagerResponse(orderBean));
}
return ResponseUtil.success();
}
/**
* 订单完成校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderAffirmVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//判断订单是否已送达
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_REPETITION,getOrderManagerResponse(orderBean));
}
//已取消的订单不能操作
if(OrderStatus.CANCEL.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED,getOrderManagerResponse(orderBean));
}
//判断订单状态是否为已经申请退款订单
if (orderBean.getHasRefund() != null
&& orderBean.getHasRefund()
&& (orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 1
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() == 4)) {
return ResponseUtil.error(ResponseResult.AFFIRM_FAIL_APPLY_REFUND,getOrderManagerResponse(orderBean));
}
//校验订单是否为配送状态
if(isWaimai(orderBean) && ObjectUtils.notEqual(OrderStatus.DISTRIBUTION.getCode(),orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_DELIVERY_FAILED,getOrderManagerResponse(orderBean));
}
return commonVerify(orderBean, request);
}
/**
* 通用校验
* @param orderBean
* @param request
* @return
*/
private BaseResponse commonVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (ObjectUtils.notEqual(orderBean.getCompanyId(), request.getPartnerId())) {
return ResponseUtil.error(ResponseResult.ORDER_PARTNER_ID_NOT_MATCTH);
return ResponseUtil.error(ResponseResult.ORDER_PARTNER_ID_NOT_MATCTH,getOrderManagerResponse(orderBean));
}
//开放平台不传入门店
if (ObjectUtils.notEqual(request.getOperator(), OperateClient.OPEN_PLATFORM.getOpName()) && ObjectUtils.notEqual(orderBean.getShopId(), request.getStoreId())) {
return ResponseUtil.error(ResponseResult.ORDER_STORE_ID_NOT_MATCTH);
return ResponseUtil.error(ResponseResult.ORDER_STORE_ID_NOT_MATCTH,getOrderManagerResponse(orderBean));
}
return ResponseUtil.success();
}
/**
* 是否是外卖
* @param orderBean
* @return
*/
private boolean isWaimai(QueryOrdersResponse.DataBean.OrderBean orderBean){
String source = orderBean.getSource();
if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
|| OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)){
return true;
}
return false;
}
private OrderManagerResponse getOrderManagerResponse(QueryOrdersResponse.DataBean.OrderBean orderBean){
Integer refundStatus= CollectionUtils.isEmpty(orderBean.getRefundList())?null:orderBean.getRefundList().get(0).getStatus();
return new OrderManagerResponse(orderBean.getGmtExpect(),orderBean.getStatus(),refundStatus);
}
}
......@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.RefundStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService;
......@@ -43,6 +44,8 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private OrderCenterSdkService orderCenterSdkService;
@Autowired
private SaasOrderService saasOrderService;
@Autowired
private OrderDeliveryService orderDeliveryService;
@Autowired
private OrderBaseService orderBaseService;
......@@ -84,4 +87,65 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason());
return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus));
}
/**
* 制作完成
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单制作完成
BaseQueryOrderRequest orderDoneRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderDone(orderDoneRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_DONE,request.getReason());
return ResponseUtil.success();
}
/**
* 订单配送
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单配送
BaseQueryOrderRequest orderDeliveryRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderSend(orderDeliveryRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_SEND,request.getReason());
return ResponseUtil.success();
}
/**
* 订单完成
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单完成
BaseQueryOrderRequest orderAffirmRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderAffirm(orderAffirmRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_AFFIRM,request.getReason());
return ResponseUtil.success();
}
}
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SaasOrderService
* @Package cn.freemud.management.service.impl
* @Description:
* @author: shuhu.hou
* @date: 2020/4/23 11:30
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public class SaasOrderService {
@Autowired
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private OrderCenterSdkService orderCenterSdkService;
/**
* 订单制作完成
* @param request
* @param orderBean
* @return
*/
public BaseResponse orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderDoneRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderDone(orderDoneRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
throw new OrderServiceException(ResponseResult.DONE_ORDER_FAIL);
}
return ResponseUtil.success();
}
/**
* 订单配送
* @param request
* @param orderBean
* @return
*/
public BaseResponse orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderDeliveryRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderSend(orderDeliveryRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
throw new OrderServiceException(ResponseResult.DELIVERY_FAIL);
}
return ResponseUtil.success();
}
/**
* 订单完成
* @param request
* @param orderBean
* @return
*/
public BaseResponse orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderAffirmRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderAffirm(orderAffirmRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
throw new OrderServiceException(ResponseResult.AFFIRM_ORDER_FAIL);
}
return ResponseUtil.success();
}
}
......@@ -2,11 +2,13 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.adapter.WaimaiSdkAdapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.takeaway.request.order.OrderSendOutRequest;
import com.freemud.application.sdk.api.takeaway.request.order.PlatformOrderRequest;
import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
......@@ -31,18 +33,60 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private WaimaiOrderService waimaiOrderService;
@Autowired
private WaimaiSdkAdapter waimaiSdkAdapter;
@Override
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest();
platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder());
platformOrderRequest.setChannel(orderBean.getSource());
platformOrderRequest.setCompanyId(orderBean.getCompanyId());
platformOrderRequest.setOrderId(orderBean.getOid());
platformOrderRequest.setShopId(orderBean.getShopId());
platformOrderRequest.setOperator(request.getOperator());
PlatformOrderRequest platformOrderRequest = waimaiSdkAdapter.getPlatformOrderRequest(request, orderBean);
com.freemud.application.sdk.api.base.BaseResponse waimaiBaseResponse = waimaiOrderService.confirm(platformOrderRequest, LogTreadLocal.getTrackingNo());
if(ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),waimaiBaseResponse.getCode())){
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), waimaiBaseResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
}
return ResponseUtil.success();
}
/**
* 制作完成
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
return ResponseUtil.success();
}
/**
* 订单配送
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
OrderSendOutRequest orderSendOutRequest = waimaiSdkAdapter.getOrderSendOutRequest(request, orderBean);
com.freemud.application.sdk.api.base.BaseResponse sendoutResponse = waimaiOrderService.sendout(orderSendOutRequest, LogTreadLocal.getTrackingNo());
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), sendoutResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
}
return ResponseUtil.success();
}
/**
* 订单完成
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
OrderSendOutRequest orderArriveRequest = waimaiSdkAdapter.getOrderArriveRequest(request, orderBean);
com.freemud.application.sdk.api.base.BaseResponse arriveResponse = waimaiOrderService.arrive(orderArriveRequest, LogTreadLocal.getTrackingNo());
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), arriveResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
}
return ResponseUtil.success();
......
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