Commit 06a9591e by xiaoer.li@freemud.com

override failPrePay

parent d0d5e9df
......@@ -604,12 +604,27 @@ public class OrderAdapter {
createOrderDto.setLongitude(longitude);
createOrderDto.setOrderType(convent2OrderTypeEnum(orderType));
createOrderDto.setPayType(QueryPayType.ONLINE_PAY);
//电子风味卡
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
createOrderDto.setPayChannel(PayChannel.USVCP.getCode());
createOrderDto.setPayChannelName(PayChannel.USVCP.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
createOrderDto.setPayChannel("10102");
createOrderDto.setPayChannelName("储值卡支付");
createOrderDto.setPayChannel(PayChannelType.USVCP.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.USVCP.getName());
}
//混合支付
else if (PayChannelType.COMB.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.COMB.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.COMB.getName());
}
else if (PayChannelType.WECHAT.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.WECHAT.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.WECHAT.getName());
}
else if (PayChannelType.ALIPAY.getIndex().equals(createOrderVo.getPayChannelType())) {
createOrderDto.setPayChannel(PayChannelType.ALIPAY.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.ALIPAY.getName());
}
else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
createOrderDto.setPayChannel(PayChannelType.SVC.getEbcode());
createOrderDto.setPayChannelName(PayChannelType.SVC.getName());
}
createOrderDto.setSource(OrderSourceType.SAAS.getCode());
createOrderDto.setSourceName(OrderSourceType.SAAS.getDesc());
......
......@@ -54,12 +54,14 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import lombok.extern.log4j.Log4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import sun.rmi.runtime.Log;
import java.awt.geom.Point2D;
import java.math.BigDecimal;
......@@ -69,6 +71,7 @@ import java.util.*;
import java.util.stream.Collectors;
@Component
@Log4j
public class CheckOrder {
// 配送费逻辑是否使用旧的
......@@ -759,10 +762,13 @@ public class CheckOrder {
if (StringUtils.isBlank(createOrderVo.getCardCode())) {
return false;
}
//这么不合规的粗暴搞法 设置支付方式
PayChannelType payType = PayChannelType.getByIndex(Byte.parseByte(createOrderVo.getChannel()));
createOrderVo.setPayChannelType(payType.getIndex());
SVCCardAmountRequest request = new SVCCardAmountRequest();
request.setPartnerId(createOrderVo.getPartnerId());
request.setCardCodes(Arrays.asList(createOrderVo.getCardCode()));
BaseResponse<SVCCardAmountResponse> svcCardAmount = paymentNewService.querySVCCardAmount(request, trackingNo);
if (svcCardAmount==null || svcCardAmount.getData()==null ||!ResponseResult.SUCCESS.getCode().equals(svcCardAmount.getCode())) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
......
......@@ -2414,6 +2414,31 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(), ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getMessage(), null);
}
/**
* 混合预支付
* @param trackingNo
* @param orderBean
* @param cardCode
* @param orderClient
* @param msg
* @return
*/
private BaseResponse failCombPreOrderPay(String trackingNo, QueryOrdersResponse.DataBean.OrderBean orderBean, String cardCode, OrderClientType orderClient, String msg) {
List<OrderClientType> notCancelOrderClientList = Lists.newArrayList(OrderClientType.APP);
if(!notCancelOrderClientList.contains(orderClient)) {
//失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, StringUtils.join(new String[]{"获取预支付失败", msg}, '-'), trackingNo, null);
orderCenterSdkService.orderCancel(cancelOrderRequest);
// TODO: 2019/9/10 hubowen mq推送变更
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
}
//svc 卡支付失败
//if (StringUtils.isNotBlank(cardCode)) {
// return ResponseUtil.error(ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getCode(), ResponseResultEnum.PAY_BACKEND_CONFIG_ERROR.getMessage(), null);
//}
return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(),"获取混合预支付信息失败", null);
}
public OrderPayResponse getPreOrderPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime) {
OrderPayResponse orderPayResponse;
try {
......@@ -2459,6 +2484,7 @@ public class OrderServiceImpl implements Orderservice {
svcRequest.setPartnerId(partnerId);
svcRequest.setCardCodes(Arrays.asList(cardCode));
//查询svc卡余额
log.info("svc支付:{}",transId);
com.freemud.application.sdk.api.base.BaseResponse<SVCCardAmountResponse> svcCardAmountResponseBaseResponse = paymentNewService.querySVCCardAmount(svcRequest, trackingNo);
if (svcCardAmountResponseBaseResponse == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(svcCardAmountResponseBaseResponse.getCode())
|| svcCardAmountResponseBaseResponse.getData().getData() == null || CollectionUtils.isEmpty(svcCardAmountResponseBaseResponse.getData().getData().getCardSimpleInfos())) {
......@@ -3149,7 +3175,8 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse = comPayOrder(paymentRequest,createPrepayRequestDto,partnerPayOvertime,LogThreadLocal.getTrackingNo());
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
return failPreOrderPay(LogThreadLocal.getTrackingNo()
log.info("混合支付返回:{}",JSON.toJSONString(orderPayResponse));
return failCombPreOrderPay(LogThreadLocal.getTrackingNo()
, createPrepayRequestDto.getProductOrderBean()
, cardCode
, createPrepayRequestDto.getOrderClient()
......@@ -3203,6 +3230,7 @@ public class OrderServiceImpl implements Orderservice {
CombPayResponse responseBase = null;
CombPayRequest combPayRequest = null;
CombPayResponse.PayPlatform payPlatform = null;
log.info("混合支付...");
try {
String orderClient = this.getPayCodeByChanel(createPrepayRequestDto);
if (StringUtils.isBlank(orderClient)) {
......@@ -3218,6 +3246,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setMsg(responseBase.getMsg());
}
else {
log.info("混合支付请求request:{},response:{}",JSON.toJSONString(combPayRequest),JSON.toJSONString(responseBase));
/**
* 生成预支付参数
*/
......@@ -3249,6 +3278,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
catch (Exception e) {
log.info("混合支付异常...");
//TODO 邮件告警
LogUtil.error("comPay_error", JSONObject.toJSONString(responseBase), JSONObject.toJSONString(paymentRequest), e);
orderPayResponse = new OrderPayResponse();
......
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