From 62a447d89331aee1feae7724c7616aa1bb2cfe79 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 16 十月 2024 14:28:37 +0800
Subject: [PATCH] 将CMQ替换为rabbitmq

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java |  326 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 173 insertions(+), 153 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
index 57011ba..5ebb88d 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/tb/TaoBaoWeiQuanOrderServiceImpl.java
@@ -1,153 +1,173 @@
-package com.yeshi.fanli.service.impl.order.tb;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
-import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
-import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
-import com.yeshi.fanli.entity.order.CommonOrder;
-import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
-import com.yeshi.fanli.service.inter.order.CommonOrderService;
-import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
-import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
-import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
-import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
-import com.yeshi.fanli.util.Constant;
-
-@Service
-public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
-	@Resource
-	private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
-
-	@Resource
-	private UserOrderMsgNotificationService userOrderMsgNotificationService;
-
-	@Resource
-	private MsgOrderDetailService msgOrderDetailService;
-
-	@Resource
-	private CommonOrderService commonOrderService;
-
-	@Resource
-	private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
-
-	@Transactional(rollbackFor = Exception.class)
-	@Override
-	public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
-		if (order == null)
-			return;
-
-		TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
-				.selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
-		if (taoBaoWeiQuanOrder != null) {
-			// 宸茬粡鏄渶鏂扮殑鐘舵�佷簡
-			if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("缁存潈鎴愬姛")
-					|| taoBaoWeiQuanOrder.getState().contains("缁存潈澶辫触")))
-				return;
-			// 鏇存柊閲戦锛岀姸鎬佷笌鏃堕棿
-			TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
-			update.setId(taoBaoWeiQuanOrder.getId());
-			update.setFanMoney(order.getFanMoney());
-			update.setJieSuanTime(order.getJieSuanTime());
-			update.setMoney(order.getMoney());
-			update.setState(order.getState());
-			update.setUpdateTime(new Date());
-			update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
-			taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
-
-			try {
-				if (order.getState().contains("缁存潈鎴愬姛")) {
-					// 鏇存敼CommonOrder鐨勭姸鎬�
-					CommonOrder commonOrder = commonOrderService
-							.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
-					if (commonOrder != null) {
-						CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
-						updateCommonOrder.setState(CommonOrder.STATE_WQ);
-						updateCommonOrder.setUpdateTime(new Date());
-						commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
-						userOrderWeiQuanRecordService.addTaoBaoWeiQuan(taoBaoWeiQuanOrder);
-					}
-
-					// 缁存潈鐘舵�佷笉闇�瑕佹秷鎭�
-					// List<MsgOrderDetail> msgList =
-					// msgOrderDetailService.listMsgOrderByOrderId(order.getOrderId());
-					// for (MsgOrderDetail msg : msgList) {
-					// if (msg.getType() == MsgTypeOrderTypeEnum.fanli) {
-					// userOrderMsgNotificationService.orderFanLiStateChanged(msg.getUser().getId(),
-					// order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null,
-					// null, CommonOrder.STATE_WQ);
-					// } else if (msg.getType() == MsgTypeOrderTypeEnum.invite)
-					// {
-					// userOrderMsgNotificationService.orderInviteStateChanged(msg.getUser().getId(),
-					// order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null,
-					// null, CommonOrder.STATE_WQ);
-					// } else if (msg.getType() == MsgTypeOrderTypeEnum.share) {
-					// userOrderMsgNotificationService.orderShareStateChanged(msg.getUser().getId(),
-					// order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, null,
-					// null, CommonOrder.STATE_WQ);
-					// }
-					// }
-				}
-			} catch (Exception e) {
-
-			}
-		} else {
-			order.setCreateTime(new Date());
-			order.setUpdateTime(new Date());
-			taoBaoWeiQuanOrderMapper.insertSelective(order);
-			if (order.getState().contains("缁存潈鎴愬姛")) {
-				// 鏇存敼CommonOrder鐨勭姸鎬�
-				CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
-						order.getOrderItemId());
-				if (commonOrder != null) {
-					CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
-					updateCommonOrder.setState(CommonOrder.STATE_WQ);
-					updateCommonOrder.setUpdateTime(new Date());
-					commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
-					userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
-				}
-			}
-		}
-	}
-
-	@Override
-	public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
-		return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "缁存潈鎴愬姛");
-	}
-
-	@Override
-	public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
-		return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
-	}
-
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
-		return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
-	}
-
-	@Override
-	public long countByState(String state) {
-		return taoBaoWeiQuanOrderMapper.countByState(state);
-	}
-
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
-		return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
-	}
-
-	@Override
-	public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
-		return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
-	}
-
-	@Override
-	public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
-		return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
-	}
-}
+package com.yeshi.fanli.service.impl.order.tb;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.exception.money.TeamRewardDebtException;
+import com.yeshi.fanli.exception.order.TaoBaoOrderException;
+import com.yeshi.fanli.service.manger.order.TeamRewardManager;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
+import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
+import com.yeshi.fanli.dto.mq.order.body.OrderWeiQuanMQMsg;
+import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
+import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
+import com.yeshi.fanli.entity.order.CommonOrder;
+import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
+import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
+import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
+import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
+import com.yeshi.fanli.service.manger.msg.RocketMQManager;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
+
+@Service
+public class TaoBaoWeiQuanOrderServiceImpl implements TaoBaoWeiQuanOrderService {
+    @Resource
+    private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
+
+    @Resource
+    private TeamRewardManager teamRewardManager;
+
+
+    @Resource
+    private CommonOrderService commonOrderService;
+
+    @Resource
+    private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
+
+    @Resource
+    private RocketMQManager rocketMQManager;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addWeiQuanOrder(TaoBaoWeiQuanOrder order) {
+        if (order == null)
+            return;
+
+        boolean isAdd = false;
+        boolean isUpdate = false;
+        Long id = null;
+
+        TaoBaoWeiQuanOrder taoBaoWeiQuanOrder = taoBaoWeiQuanOrderMapper
+                .selectByOrderIdAndOrderItemId(order.getOrderId(), order.getOrderItemId());
+        if (taoBaoWeiQuanOrder != null) {
+            id = taoBaoWeiQuanOrder.getId();
+            // 宸茬粡鏄渶鏂扮殑鐘舵�佷簡
+            if (taoBaoWeiQuanOrder.getState() != null && (taoBaoWeiQuanOrder.getState().contains("缁存潈鎴愬姛")))
+                return;
+            // 鏇存柊閲戦锛岀姸鎬佷笌鏃堕棿
+            TaoBaoWeiQuanOrder update = new TaoBaoWeiQuanOrder();
+            update.setId(taoBaoWeiQuanOrder.getId());
+            update.setFanMoney(order.getFanMoney());
+            update.setJieSuanTime(order.getJieSuanTime());
+            update.setMoney(order.getMoney());
+            update.setState(order.getState());
+            update.setUpdateTime(new Date());
+            update.setWeiQuanFinishTime(order.getWeiQuanFinishTime());
+            taoBaoWeiQuanOrderMapper.updateByPrimaryKeySelective(update);
+            isUpdate = true;
+            try {
+                if (order.getState().contains("缁存潈鎴愬姛")) {
+                    weiQuanSuccess(order);
+                }
+            } catch (Exception e) {
+
+            }
+        } else {
+            order.setCreateTime(new Date());
+            order.setUpdateTime(new Date());
+            taoBaoWeiQuanOrderMapper.insertSelective(order);
+            id = order.getId();
+            isAdd = true;
+            if (order.getState().contains("缁存潈鎴愬姛")) {
+                weiQuanSuccess(order);
+            }
+        }
+
+        // 澧炲姞鎴栦慨鏀�
+        if (isAdd || isUpdate) {
+            if (id != null) {
+                OrderWeiQuanMQMsg msg = new OrderWeiQuanMQMsg(order.getOrderId(), order.getOrderItemId(),
+                        Constant.SOURCE_TYPE_TAOBAO);
+                Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.taoBaoOrderWeiQuan,
+                        msg);
+                rocketMQManager.sendNormalMsg(message, null);
+            }
+        }
+
+    }
+
+
+    /**
+     * 缁存潈鎴愬姛
+     *
+     * @param order
+     */
+    private void weiQuanSuccess(TaoBaoWeiQuanOrder order) {
+        // 鏇存敼CommonOrder鐨勭姸鎬�
+        CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
+                order.getOrderItemId());
+        if (commonOrder != null) {
+            CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
+            updateCommonOrder.setState(CommonOrder.STATE_WQ);
+            updateCommonOrder.setUpdateTime(new Date());
+            commonOrderService.updateByPrimaryKeySelective(updateCommonOrder);
+            userOrderWeiQuanRecordService.addTaoBaoWeiQuan(order);
+            try {
+                teamRewardManager.weiQuan(order.getOrderId(), Constant.SOURCE_TYPE_TAOBAO, order.getOrderItemId());
+            } catch (TaoBaoOrderException e) {
+                e.printStackTrace();
+            } catch (TeamRewardDebtException e) {
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId) {
+        return taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(orderId, "缁存潈鎴愬姛");
+    }
+
+    @Override
+    public TaoBaoWeiQuanOrder listByorderItemId(String tradeId) {
+        return taoBaoWeiQuanOrderMapper.selectByOrderItemId(tradeId);
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByState(String state, int page, int pageSize) {
+        return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
+    }
+
+    @Override
+    public long countByState(String state) {
+        return taoBaoWeiQuanOrderMapper.countByState(state);
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
+        return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
+    }
+
+    @Override
+    public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
+        return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
+    }
+
+    @Override
+    public List<TaoBaoWeiQuanOrder> listByBeginWeiQuan(int page, int pageSize) {
+        return taoBaoWeiQuanOrderMapper.listByBeginWeiQuan((page - 1) * pageSize, pageSize);
+    }
+}

--
Gitblit v1.8.0