Commit 12cf7b32 by 王世昌

允许部分订单失败

parent 3f5d27c4
...@@ -68,7 +68,6 @@ import cn.freemud.utils.*; ...@@ -68,7 +68,6 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.api.assortment.datamanager.entity.db.*; import com.freemud.api.assortment.datamanager.entity.db.*;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.*; import com.freemud.api.assortment.datamanager.manager.*;
...@@ -4212,7 +4211,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4212,7 +4211,7 @@ public class OrderServiceImpl implements Orderservice {
orderRefundVo.setRefundMode(RefundModeEnum.UN_REFUND_GOODS.getIndex()); orderRefundVo.setRefundMode(RefundModeEnum.UN_REFUND_GOODS.getIndex());
// 拼团失败逻辑处理 // 拼团失败逻辑处理
BaseResponse baseResponse = batchPartnerNoTakeOrder(orderRefundVo, orderBeanList, AfterSalesType.SYSTEM_CANCEL, true); BaseResponse baseResponse = batchRefundOrderNoTake(orderRefundVo, orderBeanList, AfterSalesType.SYSTEM_CANCEL, true);
if (baseResponse != null) { if (baseResponse != null) {
return baseResponse; return baseResponse;
} }
...@@ -4231,11 +4230,11 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4231,11 +4230,11 @@ public class OrderServiceImpl implements Orderservice {
for (OrderBean orderBean : orderBeans) { for (OrderBean orderBean : orderBeans) {
if (Objects.equals(PayStatus.NOT_PAY.getCode(), orderBean.getPayStatus()) if (Objects.equals(PayStatus.NOT_PAY.getCode(), orderBean.getPayStatus())
|| Objects.equals(OrderStatus.WAIT_PAY.getCode(), orderBean.getStatus())) { || Objects.equals(OrderStatus.WAIT_PAY.getCode(), orderBean.getStatus())) {
log.info("拼团失败取消订单 -> 订单未支付,无需退款 订单号:{} ", orderBean.getOid()); log.info("拼团批量取消订单 -> 订单未支付,无需退款 订单号:{} ", orderBean.getOid());
continue; continue;
} }
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) { if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
log.info("拼团失败取消订单 -> 订单已取消,无需退款 订单号:{} ", orderBean.getOid()); log.info("拼团批量取消订单 -> 订单已取消,无需退款 订单号:{} ", orderBean.getOid());
continue; continue;
} }
list.add(orderBean); list.add(orderBean);
...@@ -4280,7 +4279,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4280,7 +4279,7 @@ public class OrderServiceImpl implements Orderservice {
* @param isRefundDeliveryFee * @param isRefundDeliveryFee
* @return * @return
*/ */
private BaseResponse batchPartnerNoTakeOrder(SpellGroupBatchOrderRefundVo orderRefundVo, List<OrderBean> orderBeans, AfterSalesType afterSalesType, Boolean isRefundDeliveryFee) { private BaseResponse batchRefundOrderNoTake(SpellGroupBatchOrderRefundVo orderRefundVo, List<OrderBean> orderBeans, AfterSalesType afterSalesType, Boolean isRefundDeliveryFee) {
if (CollectionUtils.isEmpty(orderBeans)) { if (CollectionUtils.isEmpty(orderBeans)) {
return null; return null;
} }
...@@ -4300,15 +4299,17 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4300,15 +4299,17 @@ public class OrderServiceImpl implements Orderservice {
unPayRefund.add(orderBean.getOid()); unPayRefund.add(orderBean.getOid());
} }
}); });
// 1 进行批量退款
if (!payRefundOrderCodes.isEmpty()) { if (!payRefundOrderCodes.isEmpty()) {
// 1.组装批量退款参数
BatchOrderRefundV2Request batchOrderRefundV2Request = orderAdapter.getBatchOrderRefundV2Request(payRefundOrderCodes, partnerId, storeId);
PayBatchRefundResponse response = null; PayBatchRefundResponse response = null;
try { try {
// 2.调用支付服务退款 // 1.1 组装批量退款参数
BatchOrderRefundV2Request batchOrderRefundV2Request = orderAdapter.getBatchOrderRefundV2Request(payRefundOrderCodes, partnerId, storeId);
// 1.2 调用支付服务退款
response = paymentNewClient.batchRefund(batchOrderRefundV2Request); response = paymentNewClient.batchRefund(batchOrderRefundV2Request);
} catch (Exception e) { } catch (Exception e) {
log.error("批量退款失败!!", e); log.error("拼团批量退款失败!!", e);
} }
PayBatchRefundResponse.BatchRefundBatchIdData batchIdData; PayBatchRefundResponse.BatchRefundBatchIdData batchIdData;
if (Objects.isNull(response) || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, response.getCode()) if (Objects.isNull(response) || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, response.getCode())
...@@ -4319,7 +4320,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4319,7 +4320,8 @@ public class OrderServiceImpl implements Orderservice {
batchId = batchIdData.getBatchId(); batchId = batchIdData.getBatchId();
} }
// 循环退单 // 2 循环退单
List<OrderBean> failOrderBean = new ArrayList<>();
String trackingNo = LogTreadLocal.getTrackingNo(); String trackingNo = LogTreadLocal.getTrackingNo();
for (OrderBean orderBean : orderBeans) { for (OrderBean orderBean : orderBeans) {
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(),
...@@ -4339,19 +4341,31 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4339,19 +4341,31 @@ public class OrderServiceImpl implements Orderservice {
// 记录退款批次 // 记录退款批次
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent()); cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
salesOrderExtInfoReq.setBatchRefundId(batchId); salesOrderExtInfoReq.setBatchRefundId(batchId);
// todo 发生延时mq用于检查
} }
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks()); cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee); cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
boolean fail = true;
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest); try {
// todo 需要进行部分的处理 BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) { if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); log.error("批量取消订单失败 订单号:{}",orderBean.getOid());
}
fail = false;
// 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
}catch(Exception e){
log.error("批量取消订单异常 订单号:{}",orderBean.getOid(),e);
}
// 记录失败
if (fail){
failOrderBean.add(orderBean);
} }
// 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
} }
return null; // todo 失败入库
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