Commit dd429c31 by zhiheng.zhang

拒单

parent 93886ea2
...@@ -124,10 +124,14 @@ public class OrderManagerAdapter { ...@@ -124,10 +124,14 @@ public class OrderManagerAdapter {
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId()); QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
//订单接单参数校验 //订单接单参数校验
BaseResponse verifyResponse; BaseResponse verifyResponse;
if (!macCafePartnerId.equals(orderBean.getCompanyId())) { if(OrderClientType.SAASMALL.getIndex().toString().equalsIgnoreCase(orderBean.getOrderClient())){
verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request); verifyResponse = orderVerifyHandle.mallOrderRejectVerify(orderBean, request);
} else { }else {
verifyResponse = orderVerifyHandle.mcCafeOrderRejectVerify(orderBean, request); if (!macCafePartnerId.equals(orderBean.getCompanyId())) {
verifyResponse = orderVerifyHandle.orderRejectVerify(orderBean, request);
} else {
verifyResponse = orderVerifyHandle.mcCafeOrderRejectVerify(orderBean, request);
}
} }
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) { if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse); return handleResponse(request,orderBean,verifyResponse);
......
...@@ -118,4 +118,22 @@ public class MallOrderHandle { ...@@ -118,4 +118,22 @@ public class MallOrderHandle {
} }
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 拒单
*
* @param request
* @param orderBean
* @return
*/
public BaseResponse orderReject(OrderManagerRequest request, PayRefundResponse refundResponse, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//作废订单
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.getCancelOrderRequest(request.getOperator(), request.getReason(), refundResponse.getPayRefundStatus(), refundResponse.getRefundId(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderReject(cancelOrderRequest);
if (baseOrderResponse == null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), baseOrderResponse.getErrcode().toString())) {
return ResponseUtil.error(ResponseResult.AFFIRM_ORDER_FAIL);
}
return ResponseUtil.success();
}
} }
...@@ -240,6 +240,39 @@ public class OrderVerifyHandle { ...@@ -240,6 +240,39 @@ public class OrderVerifyHandle {
* @param request * @param request
* @return * @return
*/ */
public BaseResponse mallOrderRejectVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
Integer status = orderBean.getStatus();
//判断订单是否已经被拒单
if (OrderStatus.REFUSE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_REPETITION, getOrderManagerResponse(orderBean));
}
//判断订单是否已经取消
if (OrderStatus.CANCEL.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED, getOrderManagerResponse(orderBean));
}
//判断订单是否在配送中
if (OrderStatus.DISTRIBUTION.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_DELIVERY, getOrderManagerResponse(orderBean));
}
//判断订单是否已送达
if (OrderStatus.COMPLETE.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_COMPLETE, getOrderManagerResponse(orderBean));
}
if (!OrderStatus.TAKE_ORDER.getCode().equals(status)) {
return ResponseUtil.error(ResponseResult.REJECT_FAIL_ORDER_IS_NOT_NEW, getOrderManagerResponse(orderBean));
}
return ResponseUtil.success();
}
/**
* 拒单
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse mcCafeOrderRejectVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) { public BaseResponse mcCafeOrderRejectVerify(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
if (orderBean == null) { if (orderBean == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
...@@ -315,8 +348,7 @@ public class OrderVerifyHandle { ...@@ -315,8 +348,7 @@ public class OrderVerifyHandle {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED); return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
} }
//判断订单是否有申请退款 //判断订单是否有申请退款
if (orderBean.getHasRefund() == null if (orderBean.getHasRefund() == null || !orderBean.getHasRefund()) {
|| !orderBean.getHasRefund()) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY); return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
} }
//订单是否支持退款 //订单是否支持退款
......
...@@ -125,4 +125,34 @@ public class MallOrderMangerServiceImpl implements OrderManagerService { ...@@ -125,4 +125,34 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 拒单
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderReject(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//支付退款
PayRefundResponse refundResponse = new PayRefundResponse();
try {
if(null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size()>0){
refundResponse = paymentHandle.multiRefund(orderBean);
}else{
refundResponse = paymentHandle.refund(request, orderBean);
}
} catch (OrderServiceException orderEx){ // 爱马哥兼容,不抛错
return ResponseUtil.error(orderEx.getResult());
}
//订单拒单
mallOrderHandle.orderReject(request, refundResponse, orderBean);
// 推送pos、微信消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_REJECT, request.getReason());
//todo 可以考虑基于订单回调异步实现
//冲正库存
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