Commit 64fffaac by xiaoer.li@freemud.com

混合支付优化调整

parent 40e93653
......@@ -28,8 +28,8 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.PreviewOrderInfoVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.*;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.OrderSourceType;
import cn.freemud.enums.OrderType;
......@@ -3584,11 +3584,11 @@ public class OrderAdapter {
payItem.setTransId(pt.getTransId());
payItem.setPartnerId(partnerId);
if (PayChannelType.SVC.getEbcode().equals(pt.getEbCode())) {
payItem.setPayAmount(new BigDecimal(pt.getPayAccount()));
payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
responseDto.setPayMode(PayChannelType.SVC.getEbcode());
}
else if (PayChannelType.WECHAT.getEbcode().equals(pt.getEbCode()) || PayChannelType.ALIPAY.getEbcode().equals(pt.getEbCode())){
payItem.setPayAmount(new BigDecimal(pt.getPayAccount()));
payItem.setPayAmount(new BigDecimal(pt.getPayAmount()));
responseDto.setPayMode(PayChannelType.getByEbcode(pt.getEbCode()).getEbcode());
}
responseDto.getPayItem().add(payItem);
......
......@@ -51,12 +51,12 @@ public class CombPayResponse {
@ApiModelProperty(value = "外部交易流水号,由上游系统生成,需保证唯一")
private String outOrderNo;
@ApiModelProperty(value = "支付帐号")
private String payAccount;
@ApiModelProperty(value = "第三方支付交易序号")
private String platformTradeNo;
@ApiModelProperty(value = "支付金额")
private Integer payAmount;
@ApiModelProperty(value = "间联单号")
private String transId;
@ApiModelProperty(value = "")
......
......@@ -2682,7 +2682,7 @@ public class OrderServiceImpl implements Orderservice {
orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex());
}
//混合支付项
if (CollectionUtils.isNotEmpty(orderPayResponse.getPayItem())) {
if (CollectionUtils.isNotEmpty(orderPayResponse.getPayItem()) && orderPayResponse.getPayMode().equals(PayChannelType.COMB.getEbcode())) {
orderEditRequest.setOrderPayItem(orderPayResponse.getPayItem());
orderEditRequest.setPayChannel(PayChannelType.COMB.getEbcode());
orderEditRequest.setPayChannelName(PayChannelType.COMB.getName());
......@@ -3194,8 +3194,6 @@ public class OrderServiceImpl implements Orderservice {
* @param paymentRequest
* @param partnerPayOvertime
* @param totalAmount
* @param svcAmount
* @param svcVAmount
* @param channel
* @param storeId
* @param trackingNo
......@@ -3224,7 +3222,7 @@ public class OrderServiceImpl implements Orderservice {
do {
try {
combPayResponse = comPayClient.combPay(combPayRequest, combPayRequest.getPartner_id());
if (ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) {
if (combPayResponse!=null) {
break;
}
} catch (Exception exception) {}
......@@ -3238,27 +3236,49 @@ public class OrderServiceImpl implements Orderservice {
}
Integer svcAmount = 0;
Integer svcVAmount = 0;
List<CombPayResponse.PayPlatform> payPlatforms = combPayResponse.getData().getPayPlatformResponseList();
if(payPlatforms.size()==0) {
orderPayResponse.setMsg("混合支付:生成预支付失败");
return orderPayResponse;
}
//生成预支付参数
CombPayResponse.PayPlatform payPlatform = combPayResponse.getData().getPayPlatformResponseList()
CombPayResponse.PayPlatform cashPay = payPlatforms
.stream()
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null);
if(payPlatform==null) {
orderPayResponse.setMsg("混合支付:生成预支付失败");
//现金+svc 现金
if (payPlatforms.size()==2 || payPlatforms.size()==1 && cashPay!=null) {
orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(),orderBean.getCompanyId(),storeId);
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(orderPayResponse.getPayMode());
//隐射关系
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
//加入轮训队列
putDelMq(orderBean.getCompanyId(),storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
return orderPayResponse;
}
orderPayResponse = orderAdapter.convent2OrderCombPayResponse(combPayResponse.getData().getPayPlatformResponseList(),orderBean.getCompanyId(),storeId);
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(PayChannelType.COMB.getEbcode());
//隐射关系
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(payPlatform.getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
//加入轮训队列
putDelMq(orderBean.getCompanyId(),storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(payPlatform.getEbCode()).getIndex().intValue());
return orderPayResponse;
//单svc
else{
CombPayResponse.PayPlatform svcPay = payPlatforms
.stream()
.filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null);
orderPayResponse.setFmId(orderPayResponse.getFmId());
orderPayResponse.setPayTransId(svcPay.getTransId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(PayChannelType.SVC.getEbcode());
}
return 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