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 | 273 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 207 insertions(+), 66 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 0f15783..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,28 +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.entity.SystemEnum; -import com.yeshi.fanli.entity.SystemPIDInfo; -import com.yeshi.fanli.service.manger.PIDManager; -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; @@ -39,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; @@ -52,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; @@ -74,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; @@ -86,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 { @@ -172,6 +154,15 @@ @Resource private PIDManager pidManager; + + @Resource + private RabbitmqManager rabbitmqManager; + + @Resource + private TeamOrderCMQManager teamOrderCMQManager; + + @Resource + private PlaceOrderCMQManager placeOrderCMQManager; /** * 鏄惁鏄垎浜鍗� @@ -470,7 +461,7 @@ continue; try { if (Constant.ENABLE_MQ) - CMQManager.getInstance().addFanLiMsgNew(hb); + rabbitmqManager.addFanLiMsgNew(hb); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -590,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); @@ -676,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); @@ -686,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); @@ -710,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 @@ -752,6 +744,12 @@ } catch (OrderMoneySettleException e) { e.printStackTrace(); } + + try { + orderMoneySettleService.inviteSettleDY(uid, maxPreGetTime); + } catch (OrderMoneySettleException e) { + e.printStackTrace(); + } } @Override @@ -784,6 +782,12 @@ try { orderMoneySettleService.shareSettleSuning(uid, maxPreGetTime); + } catch (OrderMoneySettleException e) { + e.printStackTrace(); + } + + try { + orderMoneySettleService.shareSettleDY(uid, maxPreGetTime); } catch (OrderMoneySettleException e) { e.printStackTrace(); } @@ -894,7 +898,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -945,7 +949,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -976,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)) @@ -1074,7 +1081,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1105,7 +1112,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1225,7 +1232,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1258,7 +1265,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1301,7 +1308,7 @@ } /** - * 澶勭悊浜笢杩斿埄璁㈠崟 + * 澶勭悊鍞搧浼氳繑鍒╄鍗� * * @param vipShopOrder * @param uid @@ -1361,7 +1368,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1392,7 +1399,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1437,8 +1444,10 @@ } } + + /** - * 澶勭悊鎷煎澶氳嚜璐繑鍒╄鍗� + * 澶勭悊鑻忓畞鑷喘杩斿埄璁㈠崟 * * @param suningOrder * @param uid @@ -1500,7 +1509,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1514,7 +1523,7 @@ } /** - * 澶勭悊鎷煎澶氬垎浜鍗� + * 澶勭悊鑻忓畞鍒嗕韩璁㈠崟 * * @param suningOrder * @param uid @@ -1533,7 +1542,7 @@ order.setUserInfo(new UserInfo(uid)); try { if (Constant.ENABLE_MQ) - PlaceOrderCMQManager.getInstance().addPlaceOrderMsg(order); + placeOrderCMQManager.addPlaceOrderMsg(order); } catch (Exception e) { } } @@ -1545,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) { @@ -1774,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, @@ -1818,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