Browse Source

询盘消费修复

chenlei1231 4 months ago
parent
commit
6c752429a5

+ 5 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/enquiry/service/impl/AdwebEnquiryServiceImpl.java

@@ -284,7 +284,7 @@ public class AdwebEnquiryServiceImpl extends ServiceImpl<AdwebEnquiryMapper, Adw
 
             // 防止redis 唯一键存储过大,并始终更新
             enquiryUniqueIds.remove(enquiryUniqueIds.size() - 1); // 移除第一个唯一键
-            enquiryUniqueIds.add(target.getSiteHost() + ">>>" + target.getRecordId()); // 添加最新的唯一键
+            enquiryUniqueIds.add(target.getSiteHost() + target.getRecordId()); // 添加最新的唯一键
 
             adwebRedisUtil.set(EnquiryUniqueKey + target.getSiteHost(), enquiryUniqueIds, 60 * 60 * 24);
 
@@ -293,7 +293,8 @@ public class AdwebEnquiryServiceImpl extends ServiceImpl<AdwebEnquiryMapper, Adw
             List<EnquiryDTO> enquiryList = this.enquiryList(target.getSiteCode(), DateUtil.formatDate(start, DateUtil.DATE_TIME_FORMAT), DateUtil.formatDate(new Date(), DateUtil.DATE_TIME_FORMAT));
 
             if (enquiryList != null) {
-                List<String> enquiryUniqueIds = enquiryList.stream().map(enquiry -> enquiry.getSiteHost() + ">>>" + enquiry.getRecordId()).toList();
+                List<String> enquiryUniqueIds = enquiryList.stream().map(enquiry -> enquiry.getSiteHost() + enquiry.getRecordId()).collect(Collectors.toList());
+
                 adwebRedisUtil.set(EnquiryUniqueKey + target.getSiteHost(), enquiryUniqueIds, 60 * 60 * 24);
             }
         }
@@ -307,11 +308,10 @@ public class AdwebEnquiryServiceImpl extends ServiceImpl<AdwebEnquiryMapper, Adw
             log.error("站点为:{},  recordId为:{} 保存询盘到数据库失败,原因是:{}", adwebSite.getName(), enquiryDto.getRecordId(), e.getMessage());
         }
 
-        // 给该站点所属的用户发送消息
+        // 给该站点所属的用户发送消息 // TODO 更改为站内信 和 websocket 通知
         AdwebSite targetSite = adwebSiteService.getSiteByCode(target.getSiteCode());
         SysUser sysUser = sysUserService.getUserByName("admin");
-        SysUser demouser = sysUserService.getUserByName("adwebdemo");
-        String[] userIds = {targetSite.getUid(), sysUser.getId(), demouser.getId()};
+        String[] userIds = {targetSite.getUid(), sysUser.getId()};
 
         // TODO 之后仅对有效询盘进行发送消息通知
         webSocketService.sendMessage(userIds, "您已经收到询盘,请尽快处理", WebsocketConst.CMD_ENQUIRY);

+ 10 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mq/EnquiryReceiver.java

@@ -2,7 +2,6 @@ package org.jeecg.modules.mq;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.rabbitmq.client.Channel;
-import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.boot.starter.rabbitmq.core.BaseRabbiMqHandler;
 import org.jeecg.boot.starter.rabbitmq.listenter.MqListener;
@@ -38,7 +37,7 @@ public class EnquiryReceiver extends BaseRabbiMqHandler<EnquiryDTO> {
     @Autowired
     private IAdwebEnquiryService adwebEnquiryService;
 
-    @Resource
+    @Autowired
     private AdwebRedisUtil adwebRedisUtil;
 
     @RabbitHandler
@@ -62,7 +61,8 @@ public class EnquiryReceiver extends BaseRabbiMqHandler<EnquiryDTO> {
                             // 消息内容唯一性判断
                             List<String> enquiryUniqueIds = (List<String>) adwebRedisUtil.get(EnquiryUniqueKey + enquiry.getSiteHost());
                             // 如果该消息内容原数据中已存在,则将该重复消息踢出队列
-                            if (enquiryUniqueIds.contains(enquiry.getSiteHost() + ">>>" + enquiry.getRecordId())) {
+                            if (enquiryUniqueIds.contains(enquiry.getSiteHost() + enquiry.getRecordId())) {
+                                log.info("该询盘已经消费过,从队列中清除:{}", enquiry.getRecordId());
                                 try {
                                     channel.basicAck(deliveryTag, false);
                                 } catch (IOException e) {
@@ -86,9 +86,13 @@ public class EnquiryReceiver extends BaseRabbiMqHandler<EnquiryDTO> {
                             return;
                         }
 
-                        // 询盘入库
-                        adwebEnquiryService.addEnquiry(
-                                enquiry, enquiry.getPluginName(), adwebSites);
+                        try {
+                            // 询盘入库
+                            adwebEnquiryService.addEnquiry(
+                                    enquiry, enquiry.getPluginName(), adwebSites);
+                        } catch (Exception e) {
+                            log.error("询盘入库异常:{}", e.getMessage());
+                        }
                     }
                 });
     }

+ 1 - 1
jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml

@@ -192,7 +192,7 @@ spring:
     port: 5672
     publisher-confirm-type: correlated
     publisher-returns: true
-    virtual-host: /adweb3-test
+    virtual-host: /adweb3-dev
 #mybatis plus 设置
 mybatis-plus:
   mapper-locations: classpath*:org/jeecg/**/xml/*Mapper.xml