Commit 32273e9a by zhiheng.zhang

Merge branch 'feature/2020/08/06-1.9.34-劵锁定与解锁-张志恒'

parents ca618c19 268513db
...@@ -24,4 +24,8 @@ public class OrderStatusChangeRequestDto { ...@@ -24,4 +24,8 @@ public class OrderStatusChangeRequestDto {
* 订单状态 * 订单状态
*/ */
private Integer orderStatus; private Integer orderStatus;
/**
* 支付状态
*/
private Integer payStatus;
} }
...@@ -220,19 +220,38 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -220,19 +220,38 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
} }
// 下单成锁定劵,冻结失败提示下单失败并冲正库存积分等 // 下单成锁定劵,冻结失败提示下单失败并冲正库存积分等,判断支付渠道,积分和svc卡直接核销,无需锁定10102 = svc卡支付 || 支付金额小于等于0
CouponLockRequest couponLockRequest = orderSdkAdapter.convert2CouponLockRequest(orderBean, accounts); if((!StringUtils.isEmpty(orderBean.getPayChannel()) && orderBean.getPayChannel().equalsIgnoreCase("10102")) || orderBean.getAmount() <=0){
if (couponLockRequest!=null){ // 核销优惠券,核销失败提示下单失败并冲正库存积分等
BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, ""); CouponRequest couponVerificationRequest = orderSdkAdapter.convert2CouponVerificationRequest(orderBean, accounts);
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponLockResponseBaseResponse.getCode())) { if (couponVerificationRequest!=null){
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null); // 核销券新增参数:组织机构
orderCancel(cancelOrderRequest); couponVerificationRequest.setChannel_codes(this.getOrgIds(orderBean.getCompanyId(), orderBean.getShopId()));
//失败异步冲正库存,取消订单 BaseResponse<CouponRedeemResponse> couponRedeemResponseBaseResponse = offlineCouponSdkService.couponRedeem(couponVerificationRequest, "");
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange()); if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponseBaseResponse.getCode())) {
return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage()); //TODO 失败取消订单,异步冲正库存
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponseBaseResponse.getCode(), "核销券码失败");
}
}
}else{
CouponLockRequest couponLockRequest = orderSdkAdapter.convert2CouponLockRequest(orderBean, accounts);
if (couponLockRequest != null) {
BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, "");
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponLockResponseBaseResponse.getCode())) {
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage());
}
} }
}
}
return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, ""); return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, "");
} }
...@@ -1557,4 +1576,21 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1557,4 +1576,21 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
return minTime; return minTime;
} }
/**
* 查询门店的组织机构
* @param partnerId
* @param storeCode
* @return
*/
private List<String> getOrgIds(String partnerId, String storeCode) {
GetOrgTreeListRequest request = new GetOrgTreeListRequest();
request.setPartnerId(partnerId);
request.setStoreCode(storeCode);
BaseResponse<List<String>> orgList = storeCenterService.getOrgList(request, LogThreadLocal.getTrackingNo());
if (orgList != null && ResponseResult.SUCCESS.getCode().equals(orgList.getCode())) {
return orgList.getData();
}
return null;
}
} }
...@@ -102,7 +102,9 @@ public class CouponActivityServiceImpl implements CouponActivityService { ...@@ -102,7 +102,9 @@ public class CouponActivityServiceImpl implements CouponActivityService {
try { try {
//71.券核销 //71.券核销
for (int i = 2; i >= 0; i--) { for (int i = 2; i >= 0; i--) {
LogUtil.info("核销券码开始==", JSON.toJSONString(couponCodeVerificationDto), null);
CouponCodeResponseDto couponCodeResponseDto = couponOfflineClient.verification(couponCodeVerificationDto); CouponCodeResponseDto couponCodeResponseDto = couponOfflineClient.verification(couponCodeVerificationDto);
LogUtil.info("核销券码返回==", JSON.toJSONString(couponCodeVerificationDto), null);
ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), "/api", couponCodeVerificationDto, couponCodeResponseDto); ThirdPartyLog.infoConvertJson(System.currentTimeMillis(), System.currentTimeMillis(), "/api", couponCodeVerificationDto, couponCodeResponseDto);
if (Objects.equals(couponCodeResponseDto.getStatusCode(), ResponseResult.SUCCESS.getCode())) { if (Objects.equals(couponCodeResponseDto.getStatusCode(), ResponseResult.SUCCESS.getCode())) {
LogUtil.info("CouponReverseServiceImpl", JSON.toJSONString(couponCodeVerificationDto), JSON.toJSONString(couponCodeResponseDto)); LogUtil.info("CouponReverseServiceImpl", JSON.toJSONString(couponCodeVerificationDto), JSON.toJSONString(couponCodeResponseDto));
......
...@@ -394,8 +394,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -394,8 +394,8 @@ public class OrderServiceImpl implements Orderservice {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
//若该订单使用了优惠券,则移除卡包,移除失败也不退款 //若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
couponActivityService.callbackNotify(orderBean); // couponActivityService.callbackNotify(orderBean);
// 订单失败后 发消息重试 待实现 // 订单失败后 发消息重试 待实现
String takeCode; String takeCode;
String daySeq; String daySeq;
...@@ -561,11 +561,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -561,11 +561,9 @@ public class OrderServiceImpl implements Orderservice {
if (jsonObject.containsKey("code")) { if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("code"); Integer code = (Integer) jsonObject.get("code");
if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) { if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) {
try { log.info("调用券码核销=="+newMessage.getTransId());
verificationCoupon(newMessage.getTransId()); verificationCoupon(newMessage.getTransId());
}catch (Exception e){ log.info("调用券码结束=="+newMessage.getTransId());
log.error("核销券码失败transId:"+newMessage.getTransId(),e);
}
return newSendPaySuccessNoticeMessage(); return newSendPaySuccessNoticeMessage();
} else { } else {
return newSendPayFaileMessage(); return newSendPayFaileMessage();
...@@ -1218,7 +1216,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1218,7 +1216,7 @@ public class OrderServiceImpl implements Orderservice {
return baseResponse; return baseResponse;
} }
// 删除订单 通知活动添加商品库存 // 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(),orderBean.getPayStatus());
} else { } else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
...@@ -1248,6 +1246,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1248,6 +1246,8 @@ public class OrderServiceImpl implements Orderservice {
sendApplyRefundSubscriptionNotice(orderBean, orderRefundVo); sendApplyRefundSubscriptionNotice(orderBean, orderRefundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票 //已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, orderRefundVo); printApplyRefundSmallTicket(orderBean, orderRefundVo);
//发送消息,冲正券
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(),orderBean.getPayStatus());
} }
} }
return ResponseUtil.success(); return ResponseUtil.success();
...@@ -1330,6 +1330,25 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1330,6 +1330,25 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
public void backOrdersStatusChange(String oid, Integer orderStatus,Integer payStatus) {
if (StringUtils.isEmpty(oid)) {
return;
}
ApiLog.info("backOrdersStatusChange", oid, String.valueOf(orderStatus));
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(oid);
requestDto.setPayStatus(payStatus);
requestDto.setOrderStatus(orderStatus);
try {
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", oid, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
} catch (Exception e) {
LogUtil.error("ActivityReverse", JSON.toJSONString(requestDto), "", e);
}
}
/** /**
* 发MQ去打印 * 发MQ去打印
* *
......
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