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