From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 21 八月 2021 16:35:14 +0800
Subject: [PATCH] 随手拍改版接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java |  344 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 314 insertions(+), 30 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
index 14a1d96..c055873 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
@@ -1,5 +1,6 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.util.ArrayList;
 import java.util.Date;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -60,6 +61,18 @@
 
     @Resource
     ComActNeighborCircleCommentReplyDAO neighborCircleCommentReplyDAO;
+    @Resource
+    private ComActNeighborCircleCommentDAO comActNeighborCircleCommentDAO;
+    @Resource
+    private ComActNeighborCircleCommentReplyDAO comActNeighborCircleCommentReplyDAO;
+    @Resource
+    private ComActNeighborCircleFabulousDAO comActNeighborCircleFabulousDAO;
+    @Resource
+    private ComActNeighborCircleBrowseDAO comActNeighborCircleBrowseDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActNeighborCircleTopicMapper comActNeighborCircleTopicMapper;
 
     /**
      * 分页查询邻里圈列表
@@ -70,6 +83,31 @@
     public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO){
         Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize());
         IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO);
+        if(!doPager.getRecords().isEmpty()){
+            for (ComActNeighborCircleAppVO circleAppVO:doPager.getRecords()) {
+                if(neighborCircleAppDTO.getUserId() != null){
+                    //查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                            new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleAppVO.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if(circleFabulousDO != null){
+                        circleAppVO.setHaveSign(1);
+                    }else{
+                        circleAppVO.setHaveSign(2);
+                    }
+                }
+
+                if(circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)){
+                    ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId());
+                    if(actDO != null){
+                        circleAppVO.setName(actDO.getName());
+                    }
+                }
+
+            }
+        }
         return R.ok(doPager);
     }
 
@@ -106,22 +144,86 @@
      */
     @Override
     public R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO){
-        //添加邻里圈浏览记录
-        comActNeighborCircleBrowseService.addBrowseRecord(neighborCircleAppDTO.getCircleId(),neighborCircleAppDTO.getUserId());
+
         //查询邻里圈详情
         ComActNeighborCircleDetailAppVO circleDetailAppVO = this.baseMapper.neighborDetailByApp(neighborCircleAppDTO.getCircleId());
+        if(circleDetailAppVO == null){
+            return R.fail("未找到邻里圈信息");
+        }
+
+        if(circleDetailAppVO.getType() != null && circleDetailAppVO.getType().equals(ComActNeighborCircleDO.type.admin)){
+            ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId());
+            if(actDO != null){
+                circleDetailAppVO.setName(actDO.getName());
+            }
+        }
+
+        if(neighborCircleAppDTO.getUserId() != null){
+            //查询邻里圈点赞信息
+            ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleDetailAppVO.getId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(circleFabulousDO != null){
+                circleDetailAppVO.setHaveSign(1);
+            }else{
+                circleDetailAppVO.setHaveSign(2);
+            }
+        }
+
+
         //查询邻里圈下评论列表
-        IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage = neighborCircleCommentDAO.pageNeighborCommentByApp(
+        IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage = comActNeighborCircleCommentDAO.pageNeighborCommentByApp(
                 new Page(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO);
         if(!circleCommentAppPage.getRecords().isEmpty()){
             for (ComActNeighborCircleCommentAppVO circleCommentVo:circleCommentAppPage.getRecords()) {
+
+                if(neighborCircleAppDTO.getUserId() != null){
+                    //查询点赞信息
+                    ComActNeighborCircleFabulousDO circleCommentFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                            new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleCommentVo.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.pl)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if(circleCommentFabulousDO != null){
+                        circleCommentVo.setHaveSign(1);
+                    }else{
+                        circleCommentVo.setHaveSign(2);
+                    }
+                }
+
                 //查询评论下评论回复
-                List<ComActNeighborCircleCommentReplyAppVO> commentReplyAppVOS = neighborCircleCommentReplyDAO.getCircleCommentReplyList(circleCommentVo.getId());
+                List<ComActNeighborCircleCommentReplyAppVO> commentReplyAppVOS = comActNeighborCircleCommentReplyDAO.getCircleCommentReplyList(circleCommentVo.getId());
                 if(!commentReplyAppVOS.isEmpty()){
-                    circleCommentVo.setCircleCommentReplyAppList(commentReplyAppVOS);
+                    List<ComActNeighborCircleCommentReplyAppVO> newCommentReplyAppVOS = new ArrayList<>();
+                    if(neighborCircleAppDTO.getUserId() != null){
+                        int i = 0;
+                        for (ComActNeighborCircleCommentReplyAppVO commentReplyVO:commentReplyAppVOS) {
+                            if(i >= 2){
+                                break;
+                            }
+                            //查询点赞信息
+                            ComActNeighborCircleFabulousDO circleReplyFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,commentReplyVO.getId())
+                                            .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId())
+                                            .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf)
+                                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+                            if(circleReplyFabulousDO != null){
+                                commentReplyVO.setHaveSign(1);
+                            }else{
+                                commentReplyVO.setHaveSign(2);
+                            }
+                            newCommentReplyAppVOS.add(commentReplyVO);
+                            i++;
+                        }
+                    }
+                    circleCommentVo.setCircleCommentReplyAppList(newCommentReplyAppVOS);
+                    circleCommentVo.setCommentReplyNum(commentReplyAppVOS.size());
                 }
             }
         }
+        circleDetailAppVO.setCircleCommentAppList(circleCommentAppPage.getRecords());
         return R.ok(circleDetailAppVO);
     }
 
@@ -129,6 +231,11 @@
     public R pageNeighborByAdmin(ComActNeighborCircleAdminDTO neighborCircleAdminDTO) {
         Page page = new Page(neighborCircleAdminDTO.getPageNum(), neighborCircleAdminDTO.getPageSize());
         IPage<ComActNeighborCircleAdminVO> doPager = this.baseMapper.pageNeighborByAdmin(page, neighborCircleAdminDTO);
+        doPager.getRecords().forEach(data->{
+            if(data.getUserType()!=1){
+                data.setReleaseName(data.getCommunityName());
+            }
+        });
         return R.ok(doPager);
     }
 
@@ -144,7 +251,8 @@
         comActNeighborCircleDO.setCommunityId(adminUser.getCommunityId());
         comActNeighborCircleDO.setReleaseContent(addVO.getReleaseContent());
         comActNeighborCircleDO.setReleaseImages(addVO.getReleaseImages());
-        comActNeighborCircleDO.setStatus(1);
+        comActNeighborCircleDO.setType(2);
+        comActNeighborCircleDO.setStatus(2);
         comActNeighborCircleDO.setCommentNum(0);
         comActNeighborCircleDO.setFabulousNum(0);
         comActNeighborCircleDO.setForwardNum(0);
@@ -169,7 +277,7 @@
             neighborCircleDO.setRefuseReason(editVO.getRefuseReason());
         }
         this.baseMapper.updateById(neighborCircleDO);
-        return R.ok();
+        return R.ok(neighborCircleDO.getReleaseId());
     }
 
     /**
@@ -181,6 +289,21 @@
     public R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO){
         IPage<ComActNeighborCircleAppVO> neighborCircleIPage = this.baseMapper.neighborExamineByApp(
                 new Page<>(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO.getUserId());
+        if(!neighborCircleIPage.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : neighborCircleIPage.getRecords()) {
+                //查询点赞信息
+                ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                        new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId())
+                                .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                                .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                                .eq(ComActNeighborCircleFabulousDO::getIsEffective, ComActNeighborCircleFabulousDO.isEffective.yes));
+                if (circleFabulousDO != null) {
+                    circleAppVO.setHaveSign(1);
+                } else {
+                    circleAppVO.setHaveSign(2);
+                }
+            }
+        }
         return R.ok(neighborCircleIPage);
     }
 
@@ -199,34 +322,58 @@
         circleFabulousDO.setParentId(fabulousAppDTO.getServiceId());
         //判断点赞类型
         if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)){
+
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.llq)
+                            .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)
+                            .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId()));
+            if(oldCircleFabulousDO != null){
+                return R.fail("您已点赞");
+            }
+
             //增加邻里圈点赞数量
             ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
             if(neighborCircleDO != null){
                 neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() + 1);
+                neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1);
                 this.baseMapper.updateById(neighborCircleDO);
                 circleFabulousDO.setCircleId(neighborCircleDO.getId());
             }
-
             //添加邻里圈浏览记录
             comActNeighborCircleBrowseService.addBrowseRecord(fabulousAppDTO.getServiceId(),fabulousAppDTO.getUserId());
         }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)){
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.pl)
+                            .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(oldCircleFabulousDO != null){
+                return R.fail("您已点赞");
+            }
             //增加邻里圈评论点赞数量
-            ComActNeighborCircleCommentDO circleCommentDO = neighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId());
+            ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId());
             if(circleCommentDO != null){
                 circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1);
-                neighborCircleCommentDAO.updateById(circleCommentDO);
+                comActNeighborCircleCommentDAO.updateById(circleCommentDO);
                 circleFabulousDO.setCircleId(circleCommentDO.getCircleId());
             }
         }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)){
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.hf)
+                            .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(oldCircleFabulousDO != null){
+                return R.fail("您已点赞");
+            }
             //增加邻里圈评论回复点赞数量
-            ComActNeighborCircleCommentReplyDO circleCommentReplyDO = neighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId());
+            ComActNeighborCircleCommentReplyDO circleCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId());
             if(circleCommentReplyDO != null){
                 circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() + 1);
-                neighborCircleCommentReplyDAO.updateById(circleCommentReplyDO);
+                comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO);
                 circleFabulousDO.setCircleId(circleCommentReplyDO.getCircleId());
             }
         }
-        if(neighborCircleFabulousDAO.insert(circleFabulousDO) > 0){
+        if(comActNeighborCircleFabulousDAO.insert(circleFabulousDO) > 0){
             return R.ok();
         }else{
             return R.fail("点赞失败");
@@ -241,8 +388,10 @@
     @Override
     public R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO){
 
-        //添加邻里圈浏览记录
-        comActNeighborCircleBrowseService.addBrowseRecord(forwardAppDTO.getCircleId(),forwardAppDTO.getUserId());
+        if(forwardAppDTO.getUserId() != null){
+            //添加邻里圈浏览记录
+            comActNeighborCircleBrowseService.addBrowseRecord(forwardAppDTO.getCircleId(),forwardAppDTO.getUserId());
+        }
 
         ComActNeighborCircleDO circleDO = this.baseMapper.selectById(forwardAppDTO.getCircleId());
         if(circleDO == null){
@@ -283,7 +432,7 @@
             circleCommentDO.setIsRelease(ComActNeighborCircleCommentDO.isRelease.yes);
         }
 
-        if(neighborCircleCommentDAO.insert(circleCommentDO) > 0){
+        if(comActNeighborCircleCommentDAO.insert(circleCommentDO) > 0){
             return R.ok();
         }else{
             return R.fail("评论失败");
@@ -318,7 +467,7 @@
         //判断回复类型
         if(replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.pl)){
             //查询评论信息
-            ComActNeighborCircleCommentDO circleCommentDO = neighborCircleCommentDAO.selectById(replyAppDTO.getServiceId());
+            ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(replyAppDTO.getServiceId());
             if(circleCommentDO != null){
                 circleCommentReplyDO.setCommentId(replyAppDTO.getServiceId());
                 circleCommentReplyDO.setParentId(0L);
@@ -326,7 +475,7 @@
             }
         }else if(replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.hf)){
             //查询上级回复信息
-            ComActNeighborCircleCommentReplyDO parentCommentReplyDO = neighborCircleCommentReplyDAO.selectById(replyAppDTO.getServiceId());
+            ComActNeighborCircleCommentReplyDO parentCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(replyAppDTO.getServiceId());
             if(parentCommentReplyDO != null){
                 circleCommentReplyDO.setCommentId(parentCommentReplyDO.getCommentId());
                 circleCommentReplyDO.setParentId(parentCommentReplyDO.getId());
@@ -334,7 +483,7 @@
             }
         }
 
-        if(neighborCircleCommentReplyDAO.insert(circleCommentReplyDO) > 0){
+        if(comActNeighborCircleCommentReplyDAO.insert(circleCommentReplyDO) > 0){
             return R.ok();
         }else{
             return R.fail("回复失败");
@@ -351,20 +500,24 @@
             //遍历查询到的邻里圈,更新邻里圈内近3天的评论数,点赞数,浏览量
             for (ComActNeighborCircleDO neighborCircleDO:circleDOList) {
                 //查询邻里圈近3天的评论数
-                int commentCount = neighborCircleCommentDAO.selectCount(
+                int commentCount = comActNeighborCircleCommentDAO.selectCount(
                         new QueryWrapper<ComActNeighborCircleCommentDO>().lambda().eq(ComActNeighborCircleCommentDO::getCircleId,neighborCircleDO.getId()));
                 //查询邻里圈近3天的评论回复数
-                int commentReplyCount = neighborCircleCommentReplyDAO.selectCount(
+                int commentReplyCount = comActNeighborCircleCommentReplyDAO.selectCount(
                         new QueryWrapper<ComActNeighborCircleCommentReplyDO>().lambda()
                                 .eq(ComActNeighborCircleCommentReplyDO::getCircleId,neighborCircleDO.getId()));
-
                 //查询邻里圈近3天的点赞数
-                int fabulousCount = neighborCircleFabulousDAO.selectCount(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                int fabulousCount = comActNeighborCircleFabulousDAO.selectCount(new QueryWrapper<ComActNeighborCircleFabulousDO>()
                         .lambda().eq(ComActNeighborCircleFabulousDO::getCircleId,neighborCircleDO.getId())
                         .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
-
                 //查询邻里圈近3天的浏览量
-
+                int browseCount = comActNeighborCircleBrowseDAO.selectCount(
+                        new QueryWrapper<ComActNeighborCircleBrowseDO>().lambda().eq(ComActNeighborCircleBrowseDO::getNeighborId,neighborCircleDO.getId()));
+                //更新邻里圈信息
+                neighborCircleDO.setLastCommentNum(commentCount + commentReplyCount);
+                neighborCircleDO.setLastFabulousNum(fabulousCount);
+                neighborCircleDO.setLastViewsNum(browseCount);
+                this.baseMapper.updateById(neighborCircleDO);
             }
         }
 
@@ -391,9 +544,9 @@
         //邻里圈浏览器记录
         neighborCircleBrowseDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleBrowseDO>()
                 .eq(ComActNeighborCircleBrowseDO::getNeighborId, id));
-        //邻里圈点赞删除 需要一层一层删
-/*        neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>()
-                .eq(ComActNeighborCircleFabulousDO::get))*/
+        //邻里圈点赞删除
+        neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>()
+                .eq(ComActNeighborCircleFabulousDO::getCircleId,id));
         return R.ok();
 
     }
@@ -401,13 +554,19 @@
     @Override
     public R detailNeighborByAdmin(Long id) {
         ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(id);
-        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getReleaseId());
         if (comActNeighborCircleDO == null) {
             return R.fail("id有误");
         }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getReleaseId());
         DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO();
         BeanUtils.copyProperties(comActNeighborCircleDO, vo);
         vo.setReleaseName(user.getName());
+
+        //查询话题名称
+        if(comActNeighborCircleDO.getTopicId() != null){
+            ComActNeighborCircleTopicDO circleTopicDO = comActNeighborCircleTopicMapper.selectById(comActNeighborCircleDO.getTopicId());
+            vo.setTopicName(circleTopicDO.getName());
+        }
         return R.ok(vo);
     }
 
@@ -431,6 +590,17 @@
         }
         commentDO.setStatus(dto.getStatus());
         neighborCircleCommentDAO.updateById(commentDO);
+
+        //查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(commentDO.getCircleId());
+        if(neighborCircleDO != null){
+            if(dto.getStatus().equals(2)){
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() - 1);
+            }else{
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
+            }
+            this.baseMapper.updateById(neighborCircleDO);
+        }
         return R.ok();
     }
 
@@ -443,7 +613,8 @@
         AdministratorsUserVO user = this.baseMapper.selectUserByUserId(commentDO.getUserId());
         ComActNeighborCommentByAdminVO vo = new ComActNeighborCommentByAdminVO();
         BeanUtils.copyProperties(commentDO,vo);
-        vo.setUserName(user.getName());
+        String name = user.getName()==null?user.getNickName():user.getName();
+        vo.setUserName(name);
         return R.ok(vo);
     }
 
@@ -481,4 +652,117 @@
         neighborCircleCommentReplyDAO.updateById(replyDO);
         return R.ok();
     }
+
+    /**
+     * 邻里圈取消点赞
+     * @param fabulousAppDTO    请求参数
+     * @return  取消点赞结果
+     */
+    @Override
+    public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO){
+        ComActNeighborCircleFabulousDO circleFabulousDO = null;
+        //查询邻里圈点赞信息
+        if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)){
+            //查询点赞信息
+            circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(circleFabulousDO == null){
+                return R.fail("未查询到点赞信息");
+            }
+
+            //减少邻里圈点赞数量
+            ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
+            if(neighborCircleDO != null){
+                neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() - 1);
+                this.baseMapper.updateById(neighborCircleDO);
+            }
+        }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)){
+            circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.pl)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(circleFabulousDO == null){
+                return R.fail("未查询到点赞信息");
+            }
+
+            //减少邻里圈评论点赞数量
+            ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId());
+            if(circleCommentDO != null){
+                circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() - 1);
+                comActNeighborCircleCommentDAO.updateById(circleCommentDO);
+            }
+        }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)){
+            circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                    new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+            if(circleFabulousDO == null){
+                return R.fail("未查询到点赞信息");
+            }
+            //减少邻里圈评论回复点赞数量
+            ComActNeighborCircleCommentReplyDO circleCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId());
+            if(circleCommentReplyDO != null){
+                circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() - 1);
+                comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO);
+            }
+        }
+        if(circleFabulousDO != null){
+            circleFabulousDO.setIsEffective(ComActNeighborCircleFabulousDO.isEffective.no);
+            comActNeighborCircleFabulousDAO.updateById(circleFabulousDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 添加邻里圈浏览记录
+     * @param addBrowseAppDTO   请求参数
+     * @return  返回参数
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO){
+        //添加邻里圈浏览记录
+        comActNeighborCircleBrowseService.addBrowseRecord(addBrowseAppDTO.getCircleId(),addBrowseAppDTO.getUserId());
+        //更新邻里圈记录
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(addBrowseAppDTO.getCircleId());
+        if(neighborCircleDO != null){
+            neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1);
+            this.baseMapper.updateById(neighborCircleDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询评论下所有回复
+     * @param commentReplyAppDTO    请求参数
+     * @return  回复列表
+     */
+    @Override
+    public R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO){
+        IPage<ComActNeighborCommentReplyAppVO> neighborCircleIPage = this.baseMapper.neighborCommentReplyByApp(
+                new Page<>(commentReplyAppDTO.getPageNum(),commentReplyAppDTO.getPageSize()),commentReplyAppDTO.getCommentId());
+        if(!neighborCircleIPage.getRecords().isEmpty()){
+            for (ComActNeighborCommentReplyAppVO commentReplyAppVO:neighborCircleIPage.getRecords()) {
+                if(commentReplyAppDTO.getUserId() != null){
+                    //查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne(
+                            new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,commentReplyAppVO.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId,commentReplyAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if(circleFabulousDO != null){
+                        commentReplyAppVO.setHaveSign(1);
+                    }else{
+                        commentReplyAppVO.setHaveSign(2);
+                    }
+                }
+            }
+        }
+        return R.ok(neighborCircleIPage);
+    }
 }

--
Gitblit v1.7.1