From 1fb23cbeeaaeda0a66cf8fe8977c3f5915743cc7 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期五, 21 十月 2022 15:13:10 +0800
Subject: [PATCH] Merge branch 'zigonggao_dev' into huacheng_test

---
 flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java |  150 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 105 insertions(+), 45 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
index a92723e..ef4f73f 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
@@ -21,13 +21,15 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class TransactionEventImpl extends ServiceImpl<TransactionEventMapper, TransactionEvent> implements ITransactionEventService {
 
     @Resource
-    private   OrganizationChartMapper organizationChartMapper;
+    private OrganizationChartMapper organizationChartMapper;
 
     @Resource
     private KeywordMapper keywordMapper;
@@ -36,34 +38,42 @@
     private AutomessageTransactionEventInterviewMapper automessageTransactionEventInterviewMapper;
 
     @Override
-    public TransactionEvent selectConfigData(String Id,SysUser sysUser) {
+    public TransactionEvent selectConfigData(String Id, SysUser sysUser) {
         TransactionEvent transactionEvent = baseMapper.selectConfigData(Id);
-        LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
-        LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
-        AutomessageTransactionEventInterview automessageTransactionEventInterview = automessageTransactionEventInterviewMapper.selectOne(new QueryWrapper<AutomessageTransactionEventInterview>()
-                .lambda().eq(AutomessageTransactionEventInterview::getTransactionEventId, Id)
-                .eq(AutomessageTransactionEventInterview::getUserId, sysUser.getUserId())
-                .orderByDesc(AutomessageTransactionEventInterview::getInterviewTime)
-                .last("limit 1"));
-        transactionEvent.setQueryTime(LocalDateTime.now());
-        //判断上次访问时间是不是今天 如果
-        if (automessageTransactionEventInterview==null||(!(transactionEvent.getQueryTime().isAfter(startTime)&&transactionEvent.getQueryTime().isBefore(endTime)))) {
-            transactionEvent.setBrowseNum(transactionEvent.getBrowseNum()+1);
-            baseMapper.updateById(transactionEvent);
-            AutomessageTransactionEventInterview automessageTransactionEventInterviewNew =
-                    new AutomessageTransactionEventInterview();
-            automessageTransactionEventInterviewNew.setTransactionEventId(Integer.valueOf(Id));
-            automessageTransactionEventInterviewNew.setUserId(new Long(sysUser.getUserId()));
-            automessageTransactionEventInterviewNew.setInterviewTime(LocalDateTime.now());
-            automessageTransactionEventInterviewMapper.insert(automessageTransactionEventInterviewNew);
+        //如果当前没有登录用户则不增加浏览次数
+        if (sysUser != null) {
+            LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
+            LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
+            AutomessageTransactionEventInterview automessageTransactionEventInterview = automessageTransactionEventInterviewMapper.selectOne(new QueryWrapper<AutomessageTransactionEventInterview>()
+                    .lambda().eq(AutomessageTransactionEventInterview::getTransactionEventId, Id)
+                    .eq(AutomessageTransactionEventInterview::getUserId, sysUser.getUserId())
+                    .orderByDesc(AutomessageTransactionEventInterview::getInterviewTime)
+                    .last("limit 1"));
+            transactionEvent.setQueryTime(LocalDateTime.now());
+            //判断上次访问时间是不是今天 如果是今天不增加浏览次数
+            if (automessageTransactionEventInterview == null || (!(transactionEvent.getQueryTime().isAfter(startTime) && transactionEvent.getQueryTime().isBefore(endTime)))) {
+                transactionEvent.setBrowseNum(transactionEvent.getBrowseNum() + 1);
+                baseMapper.updateById(transactionEvent);
+                AutomessageTransactionEventInterview automessageTransactionEventInterviewNew =
+                        new AutomessageTransactionEventInterview();
+                automessageTransactionEventInterviewNew.setTransactionEventId(Integer.valueOf(Id));
+                automessageTransactionEventInterviewNew.setUserId(new Long(sysUser.getUserId()));
+                automessageTransactionEventInterviewNew.setInterviewTime(LocalDateTime.now());
+                automessageTransactionEventInterviewMapper.insert(automessageTransactionEventInterviewNew);
+            }
         }
         return transactionEvent;
     }
 
     @Override
     public List<TransactionEvent> selectConfigList(IPage<TransactionEvent> page, Integer state,
-                                                   String matterAndUser, String classifyGrade) {
-        return baseMapper.selectConfigList(page,  state, matterAndUser, classifyGrade);
+                                                   String keyword, String classifyGrade, List<String> ids) {
+        return baseMapper.selectConfigList(page, state, keyword, classifyGrade, ids);
+    }
+
+    @Override
+    public List<TransactionEvent> selectConfigList(String keyword, String classifyGrade, List<String> ids) {
+        return baseMapper.selectConfigList(keyword, classifyGrade, ids);
     }
 
     @Override
@@ -82,19 +92,40 @@
     }
 
     @Override
-    public int countNum(String matterAndUser,String classifyGrade) {
-        return baseMapper.countNum( matterAndUser, classifyGrade);
+    public int countNum(String matterAndUser, String classifyGrade, List<String> ids) {
+        return baseMapper.countNum(matterAndUser, classifyGrade, ids);
     }
 
     @Override
-    public QueryResults queryMatterNameList(IPage<Search> page,Integer state, Integer recommendSize,String keyWord) {
+    public QueryResults queryMatterNameList(IPage<Search> page, Integer state, Integer recommendSize, String keyWord) {
         QueryResults queryResults = new QueryResults();
         List<Search> searches = baseMapper.selectSearch(page, state, keyWord);
         queryResults.setSearchList(searches);
         List<Search> searchesAssociate = baseMapper.selectSearchAssociate(page, recommendSize, keyWord);
         queryResults.setTransactionEventList(searchesAssociate);
-        queryResults.setKeywordEntityList( keywordMapper.selectByName(keyWord));
-        queryResults.setTotal((baseMapper.selectSearch(keyWord).size())+(baseMapper.selectSearchAssociate(keyWord).size()));
+        queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord));
+        queryResults.setTotal((baseMapper.selectSearch(keyWord).size()) + (baseMapper.selectSearchAssociate(keyWord).size()));
+        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null);
+        List<String> list = new ArrayList<>();
+        for (TransactionEvent transactionEvent : transactionEventEntities) {
+            if (transactionEvent.getAssociateNames() != null) {
+                String[] associateNames = transactionEvent.getAssociateNames().split(",");
+                for (String associateName : associateNames) {
+                    list.add(associateName);
+                }
+            }
+        }
+        List<KeywordEntity> keywordEntityList = new ArrayList<>();
+
+        String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重
+        for (String keyword : keywords) {
+            if (keyword != null && !keyword.equals("")) {
+                KeywordEntity keywordEntity = new KeywordEntity();
+                keywordEntity.setName(keyword);
+                keywordEntityList.add(keywordEntity);
+            }
+        }
+        queryResults.setKeywordAssociationList(keywordEntityList);
         return queryResults;
     }
 
@@ -102,28 +133,46 @@
     public QueryResults queryMatterNameList(String keyWord) {
         QueryResults queryResults = new QueryResults();
         List<Search> searches = baseMapper.selectSearchList(keyWord);
+        for (Search search : searches) {
+            search.setTransactionEventList(baseMapper.queryMatterNameList(keyWord, search.getClassifyId().toString()));
+        }
         queryResults.setSearchList(searches);
-        List<Search> searchesAssociate = baseMapper.selectSearchAssociate(keyWord);
+        List<Search> searchesAssociate = baseMapper.selectSearchAssociateDistinct(keyWord);
+        for (Search search : searchesAssociate) {
+            search.setTransactionEventList(baseMapper.queryAssociateNamesList(keyWord, search.getClassifyId().toString()));
+        }
         queryResults.setTransactionEventList(searchesAssociate);
-        queryResults.setKeywordEntityList( keywordMapper.selectByName(keyWord));
+        queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord));
         return queryResults;
     }
 
 
     @Override
-    public RecommendResult smartConsulting(String keyWord){
-        RecommendResult recommendResult=new RecommendResult();
-        List<KeywordEntity> keywordEntityList=new ArrayList<>();
-        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord);
+    public RecommendResult smartConsulting(String keyWord) {
+        RecommendResult recommendResult = new RecommendResult();
+        List<KeywordEntity> keywordEntityList = new ArrayList<>();
+        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null);
+        List<TransactionEvent> transactionEvents = baseMapper.queryAssociateNamesList(keyWord, null);
         recommendResult.setTransactionEventList(transactionEventEntities);
-        for (TransactionEvent transactionEvent: transactionEventEntities) {
-            String[] associateNames = transactionEvent.getAssociateNames().split(",");
-            for (String  associateName: associateNames) {
+        List<String> list = new ArrayList<>();
+        for (TransactionEvent transactionEvent : transactionEvents) {
+//            直接返回办事指南名称
+            list.add(transactionEvent.getMatterName());
+//            遍历关键词列表 可能后面流程更改会遇到暂时保存代码;
+      /*      if (transactionEvent.getAssociateNames() != null) {
+                String[] associateNames = transactionEvent.getAssociateNames().split(",");
+                for (String associateName : associateNames) {
+                    list.add(associateName);
+                }
+            }*/
+        }
+        String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重
+        for (String keyword : keywords) {
+            if (keyword != null && !keyword.equals("")) {
                 KeywordEntity keywordEntity = new KeywordEntity();
-                keywordEntity.setName(associateName);
+                keywordEntity.setName(keyword);
                 keywordEntityList.add(keywordEntity);
             }
-
         }
         recommendResult.setKeywordEntityList(keywordEntityList);
         List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByKeyWord(keyWord);
@@ -132,18 +181,29 @@
     }
 
     @Override
+    public String selectDataIfExist(String departmentId, String matterName) {
+        return baseMapper.selectDataIfExist(departmentId, matterName);
+    }
+
+    @Override
+    public List<String> selectclassifyId(String classifyId) {
+        return baseMapper.selectclassifyId(classifyId);
+    }
+
+
+    @Override
     public int countNumByMatterName(String matterName) {
         return baseMapper.countNumByMatterName(matterName);
     }
 
     @Override
-    public List<TransactionEvent> queryByClassifyIdList(String classifyId,Integer departmentId) {
-        return baseMapper.queryByClassifyIdList(classifyId,departmentId);
+    public List<TransactionEvent> queryByClassifyIdList(String classifyId, Integer departmentId) {
+        return baseMapper.queryByClassifyIdList(classifyId, departmentId);
     }
 
     @Override
-    public List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state,String classifyId,Integer departmentId) {
-        return baseMapper.queryByClassifyIdList(page,state,classifyId,departmentId);
+    public List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state, String classifyId, Integer departmentId) {
+        return baseMapper.queryByClassifyIdList(page, state, classifyId, departmentId);
     }
 
     @Override
@@ -165,11 +225,11 @@
 
     @Override
     public int countNumByClassifyIdList(String classifyId, Integer departmentId) {
-        return baseMapper.countNumByClassifyIdList(classifyId,departmentId);
+        return baseMapper.countNumByClassifyIdList(classifyId, departmentId);
     }
 
     @Override
-    public List<TransactionEvent> selectList(){
-        return  baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda());
+    public List<TransactionEvent> selectList() {
+        return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda());
     }
 }

--
Gitblit v1.7.1