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.*;
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.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.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.request.create.*;
......@@ -190,7 +191,25 @@ public class OrderSdkAdapter {
var1.setOrderClient(orderBean.getOrderClient());
if (orderBean.getRefundList() != null && orderBean.getRefundList().size() != 0) {
//新订单服务需要售后单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;
}
......
......@@ -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.RefundBeanV1;
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.orderv1.OrderSourceV1;
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.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
......@@ -3574,7 +3572,7 @@ public class OrderServiceImpl implements Orderservice {
if (CollectionUtils.isEmpty(orderRefundVo.getOrderCodes())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "未传递订单号");
}
Map<String, String> resultMap = new HashMap<>();
Map<String, String> resultMap = new LinkedHashMap<>();
orderRefundVo.getOrderCodes().forEach(orderCode -> {
try {
BaseResponse resp = this.batchDevelopRefund(orderRefundVo, orderCode);
......@@ -3664,43 +3662,66 @@ public class OrderServiceImpl implements Orderservice {
// 未接单的 请用户直接操作C端小程序处理
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未接单,请指引用户C端操作退款!");
} else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
cancelOrderRequest.setOrderId(orderBean.getOid());
cancelOrderRequest.setOrderClient(Integer.parseInt(orderBean.getOrderClient()));
boolean isCreateAfter = true;
// 查询是否有未处理的售后单,如果有 直接调用请求,
if (CollectionUtils.isNotEmpty(orderBean.getRefundList())) {
List<RefundBeanV1> refundList = orderBean.getRefundList();
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:售后申请
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
if (NewOrderStatus.COMPLETE.getIndex().equals(orderBean.getStatusV2())) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN);
if (isCreateAfter) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
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的 同意退款操作
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