From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java |  483 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 355 insertions(+), 128 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
index 54323a3..3aa2546 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -1,25 +1,5 @@
 package com.yeshi.fanli.service.impl.order;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import com.yeshi.fanli.service.manger.order.TeamRewardManager;
-import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-import org.yeshi.utils.NumberUtil;
-
 import com.aliyun.openservices.ons.api.Message;
 import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter;
 import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
@@ -36,10 +16,13 @@
 import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg;
 import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO;
 import com.yeshi.fanli.dto.order.HongBaoAddResult;
+import com.yeshi.fanli.entity.SystemEnum;
+import com.yeshi.fanli.entity.SystemPIDInfo;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.Order;
 import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.dy.DYOrder;
 import com.yeshi.fanli.entity.elme.ElmeHongBaoOrderMap;
 import com.yeshi.fanli.entity.elme.ElmeOrder;
 import com.yeshi.fanli.entity.jd.JDOrder;
@@ -49,11 +32,7 @@
 import com.yeshi.fanli.entity.order.HongBaoOrder;
 import com.yeshi.fanli.entity.pdd.PDDOrder;
 import com.yeshi.fanli.entity.suning.SuningOrderInfo;
-import com.yeshi.fanli.entity.taobao.PidUser;
-import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
-import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
-import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
-import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
+import com.yeshi.fanli.entity.taobao.*;
 import com.yeshi.fanli.entity.vipshop.VipShopOrder;
 import com.yeshi.fanli.entity.vipshop.VipShopOrderDetail;
 import com.yeshi.fanli.exception.elme.ElmeOrderException;
@@ -71,11 +50,7 @@
 import com.yeshi.fanli.service.inter.elme.ElmeOrderService;
 import com.yeshi.fanli.service.inter.money.UserMoneyService;
 import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
-import com.yeshi.fanli.service.inter.order.CommonOrderService;
-import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.order.LostOrderService;
-import com.yeshi.fanli.service.inter.order.OrderMoneySettleService;
-import com.yeshi.fanli.service.inter.order.OrderProcessService;
+import com.yeshi.fanli.service.inter.order.*;
 import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
 import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
 import com.yeshi.fanli.service.inter.order.pdd.PDDOrderService;
@@ -83,23 +58,33 @@
 import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.service.manger.PIDManager;
 import com.yeshi.fanli.service.manger.msg.RocketMQManager;
 import com.yeshi.fanli.service.manger.order.HongBaoV2AddManager;
-import com.yeshi.fanli.util.CMQManager;
+import com.yeshi.fanli.service.manger.order.TeamRewardManager;
 import com.yeshi.fanli.util.Constant;
-import org.yeshi.utils.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
-import org.yeshi.utils.TimeUtil;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
-import com.yeshi.fanli.util.jd.JDApiUtil;
+import com.yeshi.fanli.util.goods.douyin.DYUtil;
 import com.yeshi.fanli.util.mq.cmq.order.PlaceOrderCMQManager;
 import com.yeshi.fanli.util.mq.cmq.order.TeamOrderCMQManager;
-import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
+import com.yeshi.fanli.util.mq.rabbit.RabbitmqManager;
+import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
 import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
 import com.yeshi.fanli.util.rocketmq.MQTopicName;
-import com.yeshi.fanli.util.suning.SuningApiUtil;
 import com.yeshi.fanli.util.vipshop.VipShopUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.yeshi.utils.MoneyBigDecimalUtil;
+import org.yeshi.utils.NumberUtil;
+import org.yeshi.utils.TimeUtil;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
 
 @Service
 public class OrderProcessServiceImpl implements OrderProcessService {
@@ -167,18 +152,33 @@
     @Resource
     private TeamRewardManager teamRewardManager;
 
+    @Resource
+    private PIDManager pidManager;
+
+    @Resource
+    private RabbitmqManager rabbitmqManager;
+
+    @Resource
+    private TeamOrderCMQManager teamOrderCMQManager;
+
+    @Resource
+    private PlaceOrderCMQManager placeOrderCMQManager;
+
     /**
      * 鏄惁鏄垎浜鍗�
      *
      * @param order
      * @return
      */
-    private boolean isShareOrder(TaoBaoOrder order) {
+    private boolean isShareOrder(SystemEnum system, TaoBaoOrder order) {
+
+        String specialRelationId = pidManager.getPidCache(system, Constant.SOURCE_TYPE_TAOBAO, SystemPIDInfo.PidType.fanliChannel);
+
         List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
         String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(), order.getSourceMediaId(),
                 order.getAdPositionId());
         if (!StringUtil.isNullOrEmpty(order.getSpecialId())
-                || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
+                || pid.equalsIgnoreCase(specialRelationId)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
             return false;
         } else if (!StringUtil.isNullOrEmpty(order.getRelationId())) {
             return true;
@@ -198,6 +198,44 @@
         }
     }
 
+    //鑾峰彇鎺ㄥ箍浣嶇被鍨�
+    private SystemPIDInfo.PidType getPidType(int sourceType, String pid) {
+        List<SystemPIDInfo> pidInfoList = pidManager.listPidInfoByPidCache(pid, sourceType);
+        if ((pidInfoList == null || pidInfoList.size() == 0) && sourceType == Constant.SOURCE_TYPE_TAOBAO) {
+            pidInfoList = pidManager.listPidInfoByPidCache(pid, Constant.SOURCE_TYPE_ELME);
+        }
+
+        SystemPIDInfo.PidType pidType = null;
+        if (pidInfoList != null && pidInfoList.size() > 0) {
+            pidType = pidInfoList.get(0).getPidType();
+        }
+        return pidType;
+    }
+
+    //鏍规嵁PID鑾峰彇绯荤粺
+    private List<SystemEnum> getPidSystems(String pid) {
+        List<SystemEnum> systemList = new ArrayList<>();
+        List<SystemPIDInfo> pidInfoList = pidManager.listPidInfoByPidCache(pid, null);
+
+        if (pidInfoList != null) {
+            for (SystemPIDInfo pidInfo : pidInfoList) {
+                systemList.add(pidInfo.getSystem());
+            }
+        }
+        return systemList;
+    }
+
+    private Set<Integer> getPidSourceTypes(String pid) {
+        Set<Integer> sourceTypes = new HashSet<>();
+        List<SystemPIDInfo> pidInfoList = pidManager.listPidInfoByPidCache(pid, null);
+        if (pidInfoList != null) {
+            for (SystemPIDInfo pidInfo : pidInfoList) {
+                sourceTypes.add(pidInfo.getSourceType());
+            }
+        }
+        return sourceTypes;
+    }
+
     @Override
     public synchronized void processOrder(Map<String, List<TaoBaoOrder>> orders) {
         List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
@@ -214,37 +252,48 @@
                 List<TaoBaoOrder> list = orders.get(orderId);
                 String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(),
                         list.get(0).getSourceMediaId(), list.get(0).getAdPositionId());
-                if ("楗夸簡涔�".equalsIgnoreCase(list.get(0).getOrderType())
-                        && !pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT)) {
-                    // 楗夸簡涔堣鍗曞紑濮嬪綊鍏ュ埌娣樺疂璁㈠崟
-                    if (TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(),
-                            "yyyy-MM-dd HH:mm:ss") >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
-                        fanliOrderMap.put(orderId, list);
-                    } else {
-                        elmeOrderMap.put(orderId, list);
-                    }
-                } else if ("鍙g".equalsIgnoreCase(list.get(0).getOrderType())
-                        && pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_KOUBEI_PID)) {// 鍙g鑷喘
-                    fanliOrderMap.put(orderId, list);
-                } else {
-                    if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())
-                            || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
-                        fanliOrderMap.put(orderId, list);
-                    } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
-                        shareOrderMap.put(orderId, list);
-                    } else {
-                        // 閫氳繃绾㈠寘鏌ヨ
-                        CommonOrder commonOrder = commonOrderService
-                                .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
 
-                        if (commonOrder != null) {
-                            HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
-                            if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
-                                    && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
-                                shareOrderMap.put(orderId, list);
-                                continue;
-                            }
+
+                SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_TAOBAO, pid);
+
+                //--------鍒嗙鑷喘,鍒嗕韩,楗夸簡涔堣鍗曠被鍨�-------
+                if (pidType != null) {
+                    if ("楗夸簡涔�".equalsIgnoreCase(list.get(0).getOrderType())
+                            && pidType != SystemPIDInfo.PidType.share) {
+                        // 楗夸簡涔堣鍗曞紑濮嬪綊鍏ュ埌娣樺疂璁㈠崟
+                        if (TimeUtil.convertToTimeTemp(list.get(0).getCreateTime(),
+                                "yyyy-MM-dd HH:mm:ss") >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
+                            fanliOrderMap.put(orderId, list);
+                        } else {
+                            elmeOrderMap.put(orderId, list);
                         }
+                    } else {
+                        if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())
+                                || pidType == SystemPIDInfo.PidType.fanliChannel) {// 璁剧疆娓犻亾ID褰撳仛浼氬憳杩愯惀ID鐨勪綅缃甀D
+                            fanliOrderMap.put(orderId, list);
+                        } else if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
+                            shareOrderMap.put(orderId, list);
+                        } else {
+                            // 閫氳繃绾㈠寘鏌ヨ
+                            CommonOrder commonOrder = commonOrderService
+                                    .selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, list.get(0).getTradeId());
+
+                            if (commonOrder != null) {
+                                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+                                if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null
+                                        && hongBaoOrder.getHongBaoV2().getType() == HongBaoV2.TYPE_SHARE_GOODS) {
+                                    shareOrderMap.put(orderId, list);
+                                    continue;
+                                }
+                            }
+                            fanliOrderMap.put(orderId, list);
+                        }
+                    }
+                } else {
+                    if ("鍙g".equalsIgnoreCase(list.get(0).getOrderType())
+                            && pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_KOUBEI_PID)) {// 鍙g鑷喘
+                        fanliOrderMap.put(orderId, list);
+                    } else {
                         fanliOrderMap.put(orderId, list);
                     }
                 }
@@ -412,7 +461,7 @@
                 continue;
             try {
                 if (Constant.ENABLE_MQ)
-                    CMQManager.getInstance().addFanLiMsgNew(hb);
+                   rabbitmqManager.addFanLiMsgNew(hb);
             } catch (Exception e) {
                 try {
                     LogHelper.errorDetailInfo(e);
@@ -532,7 +581,7 @@
                 try {
                     if (order.getState().contains("缁存潈鎴愬姛")) {
                         if (Constant.ENABLE_MQ)
-                            CMQManager.getInstance().addWeiQuanOrderMsg(order);
+                           rabbitmqManager.addWeiQuanOrderMsg(order);
                     }
                 } catch (Exception e) {
                     LogHelper.error("缁存潈璁㈠崟鍔犲叆鍒伴槦鍒楀嚭閿�:" + order != null ? new Gson().toJson(order) : null);
@@ -618,7 +667,7 @@
             Long uid = its.next();
             try {
                 if (Constant.ENABLE_MQ)
-                    TeamOrderCMQManager.getInstance().addFanLiTeamIncomePreMsg(new UidDateDTO(uid, maxTime));
+                    teamOrderCMQManager.addFanLiTeamIncomePreMsg(new UidDateDTO(uid, maxTime));
             } catch (Exception e) {
                 e.printStackTrace();
                 LogHelper.error(e);
@@ -628,7 +677,7 @@
     }
 
     @Override
-    public void fanliShare(Date maxTime) {
+    public int fanliShare(Date maxTime) {
         // 鏌ュ嚭閭�璇疯禋鐨勭敤鎴稩D
         List<Integer> typeList = new ArrayList<>();
         typeList.add(HongBaoV2.TYPE_SHARE_GOODS);
@@ -652,13 +701,14 @@
             Long uid = its.next();
             try {
                 if (Constant.ENABLE_MQ)
-                    CMQManager.getInstance().addFanLiShareMsg(new UidDateDTO(uid, maxTime));
+                   rabbitmqManager.addFanLiShareMsg(new UidDateDTO(uid, maxTime));
             } catch (Exception e) {
                 e.printStackTrace();
                 LogHelper.error(e);
             }
         }
 
+        return uidSets.size();
     }
 
     @Override
@@ -691,6 +741,12 @@
 
         try {
             orderMoneySettleService.inviteSettleSuning(uid, maxPreGetTime);
+        } catch (OrderMoneySettleException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            orderMoneySettleService.inviteSettleDY(uid, maxPreGetTime);
         } catch (OrderMoneySettleException e) {
             e.printStackTrace();
         }
@@ -729,6 +785,12 @@
         } catch (OrderMoneySettleException e) {
             e.printStackTrace();
         }
+
+        try {
+            orderMoneySettleService.shareSettleDY(uid, maxPreGetTime);
+        } catch (OrderMoneySettleException e) {
+            e.printStackTrace();
+        }
     }
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@@ -746,26 +808,30 @@
             String pid = String.format("mm_%s_%s_%s", configList.get(0).getAccountId(),
                     orderList.get(0).getSourceMediaId(), orderList.get(0).getAdPositionId());
 
+            SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_TAOBAO, pid);
+            List<SystemEnum> systemList = getPidSystems(pid);
+            Set<Integer> sourceTypes = getPidSourceTypes(pid);
+
             Order oldOrder = orderMapper.selectOrderByOrderIdAndOrderType(orderId, Constant.SOURCE_TYPE_TAOBAO);
             // 鍘熸潵涓嶅瓨鍦ㄨ鍗�
             Long uid = null;
             if (oldOrder == null) {
                 Long targetUid = null;
-                if (pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID)
+                if (pidType != null && pidType == SystemPIDInfo.PidType.fanliChannel
                         && !StringUtil.isNullOrEmpty(orderList.get(0).getRelationId())) {// 澶勭悊闈炶繑鍒╁晢鍝佸簱鐨勫晢鍝�
                     targetUid = taoBaoBuyRelationMapService.selectUidByRelationId(orderList.get(0).getRelationId());
 
-                } else if ((pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_ELEME_PID)
+                } else if ((sourceTypes.contains(Constant.SOURCE_TYPE_ELME)
                         || pid.equalsIgnoreCase(TaoBaoConstant.TAOBAO_KOUBEI_PID))
                         && !StringUtil.isNullOrEmpty(orderList.get(0).getRelationId())) {// 澶勭悊楗夸簡涔�,鍙g鐨勮鍗�
                     UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService
-                            .getByRelationId(orderList.get(0).getRelationId(), null);
+                            .getByRelationId(orderList.get(0).getRelationId(), systemList);
                     if (extraInfo != null) {
                         targetUid = extraInfo.getUser().getId();
                     }
                 } else if (!StringUtil.isNullOrEmpty(orderList.get(0).getSpecialId())) {
                     UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService
-                            .getBySpecialId(orderList.get(0).getSpecialId(), null);
+                            .getBySpecialId(orderList.get(0).getSpecialId(), systemList);
                     if (info != null && info.getUser() != null)
                         targetUid = info.getUser().getId();
                 }
@@ -832,7 +898,7 @@
                     order.setUserInfo(new UserInfo(uid));
                     try {
                         if (Constant.ENABLE_MQ)
-                            PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                            placeOrderCMQManager.addPlaceOrderMsg(order);
                     } catch (Exception e) {
                     }
                 }
@@ -883,7 +949,7 @@
                     order.setUserInfo(new UserInfo(uid));
                     try {
                         if (Constant.ENABLE_MQ)
-                            PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                            placeOrderCMQManager.addPlaceOrderMsg(order);
                     } catch (Exception e) {
                     }
                 }
@@ -903,7 +969,8 @@
         if (order == null || order.getOrderItemList() == null || order.getOrderItemList().size() == 0)
             return false;
         Long positionId = order.getOrderItemList().get(0).getPositionId();
-        if (positionId == JDApiUtil.POSITION_SHARE) {// 鍒嗕韩璁㈠崟
+        SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_JD, positionId + "");
+        if (pidType != null && pidType == SystemPIDInfo.PidType.share) {// 鍒嗕韩璁㈠崟
             return true;
         }
         return false;
@@ -913,10 +980,13 @@
     public void processJDOrder(JDOrder order) {
         if (order == null || order.getOrderItemList() == null || order.getOrderItemList().size() == 0)
             return;
-        // 鎷嗗崟鐨勪笉鍋氬鐞�
-        if (order.getValidCode() == 2)
-            return;
-
+        // 鎷嗗崟涓斾笉鍦╟ommonorder涓殑涓嶅仛澶勭悊
+        if (order.getValidCode() == 2) {
+            List<CommonOrder> list=  commonOrderService.listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_JD,order.getOrderId()+"");
+            if(list==null||list.size()==0) {
+                return;
+            }
+        }
         // 鏍规嵁ext1涓巗ubUnionId璺熷崟
         String uidStr = order.getExt1();
         if (StringUtil.isNullOrEmpty(uidStr))
@@ -926,15 +996,21 @@
         if (!StringUtil.isNullOrEmpty(uidStr) && NumberUtil.isNumeric(uidStr))
             uid = Long.parseLong(uidStr);
         Long positionId = order.getOrderItemList().get(0).getPositionId();
-        if (positionId == JDApiUtil.POSITION_FANLI)// 杩斿埄璁㈠崟
-        {
-            processFanLiJDOrder(order, uid);
-            lostOrderService.processSuceess(order.getOrderId() + "", Constant.SOURCE_TYPE_JD);
-        } else if (positionId == JDApiUtil.POSITION_SHARE) {// 鍒嗕韩璁㈠崟
-            if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
-                return;
-            processShareJDOrder(order, uid);
-        } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+        SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_JD, positionId + "");
+
+        if (pidType != null) {
+            if (pidType == SystemPIDInfo.PidType.fanli)// 杩斿埄璁㈠崟
+            {
+                processFanLiJDOrder(order, uid);
+                lostOrderService.processSuceess(order.getOrderId() + "", Constant.SOURCE_TYPE_JD);
+            } else if (pidType == SystemPIDInfo.PidType.share) {// 鍒嗕韩璁㈠崟
+                if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
+                    return;
+                processShareJDOrder(order, uid);
+            } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+                processFanLiJDOrder(order, null);
+            }
+        } else {
             processFanLiJDOrder(order, null);
         }
     }
@@ -1005,7 +1081,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1036,7 +1112,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1057,7 +1133,9 @@
      */
     private boolean isShareOrder(PDDOrder pddOrder) {
         String positionId = pddOrder.getpId();
-        if (PinDuoDuoApiUtil.PID_SHARE.equalsIgnoreCase(positionId))
+        SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_PDD, positionId);
+
+        if (pidType != null && pidType == SystemPIDInfo.PidType.share)
             return true;
         else
             return false;
@@ -1075,15 +1153,20 @@
         if (!StringUtil.isNullOrEmpty(customParameters))
             uid = Long.parseLong(PinDuoDuoUtil.getUidFromCustomParams(customParameters));
         String positionId = pddOrder.getpId();
-        if (PinDuoDuoApiUtil.PID_FANLI.equalsIgnoreCase(positionId))// 杩斿埄璁㈠崟
-        {
-            processFanLiPDDOrder(pddOrder, uid);
-            lostOrderService.processSuceess(pddOrder.getOrderSn(), Constant.SOURCE_TYPE_PDD);
-        } else if (PinDuoDuoApiUtil.PID_SHARE.equalsIgnoreCase(positionId)) {// 鍒嗕韩璁㈠崟
-            if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
-                return;
-            processSharePDDOrder(pddOrder, uid);
-        } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+        SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_PDD, positionId);
+        if (pidType != null) {
+            if (pidType == SystemPIDInfo.PidType.fanli)// 杩斿埄璁㈠崟
+            {
+                processFanLiPDDOrder(pddOrder, uid);
+                lostOrderService.processSuceess(pddOrder.getOrderSn(), Constant.SOURCE_TYPE_PDD);
+            } else if (pidType == SystemPIDInfo.PidType.share) {// 鍒嗕韩璁㈠崟
+                if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
+                    return;
+                processSharePDDOrder(pddOrder, uid);
+            } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+                processFanLiPDDOrder(pddOrder, null);
+            }
+        } else {
             processFanLiPDDOrder(pddOrder, null);
         }
     }
@@ -1149,7 +1232,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1182,7 +1265,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1225,7 +1308,7 @@
     }
 
     /**
-     * 澶勭悊浜笢杩斿埄璁㈠崟
+     * 澶勭悊鍞搧浼氳繑鍒╄鍗�
      *
      * @param vipShopOrder
      * @param uid
@@ -1285,7 +1368,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1316,7 +1399,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1341,21 +1424,30 @@
         if (!StringUtil.isNullOrEmpty(uidStr))
             uid = Long.parseLong(uidStr);
         String positionId = suningOrder.getPositionId();
-        if (SuningApiUtil.PID_BUY.equalsIgnoreCase(positionId))// 杩斿埄璁㈠崟
-        {
-            processFanLiSuningOrder(suningOrder, uid);
-            lostOrderService.processSuceess(suningOrder.getOrderCode(), Constant.SOURCE_TYPE_SUNING);
-        } else if (PinDuoDuoApiUtil.PID_SHARE.equalsIgnoreCase(positionId)) {// 鍒嗕韩璁㈠崟
-            if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
-                return;
-            processShareSuningOrder(suningOrder, uid);
-        } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+
+        SystemPIDInfo.PidType pidType = getPidType(Constant.SOURCE_TYPE_SUNING, positionId);
+
+        if (pidType != null) {
+            if (pidType == SystemPIDInfo.PidType.fanli)// 杩斿埄璁㈠崟
+            {
+                processFanLiSuningOrder(suningOrder, uid);
+                lostOrderService.processSuceess(suningOrder.getOrderCode(), Constant.SOURCE_TYPE_SUNING);
+            } else if (pidType == SystemPIDInfo.PidType.share) {// 鍒嗕韩璁㈠崟
+                if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
+                    return;
+                processShareSuningOrder(suningOrder, uid);
+            } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+                processFanLiSuningOrder(suningOrder, null);
+            }
+        } else {
             processFanLiSuningOrder(suningOrder, null);
         }
     }
 
+
+
     /**
-     * 澶勭悊鎷煎澶氳嚜璐繑鍒╄鍗�
+     * 澶勭悊鑻忓畞鑷喘杩斿埄璁㈠崟
      *
      * @param suningOrder
      * @param uid
@@ -1417,7 +1509,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1431,7 +1523,7 @@
     }
 
     /**
-     * 澶勭悊鎷煎澶氬垎浜鍗�
+     * 澶勭悊鑻忓畞鍒嗕韩璁㈠崟
      *
      * @param suningOrder
      * @param uid
@@ -1450,7 +1542,7 @@
                 order.setUserInfo(new UserInfo(uid));
                 try {
                     if (Constant.ENABLE_MQ)
-                        PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order);
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
                 } catch (Exception e) {
                 }
             }
@@ -1462,6 +1554,130 @@
             }
         }
     }
+
+
+    @Override
+    public void processDYOrder(DYOrder order) {
+        if (order == null)
+            return;
+
+
+        // 鏍规嵁ext1涓巗ubUnionId璺熷崟
+        String extra_info = order.getExternal_info();
+
+        Long uid = DYUtil.getUid(extra_info);
+        String type = DYUtil.getTypeFromExtraInfo(extra_info);
+        if ("buy".equalsIgnoreCase(type))// 杩斿埄璁㈠崟
+        {
+            processFanLiDYOrder(order, uid);
+            lostOrderService.processSuceess(order.getOrder_id() + "", Constant.SOURCE_TYPE_DY);
+        } else if ("share".equalsIgnoreCase(type)) {// 鍒嗕韩璁㈠崟
+            if (uid == null)// 鍒嗕韩璁㈠崟涓嶅厑璁告壘鍥�
+                return;
+            processShareDYOrder(order, uid);
+        } else {// 澶勭悊鏄惁鏈夎鍗曟壘鍥炵殑鐘舵��
+            processFanLiDYOrder(order, null);
+        }
+    }
+
+    /**
+     * 澶勭悊鎶栭煶杩斿埄璁㈠崟
+     *
+     * @param dyOrder
+     * @param uid
+     */
+    private void processFanLiDYOrder(DYOrder dyOrder, Long uid) {
+
+        BigDecimal totalMoney = new BigDecimal(dyOrder.getTotal_pay_amount()).divide(new BigDecimal(100),2, RoundingMode.FLOOR);
+
+        // 鍔犲叆璁㈠崟
+        Order oldOrder = orderMapper.selectOrderByOrderIdAndOrderType(dyOrder.getOrder_id() + "",
+                Constant.SOURCE_TYPE_DY);
+        if (uid == null && oldOrder != null && oldOrder.getBeizhu() != null && oldOrder.getBeizhu().contains("琛ュ崟"))
+            uid = oldOrder.getUserInfo().getId();
+
+        if (uid == null)
+            return;
+
+        if (oldOrder == null)// 鏂板
+        {
+            Order order = new Order();
+            order.setBeizhu("鎶栭煶杩斿埄璁㈠崟");
+            order.setCreatetime(System.currentTimeMillis());
+            order.setOrderId(dyOrder.getOrder_id() + "");
+            order.setOrderType(Constant.SOURCE_TYPE_DY);
+            order.setState(
+                    (dyOrder.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_REFUND)) ? Order.STATE_SHIXIAO : Order.STATE_YIZHIFU);
+            order.setUserInfo(new UserInfo(uid));
+            order.setVersion(2);
+            order.setThirdCreateTime(new Date(TimeUtil.convertToTimeTemp(dyOrder.getPay_success_time(),"yyyy-MM-dd HH:mm:ss")));
+            order.setMoney(totalMoney);
+            // 鍔犲叆鍒拌鍗曡〃
+            orderMapper.insertSelective(order);
+        } else {
+            Order updateOrder = new Order();
+            updateOrder.setId(oldOrder.getId());
+            updateOrder.setMoney(totalMoney);
+            orderMapper.updateByPrimaryKeySelective(updateOrder);
+        }
+
+        try {
+            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addDYOrder(dyOrder, uid);
+            addHongBaoWithMQ(commonOrderList, dyOrder.getOrder_id() + "", uid, Constant.SOURCE_TYPE_DY,
+                    HongBaoV2.TYPE_ZIGOU);
+
+            if (isCommonOrderAllAdd(commonOrderList)) {
+                Order order = new Order();
+                order.setOrderId(dyOrder.getOrder_id());
+                order.setOrderType(Constant.SOURCE_TYPE_DY);
+                order.setUserInfo(new UserInfo(uid));
+                try {
+                    if (Constant.ENABLE_MQ)
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
+                } catch (Exception e) {
+                }
+            }
+        } catch (CommonOrderException e) {
+            try {
+                LogHelper.errorDetailInfo(e, "addDYOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + dyOrder.getOrder_id());
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * 澶勭悊鎶栭煶鍒嗕韩璁㈠崟
+     *
+     * @param dyOrder
+     * @param uid
+     */
+    private void processShareDYOrder(DYOrder dyOrder, Long uid) {
+        try {
+            List<CommonOrderAddResultDTO> commonOrderList = commonOrderService.addDYOrder(dyOrder, uid);
+            addHongBaoWithMQ(commonOrderList, dyOrder.getOrder_id() + "", uid, Constant.SOURCE_TYPE_DY,
+                    HongBaoV2.TYPE_SHARE_GOODS);
+            if (isCommonOrderAllAdd(commonOrderList)) {
+                Order order = new Order();
+                order.setOrderId(dyOrder.getOrder_id());
+                order.setOrderType(Constant.SOURCE_TYPE_DY);
+                order.setUserInfo(new UserInfo(uid));
+                try {
+                    if (Constant.ENABLE_MQ)
+                        placeOrderCMQManager.addPlaceOrderMsg(order);
+                } catch (Exception e) {
+                }
+            }
+        } catch (CommonOrderException e) {
+            try {
+                LogHelper.errorDetailInfo(e, "addDYOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + dyOrder.getOrder_id());
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
+    }
+
+
 
     @Override
     public void repairCommonOrderByByTaoBaoOrder(String orderId) {
@@ -1485,9 +1701,12 @@
 
     @Override
     public boolean isShareOrder(CommonOrder commonOrder) {
+        //鑾峰彇绯荤粺
+        UserInfo user = userInfoMapper.selectByPrimaryKey(commonOrder.getUserInfo().getId());
+        SystemEnum system = user.getSystem();
         switch (commonOrder.getSourceType()) {
             case Constant.SOURCE_TYPE_TAOBAO:
-                return isShareOrder(taoBaoOrderService.selectByTradeId(commonOrder.getTradeId()));
+                return isShareOrder(system, taoBaoOrderService.selectByTradeId(commonOrder.getTradeId()));
             case Constant.SOURCE_TYPE_JD:
                 return isShareOrder(jdOrderService.selectDetailByOrderId(Long.parseLong(commonOrder.getOrderNo())));
             case Constant.SOURCE_TYPE_PDD:
@@ -1688,14 +1907,22 @@
             else
                 result = hongBaoV2AddManager.addHongBao(coList, hongBaoType);
         } catch (HongBaoException e) {
-            try {
-                LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
-            } catch (Exception e1) {
-                e1.printStackTrace();
+            if (e.getCode() != HongBaoException.CODE_ORDER_WEIQUAN) {
+                try {
+                    LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId);
+                } catch (Exception e1) {
+                    e1.printStackTrace();
+                }
             }
+
         } catch (UserAccountException e) {
 
         }
+        if (result == null) {
+            return;
+        }
+
+
         if (!Constant.IS_TEST)
             if (result.getResultCode() == HongBaoAddResult.CODE_ADD) {// 鍙彂閫佹柊澧炴秷鎭�
                 OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD,
@@ -1732,7 +1959,7 @@
             update.setLatestUpdateTime(new Date());
             update.setOrderState("璁㈠崟澶辨晥");
             taoBaoOrderService.updateSelectiveByPrimaryKey(update);
-            CMQManager.getInstance().addTaoBaoOrderMsg(taoBaoOrder.getOrderId());
+            rabbitmqManager.addTaoBaoOrderMsg(taoBaoOrder.getOrderId());
         }
     }
 

--
Gitblit v1.8.0