Commit 34dbe1b4 by shuhu.hou@freemud.cn

接单二期

parent 3f671fe9
...@@ -49,6 +49,12 @@ public class OrderSdkAdapter { ...@@ -49,6 +49,12 @@ public class OrderSdkAdapter {
private static final int STACK_SUB = 1; private static final int STACK_SUB = 1;
/**
* 接单request
* @param operator
* @param orderBean
* @return
*/
public BaseQueryOrderRequest getOrderConfirmRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){ public BaseQueryOrderRequest getOrderConfirmRequest(String operator, QueryOrdersResponse.DataBean.OrderBean orderBean){
BaseQueryOrderRequest orderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest orderRequest = new BaseQueryOrderRequest();
orderRequest.setOrderId(orderBean.getOid()); orderRequest.setOrderId(orderBean.getOid());
...@@ -64,6 +70,22 @@ public class OrderSdkAdapter { ...@@ -64,6 +70,22 @@ public class OrderSdkAdapter {
return orderRequest; 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, public CancelOrderRequest convent2CancelOrderRequest(String orderId, String partnerId, AfterSalesType afterSalesType,
String reason, String trackingNo, Long refund_id) { String reason, String trackingNo, Long refund_id) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
......
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){
BaseOrderRequest arriveReq = new BaseOrderRequest();
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 { ...@@ -47,6 +47,12 @@ public class OrderManagerController {
switch (byOpType) { switch (byOpType) {
case ORDER_CONFIRM: case ORDER_CONFIRM:
return orderManagerAdapter.orderConfirmTake(request); 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);
case ORDER_REJECT: case ORDER_REJECT:
return orderManagerAdapter.orderReject(request); return orderManagerAdapter.orderReject(request);
default: default:
......
...@@ -37,6 +37,11 @@ public class OrderManagerResponse { ...@@ -37,6 +37,11 @@ public class OrderManagerResponse {
this.orderPrintConfig=orderPrintConfig; this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect; this.gmtExpect=gmtExpect;
} }
public OrderManagerResponse(RefundStatus refundStatus){
if (refundStatus!=null){
this.refundStatus=refundStatus.getCode();
}
}
public OrderManagerResponse(OrderStatus status, RefundStatus refundStatus){ public OrderManagerResponse(OrderStatus status, RefundStatus refundStatus){
if (status!=null){ if (status!=null){
this.status=status.getCode(); this.status=status.getCode();
......
...@@ -19,7 +19,7 @@ public enum OrderStatus { ...@@ -19,7 +19,7 @@ public enum OrderStatus {
RECEIPT(3, "接单"), RECEIPT(3, "接单"),
DISTRIBUTION(4, "配送中"), DISTRIBUTION(4, "配送中"),
COMPLETE(5, "完成"), COMPLETE(5, "完成"),
CALCEL(6, "取消"), CANCEL(6, "取消"),
REFUSE(7,"拒单"), REFUSE(7,"拒单"),
COMPLETE_MAKE(31, "制作完成"); COMPLETE_MAKE(31, "制作完成");
......
...@@ -140,7 +140,17 @@ public enum ResponseResult { ...@@ -140,7 +140,17 @@ public enum ResponseResult {
ORDER_ACCEPT_FAILED("45057", "接单失败"), ORDER_ACCEPT_FAILED("45057", "接单失败"),
ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED("45058", "创建配送单失败导致接单失败"), ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED("45058", "创建配送单失败导致接单失败"),
ORDER_OPERATE_TYPE_NOT_VALIDATE("45059","订单操作类型(operateType)不支持"), 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","重复操作,订单已送出"),
/** /**
* 支付 * 支付
*/ */
......
...@@ -18,5 +18,28 @@ public interface OrderManagerService { ...@@ -18,5 +18,28 @@ public interface OrderManagerService {
*/ */
BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean); 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);
} }
...@@ -6,8 +6,10 @@ import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; ...@@ -6,8 +6,10 @@ import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.impl.OrderVerifyService; import cn.freemud.management.service.impl.OrderVerifyService;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -40,7 +42,56 @@ public class OrderManagerAdapter { ...@@ -40,7 +42,56 @@ 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 verifyResponse;
}
return orderBeanFactory.getOrderManagerService(orderBean).orderDone(request, orderBean);
}
/**
* 送出
* @param request
* @return
*/
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
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()) ? ResponseUtil.success() : verifyResponse;
}
return orderBeanFactory.getOrderManagerService(orderBean).orderDelivery(request, orderBean);
}
/**
* 完成
* @param request
* @return
*/
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyService.orderAffirmVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return StringUtils.equals(verifyResponse.getCode(), ResponseResult.ORDER_IS_COMPLETE_CAN_NOT_DELIVERY.getCode()) ? ResponseUtil.success() : verifyResponse;
}
return orderBeanFactory.getOrderManagerService(orderBean).orderAffirm(request, orderBean);
}
/**
* 拒单 * 拒单
*
* @param request * @param request
* @return * @return
*/ */
......
...@@ -2,11 +2,11 @@ package cn.freemud.management.service.impl; ...@@ -2,11 +2,11 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.enums.OrderStatus; import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient; 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 com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -43,6 +43,95 @@ public class OrderVerifyService { ...@@ -43,6 +43,95 @@ public class OrderVerifyService {
return commonVerify(orderBean, request); 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);
}
//订单已经发送过配送
if(OrderStatus.DISTRIBUTION.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_REPETITION);
}
//判断订单状态是否为已经申请退款订单
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);
}
//外卖订单不是接单不能送出
if (!OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_STATUS_NOTAKE);
}
return commonVerify(orderBean, request);
}
/**
* 订单制作完成校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderDoneVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
//已制作完成的订单不能重复操作
if (OrderStatus.COMPLETE_MAKE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_REPETITION);
}
//订单非接单状态,不能制作完成
if (!OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DONE_FAIL_NOT_ACCEPT);
}
//判断订单状态是否为已经申请退款订单
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);
}
return ResponseUtil.success();
}
/**
* 订单完成校验
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderAffirmVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
//判断订单是否已送达
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.DELIVERY_SEND_REPETITION);
}
//已取消的订单不能操作
if(OrderStatus.CANCEL.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
//判断订单状态是否为已经申请退款订单
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);
}
//校验订单是否为配送状态
if(isWaimai(orderBean) && ObjectUtils.notEqual(OrderStatus.DISTRIBUTION.getCode(),orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_DELIVERY_FAILED);
}
return commonVerify(orderBean, request);
}
private BaseResponse commonVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) { private BaseResponse commonVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (ObjectUtils.notEqual(orderBean.getCompanyId(), request.getPartnerId())) { if (ObjectUtils.notEqual(orderBean.getCompanyId(), request.getPartnerId())) {
...@@ -54,4 +143,13 @@ public class OrderVerifyService { ...@@ -54,4 +143,13 @@ public class OrderVerifyService {
} }
return ResponseUtil.success(); return ResponseUtil.success();
} }
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;
}
} }
...@@ -84,4 +84,63 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -84,4 +84,63 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason());
return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus)); 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 CollectionUtils.isNotEmpty(orderBean.getRefundList())? ResponseUtil.success(new OrderManagerResponse(RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus()))):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();
}
} }
...@@ -2,11 +2,13 @@ package cn.freemud.management.service.impl; ...@@ -2,11 +2,13 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; 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.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.util.ResponseUtil; 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.request.order.PlatformOrderRequest;
import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService; import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
...@@ -31,18 +33,60 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService { ...@@ -31,18 +33,60 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
@Autowired @Autowired
private WaimaiOrderService waimaiOrderService; private WaimaiOrderService waimaiOrderService;
@Autowired
private WaimaiSdkAdapter waimaiSdkAdapter;
@Override @Override
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest(); PlatformOrderRequest platformOrderRequest = waimaiSdkAdapter.getPlatformOrderRequest(request, orderBean);
platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder());
platformOrderRequest.setChannel(orderBean.getSource());
platformOrderRequest.setCompanyId(orderBean.getCompanyId());
platformOrderRequest.setOrderId(orderBean.getOid());
platformOrderRequest.setShopId(orderBean.getShopId());
platformOrderRequest.setOperator(request.getOperator());
com.freemud.application.sdk.api.base.BaseResponse waimaiBaseResponse = waimaiOrderService.confirm(platformOrderRequest, LogTreadLocal.getTrackingNo()); 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.error(ResponseResult.ORDER_ACCEPT_FAILED);
} }
return ResponseUtil.success(); 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