Commit 310d461d by 查志伟

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

parent 5a792656
......@@ -18,7 +18,7 @@ public class SendCouponService {
private MQService mqService;
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);
MQMessage<OrderInfoReqs> message = new MQMessage<>(header, request);
mqService.convertAndSend(DlSendCouponMqConfig.EXCHANGE_NAME, DlSendCouponMqConfig.QUEUE_ROUTING_KEY, message);
......
......@@ -341,6 +341,10 @@ public class OrderAdapterServiceImpl {
if (OrderSourceType.I_MEMBER.getCode().equals(orderBean.getSource()) && orderBean.getBizType() == 4) {
return pointsMallOrderService.paySuccessCallback(message,orderBeans);
}
//抖音卖券处理
if (OrderSourceType.TIKTOKPAY.getCode().equals(orderBean.getSource())) {
return sellCouponOrderService.paySuccessCallbackForTiktok(message, confirmOrderDto, orderBeans);
}
/**
* app订单处理
*/
......
......@@ -2,6 +2,7 @@ package cn.freemud.service.impl;
import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
import cn.freemud.adapter.OrderAdapter;
import cn.freemud.amp.service.SendCouponService;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonRedisKeyConstant;
......@@ -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.couponcenter.online.domain.ActiveDetailVO;
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.CouponDetailRequest;
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.OnlineCouponSdkService;
import com.freemud.application.sdk.api.log.LogThreadLocal;
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.ProductBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq;
......@@ -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.OrderItemCreateReq;
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.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.productcenter.request.product.GetProductInfoRequest;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse;
......@@ -88,7 +84,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -129,8 +124,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private RedisCache redisCache;
// @Autowired
// protected RedisTemplate redisTemplate;
@Autowired
private SendCouponService sendCouponService;
@Autowired
private CouponService couponService;
@Autowired
......@@ -173,7 +168,11 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
*/
@Override
public BaseResponse createOrder(CreateOrderVo requestVo) {
// 查询用户信息、校验svc卡
if (StringUtils.isEmpty(requestVo.getSaleCouponPhone())) {
// 买券手机号必填,否则无法发券
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "请填写手机号");
}
// 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMemberNew(requestVo.getSessionId());
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId();
......@@ -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 {
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