Commit 94f0cce8 by 徐康

Merge branch 'feature-2020/8/6-McCafe-会阳' into develop

# Conflicts:
#	order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
parents 96c504d8 f693f423
......@@ -163,7 +163,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.AGREE.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_AGREE_REFUND.getOpType());
orderManagerRequest.setReason("配送回调-同意退款");
return orderManagerAdapter.orderAgreeRefund(orderManagerRequest);
return orderManagerAdapter.orderPayRefund(orderManagerRequest);
}
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.REJECT.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_REJECT_REFUND.getOpType());
......
......@@ -2943,8 +2943,8 @@ public class OrderServiceImpl implements Orderservice {
dto.setDeliveryId(orderBean.getAddInfo().getDeliveryId());
}
QueryDeliveryAmountResponseDto responseDto = deliveryFeiginClient.orderRemind(dto);
if(null != response && 120 == responseDto.getCode()) {
return ResponseUtil.error("120", response.getErrmsg());
if(null != responseDto && 120 == responseDto.getCode()) {
return ResponseUtil.error("120", responseDto.getMsg());
}
if(responseDto == null || RESPONSE_SUCCESS_CODE != responseDto.getCode()) {
return ResponseUtil.error(ResponseResult.DELIVERY_REMINDER_ERROR);
......
......@@ -167,6 +167,7 @@ public enum ResponseResult {
REJECT_REFUND_ORDER_FAIL("45082", "拒绝退款失败"),
ORDER_DELIVERY_CALL_BACK_FAILED("45083", "配送回调失败,为找到对应操作类型"),
ORDER_UPDATE_PICKUP_FAILED("45084", "更新取餐码失败"),
ORDER_STATUS_FAILED("45085", "订单状态错误"),
/**
* 支付
*/
......
......@@ -81,5 +81,12 @@ public interface OrderManagerService {
return ResponseUtil.success();
}
/**
* 取消订单
*/
default BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
}
......@@ -16,6 +16,7 @@ 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.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
......@@ -27,6 +28,8 @@ public class OrderManagerAdapter {
private OrderBaseService orderBaseService;
@Autowired
private OrderBeanFactory orderBeanFactory;
@Value("${mcCafe.partnerId}")
private String macCafePartnerId;
/**
......@@ -39,9 +42,12 @@ public class OrderManagerAdapter {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderConfirmTakeVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return verifyResponse;
String companyId = orderBean.getCompanyId();
if (!macCafePartnerId.equals(companyId)) {
BaseResponse verifyResponse = orderVerifyHandle.orderConfirmTakeVerify(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return verifyResponse;
}
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderConfirm(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
......@@ -142,6 +148,26 @@ public class OrderManagerAdapter {
}
/**
* 同意退款或者取消订单
*/
public BaseResponse orderPayRefund(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if(CollectionUtils.isNotEmpty(orderBean.getRefundList())){
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderAgreeRefundMCCafe(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderAgreeRefund(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}else {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancel(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
}
/**
* 拒绝退款
* @param request
* @return
......
package cn.freemud.management.service.handle;
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.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.RefundConfig;
......@@ -12,10 +13,16 @@ import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.sdk.api.assortment.message.enums.OrderType;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
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.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -54,6 +61,11 @@ public class OrderVerifyHandle {
@Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
@Autowired
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private OrderCenterSdkService orderCenterSdkService;
/**
* 接单校验
*
......@@ -237,6 +249,25 @@ public class OrderVerifyHandle {
}
/**
* 麦咖啡同意退款
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderAgreeRefundMCCafe(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
//已取消的订单不能操作
if (ObjectUtils.equals(OrderStatus.CANCEL.getCode(), orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
if(CollectionUtils.isNotEmpty(orderBean.getRefundList())
&& orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
}
return ResponseUtil.success();
}
/**
* 拒绝退款
* @param orderBean
* @param request
......
......@@ -183,5 +183,18 @@ public class SaasOrderHandle {
return ResponseUtil.success();
}
/**
* 取消订单
*/
public BaseResponse orderCancel(OrderManagerRequest request, PayRefundResponse refundResponse,QueryOrdersResponse.DataBean.OrderBean orderBean) {
//作废订单
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.getCancelOrderRequest(request.getOperator(), request.getReason(), refundResponse.getPayRefundStatus(), refundResponse.getRefundId(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), baseOrderResponse.getErrcode().toString())) {
return ResponseUtil.error(ResponseResult.AFFIRM_ORDER_FAIL);
}
return ResponseUtil.success();
}
}
......@@ -6,6 +6,7 @@ import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderAssembly
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.pay.PayRefundResponse;
import cn.freemud.management.enums.OrderStatus;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
......@@ -52,12 +53,18 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
@Override
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
OrderManagerRequest orderManagerRequest =new OrderManagerRequest();
BeanUtils.copyProperties(request,orderManagerRequest);
// 订单接单
saasOrderHandle.orderConfirm(orderManagerRequest, orderBean);
//支付成功已经 创建配送单
if (!OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus()) && !OrderStatus.RECEIPT.getCode().equals(orderBean.getStatus())){
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
}
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
// 订单接单
saasOrderHandle.orderConfirm(orderManagerRequest, orderBean);
}
if (StringUtils.isNotEmpty(request.getPickUpGoodsNo())){
//更新取餐码
BaseResponse baseResponse = saasOrderHandle.updatePickUpGoodNo(request, orderBean);
......@@ -183,4 +190,20 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
saasOrderHandle.refundReject(request,orderBean);
return ResponseUtil.success();
}
/**
* 商家取消
*/
@Override
public BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//支付退款
PayRefundResponse refund = paymentHandle.refund(request, orderBean);
//订单拒单
saasOrderHandle.orderCancel(request,refund, orderBean);
//冲正库存
stockHandle.revert(request, orderBean);
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