Commit 85f95889 by ping.wu

支付退款成功,订单未创建售后单,直接取消订单

parent 8ae6c36f
......@@ -135,7 +135,7 @@ public class OrderController {
}
/**
* 订单支付成功后通知
* 订单支付成功后通知 老支付回掉,已不用废弃
*/
@ApiAnnotation(logMessage = "paySuccessCallback")
@PostMapping("/paySuccessCallback")
......
......@@ -150,8 +150,8 @@ public class OrderServiceImpl implements Orderservice {
/**
* coco商户
*/
@Value("#{'${coco.partnerId}'.split(',')}")
private List<String> cocoPartnerId;
// @Value("#{'${coco.partnerId}'.split(',')}")
// private List<String> cocoPartnerId;
@Value("#{'${hls.partnerId}'.split(',')}")
private List<String> hlsPartnerId;
@Value("#{'${order.delete.partnerId}'.split(',')}")
......@@ -641,7 +641,7 @@ public class OrderServiceImpl implements Orderservice {
requestVo.setTransId(orderId);
}
String trackingNo = LogThreadLocal.getTrackingNo();
if (StringUtils.isEmpty(requestVo.getTransId())) {
if (StringUtils.isBlank(requestVo.getTransId())) {
//订单号不能为空
return refundFaileMessage("transId is can not empty");
}
......@@ -650,10 +650,6 @@ public class OrderServiceImpl implements Orderservice {
//只有退款成功更新状态.其他情况不处理
return refundFaileMessage("pay refundStatus is not 100,refundStatus=" + refundStatus);
}
// 如果transId为空,返回失败
if (StringUtils.isBlank(requestVo.getTransId())) {
return refundFaileMessage("transId is empty " + requestVo);
}
//查询订单详情
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(requestVo.getTransId());
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
......@@ -669,12 +665,15 @@ public class OrderServiceImpl implements Orderservice {
orderBean = orderBeans.get(0);
}
}
//无售后单,退款回掉取消订单,冲正库存等
if(CollectionUtils.isEmpty(orderBean.getRefundList())){
return cancelOrder(orderBean);
}
//订单状态
Integer status = orderBean.getRefundList().get(0).getStatus();
if (!Objects.equals(RefundStatus.ALREADY_REFUND.getCode(), status)) {
Integer orderRefundStatus = orderBean.getRefundList().get(0).getStatus();
if (!Objects.equals(RefundStatus.ALREADY_REFUND.getCode(), orderRefundStatus)) {
//不是退款中处理不处理
return refundFaileMessage("order status is not 3,status=" + status);
return refundFaileMessage("order status is not 3,status=" + orderRefundStatus);
}
String afterSalesCode = orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getRid();
//退款流水号
......@@ -972,9 +971,9 @@ public class OrderServiceImpl implements Orderservice {
// coco订单不考略是否查询待取餐的订单,直接调用支付有礼活动
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
// if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
}
// }
} catch (Exception e) {
AppLogUtil.errorLog("queryOrders_activity_error", gson.toJson(queryOrderResponseVo), gson.toJson(e), e);
......@@ -983,16 +982,16 @@ public class OrderServiceImpl implements Orderservice {
}
// coco订单参与支付有礼活动
if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
queryOrderResponseVos.forEach(queryOrderResponseVo -> {
try {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
} catch (Exception e) {
AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
}
});
}
// if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
// queryOrderResponseVos.forEach(queryOrderResponseVo -> {
// try {
// joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
//
// } catch (Exception e) {
// AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
// }
// });
// }
for (QueryOrderResponseVo orderResponseVo : queryOrderResponseVos) {
if (OrderMarketType.GROUPB.getIndex() == orderResponseVo.getMarketingType() && StringUtils.isNotEmpty(orderResponseVo.getSpellGroupCode())
......@@ -1248,25 +1247,25 @@ public class OrderServiceImpl implements Orderservice {
// coco订单不考略是否查询待取餐的订单,直接调用支付有礼活动
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
// if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
}
// }
} catch (Exception e) {
AppLogUtil.errorLog("queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
}
});
}
// coco订单参与支付有礼活动
if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
queryOrderResponseVos.forEach(queryOrderResponseVo -> {
try {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
} catch (Exception e) {
AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
}
});
}
// if (cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
// queryOrderResponseVos.forEach(queryOrderResponseVo -> {
// try {
// joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, null);
//
// } catch (Exception e) {
// AppLogUtil.errorLog("coco_queryOrders_activity_error", gson.toJson(queryOrdersDto), gson.toJson(queryOrderResponseVo), e);
// }
// });
// }
for (QueryOrderResponseVo orderResponseVo : queryOrderResponseVos) {
if (OrderMarketType.GROUPB.getIndex() == orderResponseVo.getMarketingType() && StringUtils.isNotEmpty(orderResponseVo.getSpellGroupCode())
&& orders.get(0).getApportionDetails() != null) {
......@@ -1465,9 +1464,9 @@ public class OrderServiceImpl implements Orderservice {
payGitRequestDto.setVer(payGiftVer);
//coco业务默认传值1
if (cocoPartnerId.contains(partnerId)) {
payGitRequestDto.setVer(1);
}
// if (cocoPartnerId.contains(partnerId)) {
// payGitRequestDto.setVer(1);
// }
//fisherman 【ID1032306】 【订单聚合层】总部和区域活动可同时生效
BaseResponse<PayGiftCheckAndJoinResponseObj> payGiftBaseResponse;
......@@ -1632,9 +1631,10 @@ public class OrderServiceImpl implements Orderservice {
// 支付有礼
// 目前只有coco在订单详情参加支付有礼,且不检查订单的状态
if (cocoPartnerId.contains(partnerId)) {
joinPayGift(sessionId, queryOrderResponseVo, partnerId, null);
} else if (BizTypeEnum.SALE_COUPON.getBizType().equals(orderBean.getBizType())) {
// if (cocoPartnerId.contains(partnerId)) {
// joinPayGift(sessionId, queryOrderResponseVo, partnerId, null);
// } else
if (BizTypeEnum.SALE_COUPON.getBizType().equals(orderBean.getBizType())) {
joinPayGift(sessionId, queryOrderResponseVo, partnerId, payGiftVer);
}
......@@ -1921,44 +1921,44 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单配送中,退款请联系售后!");
}
// todo coco 商户校验
if (cocoPartnerId.contains(orderByIdResponseDto.getData().getCompanyId())) {
// COCO 即时单不可取消
if (NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND);
}
// 4,6 预约单
List<Integer> expectOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(),
NewOrderType.RESERVED_SELF_PICKUP.getCode());
long time = DateUtil.addMinutes(new Date(), 15).getTime();
// 外卖单
List<Integer> takeOrderType = Lists.newArrayList(
NewOrderType.RESERVED_EXPRESS.getCode(),
NewOrderType.GENERAL_EXPRESS.getCode());
long taskCancelOrderTime = DateUtil.addMinutes(new Date(), 30).getTime();
if (takeOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
&& Objects.nonNull(queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime())
&& taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME);
}
if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())) {
if (Objects.nonNull(orderBean.getGmtExpect())
&& time > orderBean.getGmtExpect()) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
}
// todo coco 预约单直接退款
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, true);
if (baseResponse != null) {
return baseResponse;
}
// 删除订单 通知活动添加商品库存
orderQueueService.backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
return ResponseUtil.success();
}
}
// coco 商户校验
// if (cocoPartnerId.contains(orderByIdResponseDto.getData().getCompanyId())) {
// // COCO 即时单不可取消
// if (NewOrderType.GENERAL_SELF_PICKUP.getCode().equals(queryOrderByIdResponse.getData().getNewOrderType())) {
// return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND);
// }
// // 4,6 预约单
// List<Integer> expectOrderType = Lists.newArrayList(
// NewOrderType.RESERVED_EXPRESS.getCode(),
// NewOrderType.RESERVED_SELF_PICKUP.getCode());
// long time = DateUtil.addMinutes(new Date(), 15).getTime();
//
// // 外卖单
// List<Integer> takeOrderType = Lists.newArrayList(
// NewOrderType.RESERVED_EXPRESS.getCode(),
// NewOrderType.GENERAL_EXPRESS.getCode());
// long taskCancelOrderTime = DateUtil.addMinutes(new Date(), 30).getTime();
// if (takeOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())
// && Objects.nonNull(queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime())
// && taskCancelOrderTime > queryOrderByIdResponse.getData().getEstimateDeliveryCompleteTime()) {
// return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_ESTIMATE_TIME);
// }
// if (expectOrderType.contains(queryOrderByIdResponse.getData().getNewOrderType())) {
// if (Objects.nonNull(orderBean.getGmtExpect())
// && time > orderBean.getGmtExpect()) {
// return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR_EXPECT_TIME);
// }
// // todo coco 预约单直接退款
// BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, true);
// if (baseResponse != null) {
// return baseResponse;
// }
// // 删除订单 通知活动添加商品库存
// orderQueueService.backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
// return ResponseUtil.success();
// }
//
// }
// fisherman 预定单前置校验-> bizType=7
if (BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(orderBean.getBizType()) == 0) {
// 预定时间 前一天都可退款
......@@ -3325,23 +3325,24 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(configVo);
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* 支付退款成功,订单未创建售后单
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
private String cancelOrder(OrderBeanV1 orderBean) {
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(),
orderBean.getCompanyId(), AfterSalesType.OTHER, "退款回掉取消订单", LogThreadLocal.getTrackingNo(), null);
cancelOrderRequest.setOperator("退款成功回掉");
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
//退款成功
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
cancelOrderRequest.setReqRemark("");
cancelOrderRequest.setRefundDeliveryAmount(true);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
orderQueueService.backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return newSendPaySuccessNoticeMessage();
}
}
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