Commit 64fffaac by xiaoer.li@freemud.com

混合支付优化调整

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