From 43f0578e80af82ecae6c61b51bd0539c6b960603 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期二, 16 八月 2022 19:08:32 +0800
Subject: [PATCH] 服务范围优化

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
index b92b1c1..4069f73 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -317,6 +317,11 @@
             }
         });
         comActDiscussVO.setDiscussCommentList(discussComments.getRecords());
+        String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+        if (stringRedisTemplate.hasKey(viewNumKey)) {
+            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+            comActDiscussVO.setViewsNum(Integer.parseInt(opsForValue.get(viewNumKey)));
+        }
         return R.ok(comActDiscussVO);
     }
 
@@ -397,7 +402,19 @@
      */
     @Override
     public R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO) {
-        return R.ok(comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO));
+        IPage<ComActDiscussVO> comActDiscussVOIPage=comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO);
+        List<ComActDiscussVO> records = comActDiscussVOIPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDiscussVO -> {
+                Long id = comActDiscussVO.getId();
+                String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+                if (stringRedisTemplate.hasKey(viewNumKey)) {
+                    ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+                    comActDiscussVO.setViewsNum(Integer.parseInt(opsForValue.get(viewNumKey)));
+                }
+            });
+        }
+        return R.ok(comActDiscussVOIPage);
     }
 
     /**
@@ -978,13 +995,9 @@
             comActDiscussOptionUserDO.setUserId(userId);
             comActDiscussOptionUserDO.setDiscussOptionId(optionId);
             comActDiscussOptionUserDO.setDiscussId(discussId);
-            comActDiscussOptionUserDOList.add(comActDiscussOptionUserDO);
+            comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
         });
-        int result = comActDiscussOptionUserDAO.batchInsert(comActDiscussOptionUserDOList);
-        if (result > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return R.ok();
     }
 
     /**
@@ -1297,11 +1310,13 @@
                 //组装viewNum key
                 List<String> viewNumKeys = new ArrayList<>();
                 Iterator<String> iterator = needWriteDiscussIdSet.iterator();
-                List<String> idList = null;
+                List<String> idList = new ArrayList<>();
                 while (iterator.hasNext()) {
-                    idList = Arrays.asList(iterator.next().split(","));
-                    if (nonNull(idList) && !idList.isEmpty()) {
-                        idList.forEach(discussId -> viewNumKeys.add(String.join("_", DISCUSS_VIEW_NUM_PREFIX, discussId)));
+                    String next = iterator.next();
+                    String key = String.join("_", DISCUSS_VIEW_NUM_PREFIX, next);
+                    if (stringRedisTemplate.hasKey(key)) {
+                        idList.add(next);
+                        viewNumKeys.add(key);
                     }
                 }
 
@@ -1311,11 +1326,14 @@
                 //待处理集合,以key-value/discussId-viewNum 存放
                 HashMap<Long, Integer> needDealMap = new HashMap<>();
                 if (nonNull(idList) && !idList.isEmpty()) {
+                    log.error("一起议id列表:" + idList.toString());
+                    log.error("一起议浏览量:" + viewNumList.toString());
                     for (String discussId : idList) {
                         try {
                             needDealMap.put(Long.parseLong(discussId), Integer.parseInt(viewNumList.get(0)));
                             viewNumList.remove(0);
                         } catch (IndexOutOfBoundsException e) {
+                            log.error("数据异常:" + discussId, e.getMessage());
                             //数据存在异常了,跳过,继续执行正确的
                             continue;
                         }

--
Gitblit v1.7.1