From d7953d723a0b629fd9adc55ca140a93d27ec1887 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 30 Sep 2025 10:30:24 +0800
Subject: [PATCH] feat(rabbitmq): 新增知识库同步功能
---
src/main/java/cc/mrbird/febs/ai/service/AiKnowledgeFileService.java | 2
src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 1
src/main/java/cc/mrbird/febs/ai/service/impl/AiKnowledgeFileServiceImpl.java | 36 ++++-
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 16 ++
src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 253 ++++++++++++++++++++++--------------------
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 1
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 11 +
7 files changed, 189 insertions(+), 131 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiKnowledgeFileService.java b/src/main/java/cc/mrbird/febs/ai/service/AiKnowledgeFileService.java
index d501086..5c62103 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiKnowledgeFileService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiKnowledgeFileService.java
@@ -12,4 +12,6 @@
FebsResponse add(AiKnowledgeFile dto);
FebsResponse update(AiKnowledgeFile dto);
+
+ void getAddKnowledge(String id);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiKnowledgeFileServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiKnowledgeFileServiceImpl.java
index ba6b536..68b811f 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiKnowledgeFileServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiKnowledgeFileServiceImpl.java
@@ -12,6 +12,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -38,6 +39,7 @@
private final AiKnowledgeFileMapper aiKnowledgeFileMapper;
private final AiCompanyService aiCompanyService;
+ private final AgentProducer agentProducer;
@Override
public IPage<AiKnowledgeFile> listInPage(AiKnowledgeFile dto, QueryRequest request) {
@@ -62,10 +64,26 @@
entity.setCreatedTime(new Date());
this.save(entity);
+ agentProducer.sendAddKnowledge( entity.getId());
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public FebsResponse update(AiKnowledgeFile dto) {
+ return null;
+ }
+
+ @Override
+ public void getAddKnowledge(String id) {
+ AiKnowledgeFile aiKnowledgeFile = this.getById(id);
+ if (ObjectUtil.isNull(aiKnowledgeFile)){
+ return;
+ }
+
String categoryId = null;
String knowledgeId = null;
- if (StrUtil.isNotEmpty(entity.getCompanyId())){
- AiCompany aiCompany = aiCompanyService.getById(entity.getCompanyId());
+ if (StrUtil.isNotEmpty(aiKnowledgeFile.getCompanyId())){
+ AiCompany aiCompany = aiCompanyService.getById(aiKnowledgeFile.getCompanyId());
if (StrUtil.isNotEmpty(aiCompany.getCategoryId())){
categoryId = aiCompany.getCategoryId();
knowledgeId = aiCompany.getKnowledgeId();
@@ -75,9 +93,10 @@
knowledgeId = KnowledgeBaseUtil.DEFAULT_KNOWLEDGE_ID;
}
- String fileId = KnowledgeBaseUtil.uploadFileToAppData(entity.getSavePath(), categoryId);
+ String fileId = KnowledgeBaseUtil.uploadFileToAppData(aiKnowledgeFile.getSavePath(), categoryId);
if (StrUtil.isBlank(fileId)){
- throw new FebsException("初始化应用数据失败");
+ log.info("初始化应用数据失败");
+ return ;
}
String jobId = KnowledgeBaseUtil.updateKnowledgeBase(fileId, knowledgeId, null);
@@ -85,13 +104,8 @@
Wrappers.lambdaUpdate(AiKnowledgeFile.class)
.set(AiKnowledgeFile::getFileId, fileId)
.set(AiKnowledgeFile::getJobId, jobId)
- .eq(AiKnowledgeFile::getId, entity.getId())
- );
- return new FebsResponse().success().message("操作成功");
- }
+ .eq(AiKnowledgeFile::getId, aiKnowledgeFile.getId())
+ );
- @Override
- public FebsResponse update(AiKnowledgeFile dto) {
- return null;
}
}
diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index d5a02b7..59168bc 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -270,4 +270,20 @@
return BindingBuilder.bind(clothesAddCollectQueue()).to(clothesAddCollectExchange()).with(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getRoute());
}
+
+ @Bean
+ public DirectExchange knowledgeAddExchange() {
+ return new DirectExchange(RabbitQueueEnum.KNOWLEDGE_ADD_ALI.getExchange());
+ }
+
+ @Bean
+ public Queue knowledgeAddQueue() {
+ return new Queue(RabbitQueueEnum.KNOWLEDGE_ADD_ALI.getQueue());
+ }
+
+ @Bean
+ public Binding knowledgeAddBind() {
+ return BindingBuilder.bind(knowledgeAddQueue()).to(knowledgeAddExchange()).with(RabbitQueueEnum.KNOWLEDGE_ADD_ALI.getRoute());
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index e54282e..6f948b0 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -22,4 +22,5 @@
public static final String CLOTHES_ORDER_CANCEL_DELAY = "queue_order_delay_qay_clothes";
public static final String CLOTHES_ADD_LIKE = "queue_clothes_add_like";
public static final String CLOTHES_ADD_COLLECT = "queue_clothes_add_collect";
+ public static final String KNOWLEDGE_ADD_ALI = "queue_knowledge_add_ali";
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index bb898ce..5c9b061 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.rabbit.consumer;
+import cc.mrbird.febs.ai.service.AiKnowledgeFileService;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.rabbit.constants.QueueConstants;
import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum;
@@ -20,7 +21,7 @@
**/
@Slf4j
@Component
-@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
+//@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
public class AgentConsumer {
@Autowired
@@ -34,130 +35,142 @@
private IMemberProfitService memberProfitService;
@Autowired
private HappyActivityService happyActivityService;
-
- @RabbitListener(queues = QueueConstants.QUEUE_DEFAULT)
- public void agentReturn(Message message, Channel channel) {
- log.info("消费者:{}", new String(message.getBody()));
- }
-
- @RabbitListener(queues = QueueConstants.CLOTHES_ORDER_CANCEL_DELAY)
- public void orderCancelDelayClothes(String id) {
- try {
- apiClothesOrderService.orderCancelDelayClothes(Long.parseLong(id));
- } catch (Exception e) {
- log.error("订单超时支付异常", e);
- }
- }
-
- @RabbitListener(queues = "queue_order_delay_qay")
- public void orderCancelDelay(String id) {
- try {
- orderInfoService.autoCancelOrder(Long.parseLong(id));
- } catch (Exception e) {
- log.error("订单超时支付异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.AGENT_AUTO_LEVEL_UP)
- public void agentAutoLevelUp(String id) {
- log.info("收到代理自动升级消息:{}", id);
- try {
- agentService.autoUpAgentLevel(Long.parseLong(id));
- } catch (Exception e) {
- log.error("代理自动升级异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY)
- public void agentReturnMoney(String orderId) {
- log.info("收到返利消息:{}", orderId);
- try {
- agentService.returnMoneyToAgent(Long.parseLong(orderId));
- } catch (Exception e) {
- log.error("返利异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.ORDER_RETURN_MONEY)
- public void orderReturnMoney(String orderId) {
- log.info("收到订单返利消息:{}", orderId);
- try {
- memberProfitService.dynamicProfit(Long.parseLong(orderId));
- } catch (Exception e) {
- log.error("订单返利异常:", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.ORDER_COUPON)
- public void getOrderCoupon(Long orderId) {
- log.info("收到使用优惠卷消息:{}", orderId);
- try {
- memberProfitService.getOrderCoupon(orderId);
- } catch (Exception e) {
- log.error("使用优惠卷异常:", e);
- }
- }
-
@Autowired
- private IVipCommonService vipCommonService;
+ private AiKnowledgeFileService aiKnowledgeFileService;
- @RabbitListener(queues = QueueConstants.GET_SCORE_MSG)
- public void getScoreMsg(Long orderId) {
- log.info("收到积分消息:{}", orderId);
- try {
- vipCommonService.getScore(orderId);
- } catch (Exception e) {
- log.error("获取积分消息异常", e);
- }
- }
+// @RabbitListener(queues = QueueConstants.QUEUE_DEFAULT)
+// public void agentReturn(Message message, Channel channel) {
+// log.info("消费者:{}", new String(message.getBody()));
+// }
+//
+// @RabbitListener(queues = QueueConstants.CLOTHES_ORDER_CANCEL_DELAY)
+// public void orderCancelDelayClothes(String id) {
+// try {
+// apiClothesOrderService.orderCancelDelayClothes(Long.parseLong(id));
+// } catch (Exception e) {
+// log.error("订单超时支付异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = "queue_order_delay_qay")
+// public void orderCancelDelay(String id) {
+// try {
+// orderInfoService.autoCancelOrder(Long.parseLong(id));
+// } catch (Exception e) {
+// log.error("订单超时支付异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.AGENT_AUTO_LEVEL_UP)
+// public void agentAutoLevelUp(String id) {
+// log.info("收到代理自动升级消息:{}", id);
+// try {
+// agentService.autoUpAgentLevel(Long.parseLong(id));
+// } catch (Exception e) {
+// log.error("代理自动升级异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY)
+// public void agentReturnMoney(String orderId) {
+// log.info("收到返利消息:{}", orderId);
+// try {
+// agentService.returnMoneyToAgent(Long.parseLong(orderId));
+// } catch (Exception e) {
+// log.error("返利异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.ORDER_RETURN_MONEY)
+// public void orderReturnMoney(String orderId) {
+// log.info("收到订单返利消息:{}", orderId);
+// try {
+// memberProfitService.dynamicProfit(Long.parseLong(orderId));
+// } catch (Exception e) {
+// log.error("订单返利异常:", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.ORDER_COUPON)
+// public void getOrderCoupon(Long orderId) {
+// log.info("收到使用优惠卷消息:{}", orderId);
+// try {
+// memberProfitService.getOrderCoupon(orderId);
+// } catch (Exception e) {
+// log.error("使用优惠卷异常:", e);
+// }
+// }
+//
+// @Autowired
+// private IVipCommonService vipCommonService;
+//
+// @RabbitListener(queues = QueueConstants.GET_SCORE_MSG)
+// public void getScoreMsg(Long orderId) {
+// log.info("收到积分消息:{}", orderId);
+// try {
+// vipCommonService.getScore(orderId);
+// } catch (Exception e) {
+// log.error("获取积分消息异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.VIP_LEVEL_UP)
+// public void vipLevelUp(Long orderId) {
+// log.info("收到会员升级消息:{}", orderId);
+// try {
+// vipCommonService.levelUp(orderId);
+// } catch (Exception e) {
+// log.error("会员升级消息异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.SALE_LEVEL_UP)
+// public void saleLevelUp(Long orderId) {
+// log.info("收到团长升级:{}", orderId);
+// try {
+// vipCommonService.saleLevelUp(orderId);
+// } catch (Exception e) {
+// log.error("团长升级消息异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.ACTIVITY_ORDER_ITEM_CHECK)
+// public void checkActivityItem(Long orderId) {
+// log.info("收到核销活动门票:{}", orderId);
+// try {
+// happyActivityService.checkActivityItem(orderId);
+// } catch (Exception e) {
+// log.error("核销活动门票异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.CLOTHES_ADD_LIKE)
+// public void getAddLike(Long socialId) {
+// log.info("点赞:{}", socialId);
+// try {
+// happyActivityService.getAddLike(socialId);
+// } catch (Exception e) {
+// log.error("点赞异常", e);
+// }
+// }
+//
+// @RabbitListener(queues = QueueConstants.CLOTHES_ADD_COLLECT)
+// public void getAddCollect(Long socialId) {
+// log.info("收藏:{}", socialId);
+// try {
+// happyActivityService.getAddCollect(socialId);
+// } catch (Exception e) {
+// log.error("收藏异常", e);
+// }
+// }
- @RabbitListener(queues = QueueConstants.VIP_LEVEL_UP)
- public void vipLevelUp(Long orderId) {
- log.info("收到会员升级消息:{}", orderId);
+ @RabbitListener(queues = QueueConstants.KNOWLEDGE_ADD_ALI)
+ public void getAddKnowledge(String id) {
+ log.info("知识库:{}", id);
try {
- vipCommonService.levelUp(orderId);
+ aiKnowledgeFileService.getAddKnowledge(id);
} catch (Exception e) {
- log.error("会员升级消息异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.SALE_LEVEL_UP)
- public void saleLevelUp(Long orderId) {
- log.info("收到团长升级:{}", orderId);
- try {
- vipCommonService.saleLevelUp(orderId);
- } catch (Exception e) {
- log.error("团长升级消息异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.ACTIVITY_ORDER_ITEM_CHECK)
- public void checkActivityItem(Long orderId) {
- log.info("收到核销活动门票:{}", orderId);
- try {
- happyActivityService.checkActivityItem(orderId);
- } catch (Exception e) {
- log.error("核销活动门票异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.CLOTHES_ADD_LIKE)
- public void getAddLike(Long socialId) {
- log.info("点赞:{}", socialId);
- try {
- happyActivityService.getAddLike(socialId);
- } catch (Exception e) {
- log.error("点赞异常", e);
- }
- }
-
- @RabbitListener(queues = QueueConstants.CLOTHES_ADD_COLLECT)
- public void getAddCollect(Long socialId) {
- log.info("收藏:{}", socialId);
- try {
- happyActivityService.getAddCollect(socialId);
- } catch (Exception e) {
- log.error("收藏异常", e);
+ log.error("知识库异常", e);
}
}
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index e2fe106..add94dd 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -7,6 +7,7 @@
public enum RabbitQueueEnum {
+ KNOWLEDGE_ADD_ALI("exchange_knowledge_add_ali", "route_key_knowledge_add_ali", QueueConstants.KNOWLEDGE_ADD_ALI),
CLOTHES_ADD_COLLECT("exchange_clothes_add_collect", "route_key_clothes_add_collect", QueueConstants.CLOTHES_ADD_COLLECT),
CLOTHES_ADD_LIKE("exchange_clothes_add_like", "route_key_clothes_add_like", QueueConstants.CLOTHES_ADD_LIKE),
ACTIVITY_ORDER_ITEM_CHECK("exchange_activity_order_item_check", "route_key_activity_order_item_check", QueueConstants.ACTIVITY_ORDER_ITEM_CHECK),
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index 1bdfed6..32d18c2 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -136,4 +136,15 @@
CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend(RabbitQueueEnum.CLOTHES_ADD_COLLECT.getExchange(), RabbitQueueEnum.CLOTHES_ADD_COLLECT.getRoute(), socialId, correlationData);
}
+
+ public void sendAddKnowledge(String id) {
+ log.info("知识库:{}", id);
+
+ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+ rabbitTemplate.convertAndSend(
+ RabbitQueueEnum.CLOTHES_ADD_COLLECT.getExchange(),
+ RabbitQueueEnum.CLOTHES_ADD_COLLECT.getRoute(),
+ id,
+ correlationData);
+ }
}
--
Gitblit v1.9.1