Commit 3b6ca1ff by vega

Merge branch 'feature/1.9.37-核销券码逻辑修改' into develop

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
parents f11d1ae4 343e87e6
......@@ -181,6 +181,9 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message) {
if (StringUtils.isEmpty(message.getTrans_id())){
return orderAdapter.newSendPayFaileMessage();
}
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if(!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)){
......@@ -203,19 +206,19 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
return orderAdapter.sendPaySuccessNoticeMessage();
}
/**
/*
* 围餐处理
*/
if ("meals".equals(orderBean.getSource())) {
return orderCommonService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
/*
* 微商城处理
*/
if(OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
return mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
/*
* app订单处理
*/
if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
......@@ -229,7 +232,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if(mcCafePartnerId.equals(orderBean.getOid())) {
return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
/*
* 默认点餐处理
*/
return orderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
......
......@@ -69,8 +69,6 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryInfoDto;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
......@@ -97,7 +95,6 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmou
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.request.vo.GetOrgTreeListRequest;
import com.freemud.application.sdk.api.storecenter.response.GetListByCodesResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
......@@ -151,7 +148,6 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR;
@Service
@Slf4j
......@@ -405,6 +401,13 @@ public class OrderServiceImpl implements Orderservice {
}
//若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
// couponActivityService.callbackNotify(orderBean);
// 核销券码成功才能支付成功
BaseResponse baseResponse = verificationCoupon(message.getTrans_id());
if (!Objects.equals(ResponseResult.SUCCESS.getCode(), baseResponse.getCode())) {
// 核销失败
log.error("核销券码失败transId:{},message:{}", message.getTrans_id(), baseResponse.getMessage());
return newSendPayFaileMessage();
}
// 订单失败后 发消息重试 待实现
String takeCode;
String daySeq;
......@@ -562,29 +565,16 @@ public class OrderServiceImpl implements Orderservice {
message.setTotal_fee(newMessage.getTotalAmount() == null ? 0 : newMessage.getTotalAmount());
message.setOpenid(StringUtils.isBlank(newMessage.getOpenId()) ? "" : newMessage.getOpenId());
message.setPlatform_coupon(newMessage.getPlatformCoupon() == null ? 0 : newMessage.getPlatformCoupon());
message.setMerchant_coupon(newMessage.getPlatformCoupon() == null ? 0 : newMessage.getPlatformCoupon());
message.setMerchant_coupon(newMessage.getMerchantCoupon() == null ? 0 : newMessage.getMerchantCoupon());
message.setPaid_no(newMessage.getThirdPartTradeNo());
message.setEndTransId(newMessage.getEndTransId());
message.setPlatformMchId(newMessage.getPlatformMchId());
message.setTerminalId(newMessage.getAppId());
message.setRuleId(newMessage.getRuleId());
String res = orderAdapterService.paySuccessCallback(message);
JSONObject jsonObject = JSONObject.parseObject(res);
if (jsonObject.containsKey("code")) {
Integer code = (Integer) jsonObject.get("code");
if (Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_0, code) || Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, code)) {
log.info("调用券码核销=="+newMessage.getTransId());
verificationCoupon(newMessage.getTransId());
log.info("调用券码结束=="+newMessage.getTransId());
return newSendPaySuccessNoticeMessage();
} else {
return newSendPayFaileMessage();
}
}
return newSendPayFaileMessage();
return orderAdapterService.paySuccessCallback(message);
}
private String verificationCoupon(String transId){
private BaseResponse verificationCoupon(String transId){
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(transId));
if (StringUtils.isNotBlank(orderId)) {
log.info("从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}", LogTreadLocal.getTrackingNo(),transId, orderId);
......@@ -592,7 +582,7 @@ public class OrderServiceImpl implements Orderservice {
}
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(transId);
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
return refundFaileMessage("order query fail" + queryOrderByIdResponseDto);
return ResponseUtil.error(String.valueOf(queryOrderByIdResponseDto.getErrcode()), queryOrderByIdResponseDto.getErrmsg());
}
OrderBean orderBean = new OrderBean();
if (1 == queryOrderByIdResponseDto.getData().size()) {
......@@ -604,8 +594,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
//核销券
BaseResponse baseResponse = couponActivityService.verificationCoupon(orderBean,CouponReqType.WRITEOFF);
return "核销券码返回结果" + baseResponse.getCode() + "," + baseResponse.getMessage();
return couponActivityService.verificationCoupon(orderBean,CouponReqType.WRITEOFF);
}
@Override
......
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