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