Commit 931e5ec2 by 查志伟

Merge branch '20210928-美团POS支持-zhiwei.zha' into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents b96aaa5b fe0dd4a5
......@@ -8,13 +8,13 @@ import java.util.List;
* 聚合查询返回
*/
@Data
public class MultiQueryRespDto<T> {
public class MultiQueryRespDto {
private int code;
private String msg;
private T data;
private Data data;
@lombok.Data
public class Data {
......
......@@ -27,14 +27,7 @@ import cn.freemud.entities.dto.delivery.*;
import cn.freemud.entities.dto.ecology.SendMessageRequest;
import cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest;
import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.pay.InvoiceCreateRequest;
import cn.freemud.entities.dto.pay.OrderInvoiceRequest;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.InvoiceCreateResponse;
import cn.freemud.entities.dto.order.InvoiceCreateResponseVo;
import cn.freemud.entities.dto.pay.InvoiceCreateRequest;
import cn.freemud.entities.dto.pay.OrderInvoiceRequest;
import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.product.AttributeValue;
import cn.freemud.entities.dto.product.GroupDetail;
import cn.freemud.entities.dto.product.ProductAttributeGroup;
......@@ -54,7 +47,6 @@ import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import cn.freemud.management.service.handle.ActivityHandle;
import cn.freemud.manager.BuyProductOnceManager;
import cn.freemud.manager.OrderManager;
import cn.freemud.manager.OrderTackCodeManager;
import cn.freemud.manager.SpellGroupOrderDataManager;
......@@ -72,19 +64,11 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxappAuthorizer;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxappAuthorizer;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
import com.freemud.application.sdk.api.constant.ResponseConstant;
......@@ -92,21 +76,16 @@ import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey;
import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequestVo;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum;
import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.OrderCountResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
......@@ -121,7 +100,6 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest;
import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.constant.OrderRedisKeyConstant;
import com.freemud.sdk.api.assortment.order.entities.OrderRefundConfigEntity;
import com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime;
......@@ -244,6 +222,8 @@ public class OrderServiceImpl implements Orderservice {
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
@Autowired
private ComPayClient comPayClient;
@Autowired
private AssortmentOpenPlatformPartnerConfigManager openPlatformPartnerConfigManager;
@Autowired
......@@ -414,7 +394,38 @@ public class OrderServiceImpl implements Orderservice {
}
//若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
// couponActivityService.callbackNotify(orderBean);
// 订单失败后 发消息重试 待实现
try {
//美团POS需求,混合支付(现金+储值卡)时,储值卡的交易流水号在预支付时是没有的,导致订单里没有储值卡的流水号,这里查一下支付信息,将储值卡的流水号信息更新到订单信息里
List<OrderPayItemResp> payItem = orderBean.getOrderPayItem();
if (CollectionUtils.isNotEmpty(payItem) && payItem.size() > 1) {
MultiQueryRequest queryPay = new MultiQueryRequest();
queryPay.setPartnerId(Integer.valueOf(partnerId));
queryPay.setStoreId(storeId);
queryPay.setOutOrderNo(message.getOut_trade_no());
MultiQueryRespDto payResponse = comPayClient.paymentApplicationQuery(queryPay, Integer.valueOf(partnerId));
if (null != payResponse && null != payResponse.getData() && CollectionUtils.isNotEmpty(payResponse.getData().getQueryList())) {
List<MultiPaymentRespDto> payList = payResponse.getData().getQueryList();
// 和订单里的匹配
payList.forEach(pay -> {
payItem.forEach(item -> {
if (item.getTransId().equals(pay.getTransId())) {
item.setFmTradeNo(pay.getFmTradeNo());
item.setOutOrderNo(pay.getOutOrderNo());
}
});
});
// 更新订单信息
OrderEditRequest editReq = new OrderEditRequest(orderBean.getOid(), orderBean.getExtInfo());
editReq.setPayChannel(PayChannelType.COMB.getEbcode());
editReq.setPayChannelName(PayChannelType.COMB.getName());
editReq.setPayChannelType(PayChannelType.COMB.getIndex());
editReq.setOrderPayItem(payItem);
orderCenterSdkService.orderEdit(editReq);
}
}
} catch (Exception ignored) {} //这个异常catch住,不影响业务流程
String takeCode;
String daySeq;
PayAccessResponse payAccessResponse;
......
......@@ -42,6 +42,6 @@ public interface ComPayClient {
*/
@LogIgnoreFeign(logMessage="paymentApplicationQuery",messageFieldName= ResponseCodeKeyConstant.MSG)
@PostMapping("/payment/application/query")
MultiQueryRespDto<MultiQueryRespDto.Data> paymentApplicationQuery(MultiQueryRequest multiQueryRequest, @RequestHeader("partnerId") Integer partnerId);
MultiQueryRespDto paymentApplicationQuery(MultiQueryRequest multiQueryRequest, @RequestHeader("partnerId") Integer partnerId);
}
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