Commit 9d362f21 by shuhu.hou@freemud.cn

orderManager新增返回参数

parent 0f1de10d
package cn.freemud.management.entities.dto.response.order;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.Size;
@Data
public class OrderConfirmResponse {
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1
*/
private String orderPrintConfig;
/**
* 订单预约时间
*/
private Long gmtExpect;
public OrderConfirmResponse(String orderPrintConfig,Long gmtExpect){
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
}
}
package cn.freemud.management.entities.dto.response.order;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.RefundStatus;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.Size;
@Data
public class OrderManagerResponse {
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1
*/
private String orderPrintConfig;
/**
* 订单预约时间
*/
private Long gmtExpect;
/**
* 订单状态
* 1=下单,2=待支付,3=接单,4=配送中,5=完成,6=取消,7=拒单,31=制作完成
* @see OrderStatus
*/
private Integer status;
/**
* 订单退款状态
* 1 申请退款 2 同意退款 3 已退货 4 退款完成 5 拒绝退款
* @see RefundStatus
*/
private Integer refundStatus;
public OrderManagerResponse(){
}
public OrderManagerResponse(String orderPrintConfig, Long gmtExpect){
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
}
public OrderManagerResponse(OrderStatus status, RefundStatus refundStatus){
if (status!=null){
this.status=status.getCode();
}
if (refundStatus!=null){
this.refundStatus=refundStatus.getCode();
}
}
public OrderManagerResponse(String orderPrintConfig, Long gmtExpect, RefundStatus refundStatus){
this.orderPrintConfig=orderPrintConfig;
this.gmtExpect=gmtExpect;
if (refundStatus!=null){
this.refundStatus=refundStatus.getCode();
}
}
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderType
* @Package cn.freemud.enums
* @Description: 订单状态
* @author: liming.guo
* @date: 2018/5/21 14:43
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.management.enums;
public enum RefundStatus {
APPLY_REFUND(1, "申请退款"),
AGREE_REFUND(2, "同意退款"),
ALREADY_REFUND(3, "已退货"),
COMPLETE_REFUND(4, "退款完成"),
REFUSE_REFUND(5, "拒绝退款");
private Integer code;
private String desc;
RefundStatus(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static RefundStatus getByCode(Integer code) {
for (RefundStatus status : values()) {
if (status.getCode().equals(code)) {
return status;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -2,7 +2,7 @@ package cn.freemud.management.service; ...@@ -2,7 +2,7 @@ package cn.freemud.management.service;
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.entities.dto.response.order.OrderConfirmResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
/** /**
...@@ -16,7 +16,7 @@ public interface OrderManagerService { ...@@ -16,7 +16,7 @@ public interface OrderManagerService {
* @param orderBean 订单实体 * @param orderBean 订单实体
* @return * @return
*/ */
BaseResponse<OrderConfirmResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean); BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean);
} }
...@@ -2,7 +2,7 @@ package cn.freemud.management.service.adapter; ...@@ -2,7 +2,7 @@ package cn.freemud.management.service.adapter;
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.entities.dto.response.order.OrderConfirmResponse; 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;
...@@ -28,7 +28,7 @@ public class OrderManagerAdapter { ...@@ -28,7 +28,7 @@ public class OrderManagerAdapter {
* @param request * @param request
* @return * @return
*/ */
public BaseResponse<OrderConfirmResponse> orderConfirmTake(OrderManagerRequest request) { public BaseResponse<OrderManagerResponse> orderConfirmTake(OrderManagerRequest request) {
//查询订单 //查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId()); QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验 //订单接单参数校验
......
package cn.freemud.management.service.impl; 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.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderConfirmResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.OperateType; import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.RefundStatus;
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.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
...@@ -18,6 +18,7 @@ import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse; ...@@ -18,6 +18,7 @@ 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.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import javafx.util.Pair; import javafx.util.Pair;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -56,28 +57,31 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -56,28 +57,31 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
* @return * @return
*/ */
@Override @Override
public BaseResponse<OrderConfirmResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//退款状态
RefundStatus refundStatus = CollectionUtils.isEmpty(orderBean.getRefundList()) ? null : RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus());
//订单接单 //订单接单
BaseQueryOrderRequest orderConfirmRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean); BaseQueryOrderRequest orderConfirmRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean);
BaseOrderResponse confirmOrderResponse = orderCenterSdkService.orderConfirmTake(orderConfirmRequest); BaseOrderResponse confirmOrderResponse = orderCenterSdkService.orderConfirmTake(orderConfirmRequest);
//获取门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()),"");
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) {
return ResponseUtil.error(ResponseResult.STORE_NOT_FOUND);
}
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功 //处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功
if ("20067".equals(confirmOrderResponse.getErrcode().toString()) || "20018".equals(confirmOrderResponse.getErrcode().toString()) || "50002".equals(confirmOrderResponse.getErrcode().toString()) ) { if ("20067".equals(confirmOrderResponse.getErrcode().toString()) || "20018".equals(confirmOrderResponse.getErrcode().toString()) || "50002".equals(confirmOrderResponse.getErrcode().toString()) ) {
return ResponseUtil.success(); return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus));
} }
if( ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),confirmOrderResponse.getErrcode().toString())){ if( ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),confirmOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED); return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
} }
//创建配送单 //创建配送单
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()),""); Pair<Boolean, String> deliveryResponse = orderDeliveryService.createDelivery(orderBean, storeInfo, request.getOperator());
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) { if (!deliveryResponse.getKey()){
return ResponseUtil.error(ResponseResult.STORE_NOT_FOUND);
}
Pair<Boolean, String> deliveryResonse = orderDeliveryService.createDelivery(orderBean, storeInfo, request.getOperator());
if (!deliveryResonse.getKey()){
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED); return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED);
} }
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason());
return ResponseUtil.success(new OrderConfirmResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect())); return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus));
} }
} }
...@@ -3,13 +3,12 @@ package cn.freemud.management.service.impl; ...@@ -3,13 +3,12 @@ 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.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderConfirmResponse; 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.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.QueryOrderByIdResponse;
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.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -34,7 +33,7 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService { ...@@ -34,7 +33,7 @@ public class WaimaiOrderMangerServiceImpl implements OrderManagerService {
private WaimaiOrderService waimaiOrderService; private WaimaiOrderService waimaiOrderService;
@Override @Override
public BaseResponse<OrderConfirmResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest(); PlatformOrderRequest platformOrderRequest = new PlatformOrderRequest();
platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder()); platformOrderRequest.setPlatformOrderId(orderBean.getCustomerOrder());
platformOrderRequest.setChannel(orderBean.getSource()); platformOrderRequest.setChannel(orderBean.getSource());
......
...@@ -3,7 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.response; ...@@ -3,7 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.response;
import lombok.Data; import lombok.Data;
@Data @Data
public class OrderConfirmResponse { public class OrderManagerResponse {
/** /**
* 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1 * 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1
*/ */
...@@ -12,13 +12,14 @@ public class OrderConfirmResponse { ...@@ -12,13 +12,14 @@ public class OrderConfirmResponse {
* 订单预约时间 * 订单预约时间
*/ */
private Long gmtExpect; private Long gmtExpect;
/**
public OrderConfirmResponse(){ * 订单状态
* 1=下单,2=待支付,3=接单,4=配送中,5=完成,6=取消,7=拒单,31=制作完成
} */
private Integer status;
public OrderConfirmResponse(String orderPrintConfig, Long gmtExpect){ /**
this.orderPrintConfig=orderPrintConfig; * 订单退款状态
this.gmtExpect=gmtExpect; * 1 申请退款 2 同意退款 3 已退货 4 退款完成 5 拒绝退款
} */
private Integer refundStatus;
} }
...@@ -7,7 +7,7 @@ import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum; ...@@ -7,7 +7,7 @@ import com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderManagerRequest; import com.freemud.application.sdk.api.ordercenter.request.OrderManagerRequest;
import com.freemud.application.sdk.api.ordercenter.response.BaseResponse; import com.freemud.application.sdk.api.ordercenter.response.BaseResponse;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.OrderConfirmResponse; import com.freemud.application.sdk.api.ordercenter.response.OrderManagerResponse;
import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil; import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil;
import com.freemud.application.sdk.api.util.RequestThirdPartyUtils; import com.freemud.application.sdk.api.util.RequestThirdPartyUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -49,9 +49,9 @@ public class OrderManagerSdkService { ...@@ -49,9 +49,9 @@ public class OrderManagerSdkService {
* 根据综合条件查询订单 * 根据综合条件查询订单
*//* *//*
public BaseResponse<OrderConfirmResponse> statusOperate(OrderManagerRequest request) { public BaseResponse<OrderManagerResponse> statusOperate(OrderManagerRequest request) {
OrderBaseResp<OrderConfirmResponse> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, InterfaceAddressConstant.STATUS_OPERATE, OrderBaseResp<OrderManagerResponse> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, InterfaceAddressConstant.STATUS_OPERATE,
createBaseRequest(request, ""), new ParameterizedTypeReference<OrderBaseResp<OrderConfirmResponse>>() { createBaseRequest(request, ""), new ParameterizedTypeReference<OrderBaseResp<OrderManagerResponse>>() {
}); });
return responseHandle(responseDTO); return responseHandle(responseDTO);
} }
......
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