Commit 1c5b1c5a by 缪晖

Merge branch 'KA-接口调用订单退款' into 'master'

仅支持 餐饮订单操作该接口

See merge request !137
parents 556e2e89 6e09aff0
...@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.*; ...@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.*;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest; import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.request.create.*; import com.freemud.application.sdk.api.ordercenter.request.create.*;
...@@ -190,7 +191,25 @@ public class OrderSdkAdapter { ...@@ -190,7 +191,25 @@ public class OrderSdkAdapter {
var1.setOrderClient(orderBean.getOrderClient()); var1.setOrderClient(orderBean.getOrderClient());
if (orderBean.getRefundList() != null && orderBean.getRefundList().size() != 0) { if (orderBean.getRefundList() != null && orderBean.getRefundList().size() != 0) {
//新订单服务需要售后单code //新订单服务需要售后单code
var1.setAfterSalesCode(orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getRid()); // var1.setAfterSalesCode(orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getRid());
// fisherman 按时间排序 拿最后一个
List<RefundBeanV1> refundList = orderBean.getRefundList();
Collections.sort(refundList, new Comparator<RefundBeanV1>() {
@Override
public int compare(RefundBeanV1 o1, RefundBeanV1 o2) {
Long aLong = Long.valueOf(o1.getCreateTime());
Long bLong = Long.valueOf(o2.getCreateTime());
if (bLong > aLong) {
return 1;
}else if (bLong<aLong){
return -1;
}else {
return 0;
}
}
});
var1.setAfterSalesCode(refundList.get(0).getRid());
} }
return var1; return var1;
} }
......
...@@ -98,11 +98,9 @@ import com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommon ...@@ -98,11 +98,9 @@ import com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommon
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.*;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType; import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq; import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse; import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
...@@ -3574,7 +3572,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3574,7 +3572,7 @@ public class OrderServiceImpl implements Orderservice {
if (CollectionUtils.isEmpty(orderRefundVo.getOrderCodes())) { if (CollectionUtils.isEmpty(orderRefundVo.getOrderCodes())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "未传递订单号"); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "未传递订单号");
} }
Map<String, String> resultMap = new HashMap<>(); Map<String, String> resultMap = new LinkedHashMap<>();
orderRefundVo.getOrderCodes().forEach(orderCode -> { orderRefundVo.getOrderCodes().forEach(orderCode -> {
try { try {
BaseResponse resp = this.batchDevelopRefund(orderRefundVo, orderCode); BaseResponse resp = this.batchDevelopRefund(orderRefundVo, orderCode);
...@@ -3664,43 +3662,66 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3664,43 +3662,66 @@ public class OrderServiceImpl implements Orderservice {
// 未接单的 请用户直接操作C端小程序处理 // 未接单的 请用户直接操作C端小程序处理
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未接单,请指引用户C端操作退款!"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未接单,请指引用户C端操作退款!");
} else { } else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); boolean isCreateAfter = true;
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); // 查询是否有未处理的售后单,如果有 直接调用请求,
cancelOrderRequest.setStoreId(orderBean.getShopId()); if (CollectionUtils.isNotEmpty(orderBean.getRefundList())) {
cancelOrderRequest.setOrderId(orderBean.getOid()); List<RefundBeanV1> refundList = orderBean.getRefundList();
cancelOrderRequest.setOrderClient(Integer.parseInt(orderBean.getOrderClient())); Collections.sort(refundList, (o1, o2) -> {
Long aLong = Long.valueOf(o1.getCreateTime());
Long bLong = Long.valueOf(o2.getCreateTime());
if (bLong > aLong) {
return 1;
}else if (bLong < aLong){
return -1;
}else {
return 0;
}
});
RefundBeanV1 refundBeanV11 = refundList.get(0);
isCreateAfter = refundBeanV11.getStatus().compareTo(RefundStatusV1.APPLY_REFUND.getCodeV1()) != 0;
}
//传入的售后单类型为:2:售中用户取消 8:售后申请 if (isCreateAfter) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
if (NewOrderStatus.COMPLETE.getIndex().equals(orderBean.getStatusV2())) { cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN); cancelOrderRequest.setStoreId(orderBean.getShopId());
cancelOrderRequest.setOrderId(orderBean.getOid());
cancelOrderRequest.setOrderClient(Integer.parseInt(orderBean.getOrderClient()));
//传入的售后单类型为:2:售中用户取消 8:售后申请
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
if (NewOrderStatus.COMPLETE.getIndex().equals(orderBean.getStatusV2())) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN);
}
cancelOrderRequest.setReason(orderRefundVo.getReason());
cancelOrderRequest.setReqRemark(orderRefundVo.getReason());
// 商城订单 增加拓展信息
CancelOrderRequest.AfterSalesOrderExtInfoReq salesOrderExtInfoReq = new CancelOrderRequest.AfterSalesOrderExtInfoReq();
salesOrderExtInfoReq.setRefundMode(orderRefundVo.getRefundMode());
cancelOrderRequest.setExtInfoReq(salesOrderExtInfoReq);
cancelOrderRequest.setOperator(orderRefundVo.getOperator());
cancelOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg());
}
if (orderBean.getAmount() > 0) {
sendPosMessage(orderBean.getCompanyId(), orderBean.getShopId());
}
// 兼容下面的方法
OrderRefundVo refundVo = new OrderRefundVo();
refundVo.setReason(orderRefundVo.getReason());
refundVo.setRemarks(orderRefundVo.getReason());
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean, refundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, refundVo);
} }
cancelOrderRequest.setReason(orderRefundVo.getReason());
cancelOrderRequest.setReqRemark(orderRefundVo.getReason());
// 商城订单 增加拓展信息
CancelOrderRequest.AfterSalesOrderExtInfoReq salesOrderExtInfoReq = new CancelOrderRequest.AfterSalesOrderExtInfoReq();
salesOrderExtInfoReq.setRefundMode(orderRefundVo.getRefundMode());
cancelOrderRequest.setExtInfoReq(salesOrderExtInfoReq);
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg());
}
if (orderBean.getAmount() > 0) {
sendPosMessage(orderBean.getCompanyId(), orderBean.getShopId());
}
// 兼容下面的方法
OrderRefundVo refundVo = new OrderRefundVo();
refundVo.setReason(orderRefundVo.getReason());
refundVo.setRemarks(orderRefundVo.getReason());
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean, refundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, refundVo);
} }
// 调用oms的 同意退款操作 // 调用oms的 同意退款操作
OrderManagerRequest request = new OrderManagerRequest(); OrderManagerRequest request = new OrderManagerRequest();
......
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