Commit 310d461d by 查志伟

抖音卖券,支付成功回调支持

parent 5a792656
...@@ -18,7 +18,7 @@ public class SendCouponService { ...@@ -18,7 +18,7 @@ public class SendCouponService {
private MQService mqService; private MQService mqService;
public void sendCouponMq(OrderInfoReqs request) { public void sendCouponMq(OrderInfoReqs request) {
AppLogUtil.infoLog("sendCouponMq", JSONObject.toJSONString(request.getOrderCode()), null); AppLogUtil.infoLog("sendCouponMq", JSONObject.toJSONString(request), null);
Header header = new Header(MQAction.INSERT.getAction(), "order-application-service", "1", DlSendCouponMqConfig.QUEUE_NAME); Header header = new Header(MQAction.INSERT.getAction(), "order-application-service", "1", DlSendCouponMqConfig.QUEUE_NAME);
MQMessage<OrderInfoReqs> message = new MQMessage<>(header, request); MQMessage<OrderInfoReqs> message = new MQMessage<>(header, request);
mqService.convertAndSend(DlSendCouponMqConfig.EXCHANGE_NAME, DlSendCouponMqConfig.QUEUE_ROUTING_KEY, message); mqService.convertAndSend(DlSendCouponMqConfig.EXCHANGE_NAME, DlSendCouponMqConfig.QUEUE_ROUTING_KEY, message);
......
...@@ -341,6 +341,10 @@ public class OrderAdapterServiceImpl { ...@@ -341,6 +341,10 @@ public class OrderAdapterServiceImpl {
if (OrderSourceType.I_MEMBER.getCode().equals(orderBean.getSource()) && orderBean.getBizType() == 4) { if (OrderSourceType.I_MEMBER.getCode().equals(orderBean.getSource()) && orderBean.getBizType() == 4) {
return pointsMallOrderService.paySuccessCallback(message,orderBeans); return pointsMallOrderService.paySuccessCallback(message,orderBeans);
} }
//抖音卖券处理
if (OrderSourceType.TIKTOKPAY.getCode().equals(orderBean.getSource())) {
return sellCouponOrderService.paySuccessCallbackForTiktok(message, confirmOrderDto, orderBeans);
}
/** /**
* app订单处理 * app订单处理
*/ */
......
...@@ -2,6 +2,7 @@ package cn.freemud.service.impl; ...@@ -2,6 +2,7 @@ package cn.freemud.service.impl;
import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter; import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
import cn.freemud.adapter.OrderAdapter; import cn.freemud.adapter.OrderAdapter;
import cn.freemud.amp.service.SendCouponService;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonRedisKeyConstant; import cn.freemud.constant.CommonRedisKeyConstant;
...@@ -36,16 +37,13 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; ...@@ -36,16 +37,13 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO; import com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO;
import com.freemud.application.sdk.api.couponcenter.online.domain.AppKeyVO; import com.freemud.application.sdk.api.couponcenter.online.domain.AppKeyVO;
import com.freemud.application.sdk.api.couponcenter.online.domain.DetailVO;
import com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest; import com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest;
import com.freemud.application.sdk.api.couponcenter.online.request.CouponDetailRequest;
import com.freemud.application.sdk.api.couponcenter.online.request.PartnerRequest; import com.freemud.application.sdk.api.couponcenter.online.request.PartnerRequest;
import com.freemud.application.sdk.api.couponcenter.online.response.CouponDetailResponse;
import com.freemud.application.sdk.api.couponcenter.online.service.FMActiveSdkService; import com.freemud.application.sdk.api.couponcenter.online.service.FMActiveSdkService;
import com.freemud.application.sdk.api.couponcenter.online.service.OnlineCouponSdkService;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ThirdPartyLog; import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType; import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq; import com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq;
...@@ -54,11 +52,9 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq ...@@ -54,11 +52,9 @@ import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderReq
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductInfoRequest; import com.freemud.application.sdk.api.productcenter.request.product.GetProductInfoRequest;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse; import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse;
...@@ -88,7 +84,6 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -88,7 +84,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -129,8 +124,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -129,8 +124,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
private OrderSdkAdapter orderSdkAdapter; private OrderSdkAdapter orderSdkAdapter;
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
// @Autowired @Autowired
// protected RedisTemplate redisTemplate; private SendCouponService sendCouponService;
@Autowired @Autowired
private CouponService couponService; private CouponService couponService;
@Autowired @Autowired
...@@ -173,7 +168,11 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -173,7 +168,11 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
*/ */
@Override @Override
public BaseResponse createOrder(CreateOrderVo requestVo) { public BaseResponse createOrder(CreateOrderVo requestVo) {
// 查询用户信息、校验svc卡 if (StringUtils.isEmpty(requestVo.getSaleCouponPhone())) {
// 买券手机号必填,否则无法发券
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "请填写手机号");
}
// 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId()); AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId());
String trackingNo = LogThreadLocal.getTrackingNo(); String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId(); String partnerId = userLoginInfoDto.getPartnerId();
...@@ -937,43 +936,6 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -937,43 +936,6 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
} }
/**
* 查询券详情
*
* @param partnerId
* @param codes
* @param trackingNo
* @return
*/
private List<DetailVO> getCouponsDetail(String partnerId, String storeId, List<String> codes, String trackingNo) {
String appKey = getAppKey(partnerId, trackingNo);
if (StringUtils.isEmpty(appKey)) {
return null;
}
CouponDetailRequest couponDetailRequest = new CouponDetailRequest();
couponDetailRequest.setCodes(codes);
couponDetailRequest.setMerchantId(partnerId);
couponDetailRequest.setPartnerId(partnerId);
// 券码新增参数:组织机构
couponDetailRequest.setChannelIdList(this.getOrgIds(partnerId, storeId));
OnlineCouponSdkService onlineCouponSdkService = SDKCommonBaseContextWare.getBean(OnlineCouponSdkService.class);
com.freemud.application.sdk.api.base.BaseResponse<CouponDetailResponse> couponDetailResponse = onlineCouponSdkService.allDetail(couponDetailRequest, appKey, trackingNo);
if (couponDetailResponse == null || !SUCCESS.equals(couponDetailResponse.getCode()) || couponDetailResponse.getData() == null || CollectionUtils.isEmpty(couponDetailResponse.getData().getDetails())) {
return null;
}
return couponDetailResponse.getData().getDetails();
}
private Long pointToFen(double price) {
DecimalFormat df = new DecimalFormat("#.00");
price = Double.valueOf(df.format(price));
long money = (long) (price * 100);
return money;
}
/** /**
* 查询促销优惠,赋值订单金额,商品优惠后金额,优惠记录 * 查询促销优惠,赋值订单金额,商品优惠后金额,优惠记录
*/ */
...@@ -1035,5 +997,34 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -1035,5 +997,34 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
return null; return null;
} }
/**
* 抖音卖券支付成功回调
* 走自己的发券mq,支持失败补偿
* @param orderBeans
* @return
*/
public String paySuccessCallbackForTiktok(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans) {
String result = this.paySuccessCallback(message, confirmOrderDto, orderBeans);
OrderBeanV1 orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
OrderInfoReqs orderInfo = new OrderInfoReqs();
orderInfo.setOrderCode(orderBean.getOid());
orderInfo.setPartnerId(orderBean.getCompanyId());
orderInfo.setAppId(orderBean.getAppId());
orderInfo.setBizType(orderBean.getBizType());
// 拓展字段中有卖券手机号
orderInfo.setExtInfo(orderBean.getExtInfo());
// 支付渠道,用于识别抖音卖的订单
orderInfo.setPayChannelType(orderBean.getPayChannelType());
List<OrderItemResp> orderItemList = new ArrayList<>();
for (ProductBeanV1 productBean : orderBean.getProductList()) {
OrderItemResp orderItemResp = new OrderItemResp();
// 这里存的是虚拟商品信息
orderItemResp.setExtInfo(productBean.getExtInfo());
orderItemList.add(orderItemResp);
}
orderInfo.setOrderItemList(orderItemList);
//发券mq
sendCouponService.sendCouponMq(orderInfo);
return result;
}
} }
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