Commit fefafea3 by xiaoer.li@freemud.com

Merge remote-tracking branch 'remotes/origin/feature/2020-1104-混合支付' into develop

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents c2350679 308b1011
...@@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor; ...@@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor;
@EnableSwagger2 @EnableSwagger2
@EnableCircuitBreaker @EnableCircuitBreaker
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient //@EnableDiscoveryClient
@EnableAspectJAutoProxy @EnableAspectJAutoProxy
@ComponentScan({"cn.freemud", "com.freemud"}) @ComponentScan({"cn.freemud", "com.freemud"})
@MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager", @MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager",
......
...@@ -3782,7 +3782,6 @@ public class OrderAdapter { ...@@ -3782,7 +3782,6 @@ public class OrderAdapter {
orderPayDto.setBody(paymentRequest.getPrincipalName()); orderPayDto.setBody(paymentRequest.getPrincipalName());
orderPayDto.setNotify_url(paymentRequest.getReverseNotifyiDcUrl()); orderPayDto.setNotify_url(paymentRequest.getReverseNotifyiDcUrl());
orderPayDto.setStore_id(createPrepayRequestDto.getStoreId()); orderPayDto.setStore_id(createPrepayRequestDto.getStoreId());
//orderPayDto.setStore_id("999999998");
orderPayDto.setOpen_id(paymentRequest.getOpenId()); orderPayDto.setOpen_id(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd"); String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusiness_date(businessDate); orderPayDto.setBusiness_date(businessDate);
...@@ -3790,6 +3789,7 @@ public class OrderAdapter { ...@@ -3790,6 +3789,7 @@ public class OrderAdapter {
orderPayDto.setVip_amount(0L); orderPayDto.setVip_amount(0L);
orderPayDto.setAppId(paymentRequest.getWxAppId()); orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode()); orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setVer("V1");
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30")); orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>(); List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(createPrepayRequestDto.getFatherOrderBean().getProductList())) { if (CollectionUtils.isNotEmpty(createPrepayRequestDto.getFatherOrderBean().getProductList())) {
......
...@@ -210,7 +210,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -210,7 +210,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
} }
try { try {
ConfirmOrderDto confirmOrderDto = orderAdapter.convent2ConfirmOrderDto(message); ConfirmOrderDto confirmOrderDto = orderAdapter.convent2ConfirmOrderDto(message);
// 蜜雪专用:通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值 // 蜜雪+混合支付专用:通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(confirmOrderDto.getOrderId())); String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(confirmOrderDto.getOrderId()));
if (StringUtils.isNotBlank(orderId)) { if (StringUtils.isNotBlank(orderId)) {
log.info("从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}", LogTreadLocal.getTrackingNo(), confirmOrderDto.getOrderId(), orderId); log.info("从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}", LogTreadLocal.getTrackingNo(), confirmOrderDto.getOrderId(), orderId);
......
...@@ -156,6 +156,7 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND; ...@@ -156,6 +156,7 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
public class OrderServiceImpl implements Orderservice { public class OrderServiceImpl implements Orderservice {
private final Integer RESPONSE_SUCCESS_CODE = 100; private final Integer RESPONSE_SUCCESS_CODE = 100;
private static Gson gson = new Gson(); private static Gson gson = new Gson();
@Value("${saas.reverseNotifyiDcUrl}") @Value("${saas.reverseNotifyiDcUrl}")
...@@ -324,7 +325,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -324,7 +325,8 @@ public class OrderServiceImpl implements Orderservice {
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo); ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件 // 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo); Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo); OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
boolean svcPay = checkOrder.checkSvcPay(createOrderVo, shoppingCartGoodsDto, trackingNo); boolean svcPay = checkOrder.checkSvcPay(createOrderVo, shoppingCartGoodsDto, trackingNo);
//1.9.2套餐需求同步优化创建订单代码 //1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto); BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
...@@ -359,7 +361,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -359,7 +361,7 @@ public class OrderServiceImpl implements Orderservice {
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo); Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存 //1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto); //List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo); OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//下单并支付 //下单并支付
return this.createOrderAndPay(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo); return this.createOrderAndPay(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo);
} }
...@@ -614,7 +616,20 @@ public class OrderServiceImpl implements Orderservice { ...@@ -614,7 +616,20 @@ public class OrderServiceImpl implements Orderservice {
message.setPlatformMchId(newMessage.getPlatformMchId()); message.setPlatformMchId(newMessage.getPlatformMchId());
message.setTerminalId(newMessage.getAppId()); message.setTerminalId(newMessage.getAppId());
message.setRuleId(newMessage.getRuleId()); message.setRuleId(newMessage.getRuleId());
return orderAdapterService.paySuccessCallback(message); 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();
} }
private BaseResponse verificationCoupon(String transId){ private BaseResponse verificationCoupon(String transId){
...@@ -1681,7 +1696,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1681,7 +1696,6 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest.setOperator(orderBean.getUserName()); cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo()); cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee); cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
// cancelOrderRequest.setAfterSalesReason(orderRefundVo.getReason());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest); BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) { if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
...@@ -1733,7 +1747,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1733,7 +1747,6 @@ public class OrderServiceImpl implements Orderservice {
} }
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks()); cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee); cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
// cancelOrderRequest.setAfterSalesReason(orderRefundVo.getReason());
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest); BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) { if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
...@@ -3218,9 +3231,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3218,9 +3231,8 @@ public class OrderServiceImpl implements Orderservice {
OrderPayResponse orderPayResponse = null; OrderPayResponse orderPayResponse = null;
CombPayResponse responseBase = null; CombPayResponse responseBase = null;
CombPayRequest combPayRequest = null; CombPayRequest combPayRequest = null;
CombPayResponse.PayPlatform payPlatform = null;
try { try {
String orderClient = this.getPayCodeByChanel(createPrepayRequestDto); String orderClient = this.getPayCodeByChanel(createPrepayRequestDto);
if (StringUtils.isBlank(orderClient)) { if (StringUtils.isBlank(orderClient)) {
orderPayResponse = new OrderPayResponse(); orderPayResponse = new OrderPayResponse();
...@@ -3238,7 +3250,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3238,7 +3250,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 生成预支付参数 * 生成预支付参数
*/ */
CombPayResponse.PayPlatform payPlatform = responseBase.getData().getPayPlatformResponseList() payPlatform = responseBase.getData().getPayPlatformResponseList()
.stream() .stream()
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst() .filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null); .orElse(null);
...@@ -3253,14 +3265,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3253,14 +3265,14 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setPartnerId(createPrepayRequestDto.getPartnerId()); orderPayResponse.setPartnerId(createPrepayRequestDto.getPartnerId());
orderPayResponse.setOrderId(createPrepayRequestDto.getTransId()); orderPayResponse.setOrderId(createPrepayRequestDto.getTransId());
/** //隐射关系
* 加入轮训队列 redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(createPrepayRequestDto.getTransId()),payPlatform.getTransId(),1L,TimeUnit.DAYS);
*/ //加入轮训队列
//putDelMq(createPrepayRequestDto.getPartnerId() putDelMq(createPrepayRequestDto.getPartnerId()
// , createPrepayRequestDto.getStoreId() , createPrepayRequestDto.getStoreId()
// , orderPayResponse.getFmId() , orderPayResponse.getFmId()
// ,createPrepayRequestDto.getTransId() , createPrepayRequestDto.getTransId()
// , PayChannelType.getByEbcode(payPlatform.getEbCode()).getIndex().intValue()); , PayChannelType.getByEbcode(payPlatform.getEbCode()).getIndex().intValue());
} }
} }
......
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