huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -1,5 +1,18 @@
package com.panzhihua.service_community.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -17,17 +30,6 @@
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComActDiscussOptionService;
import com.panzhihua.service_community.service.ComActDiscussService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -55,29 +57,33 @@
    /**
     * 一起议-新增
     *
     * @param comActDiscussDTO 新增参数
     * @param comActDiscussDTO
     *            新增参数
     * @return 新增结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addDiscuss(ComActDiscussDTO comActDiscussDTO) {
        ComActDiscussDO comActDiscussDO=new ComActDiscussDO();
        BeanUtils.copyProperties(comActDiscussDTO,comActDiscussDO);
        ComActVO comActVO=comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
        ComActDiscussDO comActDiscussDO = new ComActDiscussDO();
        BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO);
        ComActVO comActVO = comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
        String address = comActDiscussDO.getAddress();
        if (ObjectUtils.isEmpty(address)) {
            comActDiscussDO.setAddress(comActVO.getAddress());
        }
        int insert = comActDiscussDAO.insert(comActDiscussDO);
        if (insert>0) {
            ComActDiscussDO comActDiscussDO1 = comActDiscussDAO.selectOne(new QueryWrapper<ComActDiscussDO>().lambda().eq(ComActDiscussDO::getDiscussSubject, comActDiscussDTO.getDiscussSubject()).eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId()).last(" order by create_at desc limit 1 "));
        if (insert > 0) {
            ComActDiscussDO comActDiscussDO1 = comActDiscussDAO.selectOne(new QueryWrapper<ComActDiscussDO>().lambda()
                .eq(ComActDiscussDO::getDiscussSubject, comActDiscussDTO.getDiscussSubject())
                .eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId())
                .last(" order by create_at desc limit 1 "));
            Long comActDiscussDO1Id = comActDiscussDO1.getId();
            Integer type = comActDiscussDTO.getType();
            if (type.equals(2)) {
                List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
                List<ComActDiscussOptionDO> comActDiscussOptionDOS=new ArrayList<>();
                List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
                discussOptions.forEach(s -> {
                    ComActDiscussOptionDO comActDiscussOptionDO=new ComActDiscussOptionDO();
                    ComActDiscussOptionDO comActDiscussOptionDO = new ComActDiscussOptionDO();
                    comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
                    comActDiscussOptionDO.setOptionContent(s.getOptionContent());
                    comActDiscussOptionDO.setOptionUrl(s.getOptionUrl());
@@ -93,7 +99,8 @@
    /**
     * 一起议-详情
     *
     * @param id 主键
     * @param id
     *            主键
     * @return ComActDiscussVO
     */
    @Override
@@ -102,21 +109,26 @@
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
        }
        ComActDiscussVO comActDiscussVO=new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO,comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(
            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        comActDiscussVO.setCommentNum(integer);
        Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        Integer integer1 = comActDiscussUserDAO
            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        Integer type = comActDiscussVO.getType();
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                Long discussOptionDOId = comActDiscussOptionDO.getId();
                Integer selectCount = comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO=new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO,comActDiscussOptionVO);
                Integer selectCount =
                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                comActDiscussOptionVO.setNum(selectCount);
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
@@ -124,7 +136,7 @@
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId);
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
        comActDiscussVO.setUserName(loginUserInfoVO.getName());
        return R.ok(comActDiscussVO);
@@ -133,20 +145,24 @@
    /**
     * 一起议-删除
     *
     * @param id 主键
     * @param id
     *            主键
     * @return 删除结果
     */
    @Override
    public R deleteDiscuss(Long id) {
        int delete = comActDiscussDAO.deleteById(id);
        if (delete>0) {
        if (delete > 0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-回复
     * @param comActDiscussCommentDTO 评论内容
     *
     * @param comActDiscussCommentDTO
     *            评论内容
     * @return 回复结果
     */
    @Override
@@ -156,15 +172,15 @@
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
        }
        ComActDiscussCommentDO comActDiscussCommentDO=new ComActDiscussCommentDO();
        BeanUtils.copyProperties(comActDiscussCommentDTO,comActDiscussCommentDO);
        ComActDiscussCommentDO comActDiscussCommentDO = new ComActDiscussCommentDO();
        BeanUtils.copyProperties(comActDiscussCommentDTO, comActDiscussCommentDO);
        Long userId = comActDiscussCommentDTO.getUserId();
        Long userId1 = comActDiscussDO.getUserId();
        if (userId.equals(userId1)) {
            comActDiscussCommentDO.setIsAuthor(1);
        }
        int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO);
        if (insert>0) {
        if (insert > 0) {
            return R.ok();
        }
        return R.fail();
@@ -173,7 +189,8 @@
    /**
     * 一起议-分页查询
     *
     * @param pageComActDiscussDTO 查询参数
     * @param pageComActDiscussDTO
     *            查询参数
     * @return ComActDiscussVO
     */
    @Override
@@ -181,10 +198,10 @@
        Page page = new Page<>();
        Long pageNum = pageComActDiscussDTO.getPageNum();
        Long pageSize = pageComActDiscussDTO.getPageSize();
        if (null==pageNum||0==pageNum) {
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null==pageSize||0==pageSize) {
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
@@ -197,7 +214,8 @@
    /**
     * 一起议-评论-查看
     *
     * @param id 主键
     * @param id
     *            主键
     * @return 详情 ComActDiscussCommentVO
     */
    @Override
@@ -206,21 +224,22 @@
        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
            return R.fail("评论不存在");
        }
        ComActDiscussCommentVO comActDiscussCommentVO=new ComActDiscussCommentVO();
        ComActDiscussCommentVO comActDiscussCommentVO = new ComActDiscussCommentVO();
        Long parentId = comActDiscussCommentDO.getParentId();
        if (parentId.intValue()==0) {
//            一级评论
            BeanUtils.copyProperties(comActDiscussCommentDO,comActDiscussCommentVO);
        }else {
        if (parentId.intValue() == 0) {
            // 一级评论
            BeanUtils.copyProperties(comActDiscussCommentDO, comActDiscussCommentVO);
        } else {
            ComActDiscussCommentDO comActDiscussCommentDO1 = comActDiscussCommentDAO.selectById(parentId);
            BeanUtils.copyProperties(comActDiscussCommentDO1,comActDiscussCommentVO);
            BeanUtils.copyProperties(comActDiscussCommentDO1, comActDiscussCommentVO);
            comActDiscussCommentVO.setCommentBack(comActDiscussCommentDO.getComment());
            comActDiscussCommentVO.setTimeBack(comActDiscussCommentDO.getCreateAt());
            comActDiscussCommentVO.setParentId(parentId);
        }
        Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda().eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
        Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
        comActDiscussCommentVO.setNum(count);
        LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
        comActDiscussCommentVO.setUserName(loginUserInfoVO.getName());
        comActDiscussCommentVO.setPhone(loginUserInfoVO.getPhone());
        return R.ok(comActDiscussCommentVO);
@@ -229,7 +248,8 @@
    /**
     * 一起议-评论-置顶
     *
     * @param id 主键
     * @param id
     *            主键
     * @return 置顶结果
     */
    @Override
@@ -239,17 +259,18 @@
            return R.fail("评论不存在");
        }
        Long parentId = comActDiscussCommentDO.getParentId();
        if (parentId.intValue()!=0) {
        if (parentId.intValue() != 0) {
            return R.fail("二级评论不能置顶");
        }
        Long discussId = comActDiscussCommentDO.getDiscussId();
        ComActDiscussCommentDO comActDiscussCommentDO1=new ComActDiscussCommentDO();
        ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
        comActDiscussCommentDO1.setIsTopping(0);
        comActDiscussCommentDAO.update(comActDiscussCommentDO1,new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId,discussId));
        comActDiscussCommentDAO.update(comActDiscussCommentDO1,
            new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
        comActDiscussCommentDO1.setIsTopping(1);
        comActDiscussCommentDO1.setId(id);
        int update = comActDiscussCommentDAO.updateById(comActDiscussCommentDO1);
        if (update>0) {
        if (update > 0) {
            return R.ok();
        }
        return R.fail();
@@ -258,7 +279,8 @@
    /**
     * 一起议-评论-回复
     *
     * @param comActDiscussCommentDTO 回复内容
     * @param comActDiscussCommentDTO
     *            回复内容
     * @return 回复结果
     */
    @Override
@@ -274,8 +296,8 @@
            return R.fail("一起议不存在");
        }
        Long userId = comActDiscussDO.getUserId();
        Long userId1=comActDiscussCommentDTO.getUserId();
        ComActDiscussCommentDO comActDiscussCommentDO1=new ComActDiscussCommentDO();
        Long userId1 = comActDiscussCommentDTO.getUserId();
        ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
        comActDiscussCommentDO1.setDiscussId(discussId);
        comActDiscussCommentDO1.setComment(comActDiscussCommentDTO.getComment());
        comActDiscussCommentDO1.setUserId(comActDiscussCommentDTO.getUserId());
@@ -284,7 +306,7 @@
            comActDiscussCommentDO1.setIsAuthor(1);
        }
        int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1);
        if (insert>0) {
        if (insert > 0) {
            return R.ok();
        }
        return R.fail();
@@ -293,7 +315,8 @@
    /**
     * 一起议-评论-分页查询
     *
     * @param pageComActDiscussCommentDTO 分页查询参数
     * @param pageComActDiscussCommentDTO
     *            分页查询参数
     * @return ComActDiscussCommentVO
     */
    @Override
@@ -301,10 +324,10 @@
        Page page = new Page<>();
        Long pageNum = pageComActDiscussCommentDTO.getPageNum();
        Long pageSize = pageComActDiscussCommentDTO.getPageSize();
        if (null==pageNum||0==pageNum) {
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null==pageSize||0==pageSize) {
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
@@ -316,7 +339,8 @@
    /**
     * 一起议-分页查询 小程序
     *
     * @param pageComActDiscussDTO 查询参数
     * @param pageComActDiscussDTO
     *            查询参数
     * @return ComActDiscussVO 分页
     */
    @Override
@@ -325,10 +349,10 @@
        Long pageNum = pageComActDiscussDTO.getPageNum();
        Long pageSize = pageComActDiscussDTO.getPageSize();
        Long loginUserId = pageComActDiscussDTO.getLoginUserId();
        if (null==pageNum||0==pageNum) {
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null==pageSize||0==pageSize) {
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
@@ -340,19 +364,23 @@
                Integer type = comActDiscussVO.getType();
                Long id = comActDiscussVO.getId();
                if (type.equals(2)) {
                    List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
                    List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                        new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
                    comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                        Long discussOptionDOId = comActDiscussOptionDO.getId();
                        Integer selectCount = comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                        ComActDiscussOptionVO comActDiscussOptionVO=new ComActDiscussOptionVO();
                        BeanUtils.copyProperties(comActDiscussOptionDO,comActDiscussOptionVO);
                        Integer selectCount =
                            comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>()
                                .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                        ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                        BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                        comActDiscussOptionVO.setNum(selectCount);
                        if(loginUserId != null){
                            //判断选项是否已投票
                            int haveVote=comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(),loginUserId);
                            comActDiscussOptionVO.setHaveVote(haveVote>0?1:0);
                        if (loginUserId != null) {
                            // 判断选项是否已投票
                            int haveVote =
                                comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                            comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                        }
                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
                    });
@@ -360,16 +388,18 @@
                    comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
                }
                if(loginUserId != null){
                    Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId()).eq(ComActDiscussUserDO::getUserId, loginUserId));
                    if (integer>0) {
                if (loginUserId != null) {
                    Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
                        .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId())
                        .eq(ComActDiscussUserDO::getUserId, loginUserId));
                    if (integer > 0) {
                        comActDiscussVO.setHaveSign(1);
                    }else{
                    } else {
                        comActDiscussVO.setHaveSign(0);
                    }
                    //判断是否已经投票
                    int haveVote=comActDiscussOptionUserDAO.selectHaveVote(id,loginUserId);
                    comActDiscussVO.setHaveVote(haveVote>0?1:0);
                    // 判断是否已经投票
                    int haveVote = comActDiscussOptionUserDAO.selectHaveVote(id, loginUserId);
                    comActDiscussVO.setHaveVote(haveVote > 0 ? 1 : 0);
                }
            });
        }
@@ -379,21 +409,24 @@
    /**
     * 一起议-点赞、取消点赞
     *
     * @param comActDiscussUserDTO 操作类型
     * @param comActDiscussUserDTO
     *            操作类型
     * @return 操作结果
     */
    @Override
    public R putDiscussUser(ComActDiscussUserDTO comActDiscussUserDTO) {
        Integer type = comActDiscussUserDTO.getType();
        int num=0;
        ComActDiscussUserDO comActDiscussUserDO=new ComActDiscussUserDO();
        BeanUtils.copyProperties(comActDiscussUserDTO,comActDiscussUserDO);
        if (type.intValue()==1) {
            num= comActDiscussUserDAO.insert(comActDiscussUserDO);
        }else{
            num= comActDiscussUserDAO.delete(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getUserId,comActDiscussUserDTO.getUserId()).eq(ComActDiscussUserDO::getDiscussId,comActDiscussUserDTO.getDiscussId()));
        int num = 0;
        ComActDiscussUserDO comActDiscussUserDO = new ComActDiscussUserDO();
        BeanUtils.copyProperties(comActDiscussUserDTO, comActDiscussUserDO);
        if (type.intValue() == 1) {
            num = comActDiscussUserDAO.insert(comActDiscussUserDO);
        } else {
            num = comActDiscussUserDAO.delete(new QueryWrapper<ComActDiscussUserDO>().lambda()
                .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId())
                .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId()));
        }
        if (num>0) {
        if (num > 0) {
            return R.ok();
        }
        return R.fail();
@@ -402,7 +435,8 @@
    /**
     * 一起议-评论-分页查询 小程序
     *
     * @param pageComActDiscussCommentDTO 分页参数
     * @param pageComActDiscussCommentDTO
     *            分页参数
     * @return ComActDiscussCommentVO
     */
    @Override
@@ -410,31 +444,38 @@
        Page page = new Page<>();
        Long pageNum = pageComActDiscussCommentDTO.getPageNum();
        Long pageSize = pageComActDiscussCommentDTO.getPageSize();
        if (null==pageNum||0==pageNum) {
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null==pageSize||0==pageSize) {
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
        IPage<ComActDiscussCommentVO> iPage =
            comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
        List<ComActDiscussCommentVO> records = iPage.getRecords();
        if (!ObjectUtils.isEmpty(records)) {
            records.forEach(comActDiscussCommentVO -> {
                List<ComActDiscussCommentVO> comActDiscussCommentVOList=new ArrayList<>();
                List<ComActDiscussCommentVO> comActDiscussCommentVOList = new ArrayList<>();
                Long id = comActDiscussCommentVO.getId();
                comActDiscussCommentVOList=comActDiscussCommentDAO.selectChilds(id);
                comActDiscussCommentVOList = comActDiscussCommentDAO.selectChilds(id);
                if (!ObjectUtils.isEmpty(comActDiscussCommentVOList)) {
                    List<ComActDiscussCommentVO> comActDiscussCommentVOS=comActDiscussCommentVOList;
                    List<ComActDiscussCommentVO> comActDiscussCommentVOS = comActDiscussCommentVOList;
                    comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> {
                        Long parentId = comActDiscussCommentVO1.getParentId();
                        List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream().filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)).collect(Collectors.toList());
                        List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream()
                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                            .collect(Collectors.toList());
                        if (!ObjectUtils.isEmpty(collect)) {
                            String userName = collect.get(0).getUserName();
                            String userNickName = collect.get(0).getUserNickName();
                            comActDiscussCommentVO1.setUserNameBack(userName);
                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                        }
                        List<ComActDiscussCommentVO> collect1 = records.stream().filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)).collect(Collectors.toList());
                        List<ComActDiscussCommentVO> collect1 = records.stream()
                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
                            .collect(Collectors.toList());
                        if (!ObjectUtils.isEmpty(collect1)) {
                            ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
                            String userName = comActDiscussCommentVOFirst.getUserName();
@@ -442,31 +483,41 @@
                            comActDiscussCommentVO1.setUserNameBack(userName);
                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                        }
                        if(pageComActDiscussCommentDTO.getLoginUserId() != null && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)){
                            Integer integer = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda().eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO1.getId()).eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                            if (integer>0) {
                        if (pageComActDiscussCommentDTO.getLoginUserId() != null
                            && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                            Integer integer = comActDiscussCommentUserDAO
                                .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
                                        comActDiscussCommentVO1.getId())
                                    .eq(ComActDiscussCommentUserDO::getUserId,
                                        pageComActDiscussCommentDTO.getLoginUserId()));
                            if (integer > 0) {
                                comActDiscussCommentVO1.setHaveSign(1);
                            }else {
                            } else {
                                comActDiscussCommentVO1.setHaveSign(0);
                            }
                        }
                        if(StringUtils.isEmpty(comActDiscussCommentVO1.getUserNickNameBack())){
                            comActDiscussCommentVO1.setUserNickNameBack("社区管理员");
                        }
//                        if(StringUtils.isEmpty(comActDiscussCommentVO1.getUserNickNameBack())){
//                            comActDiscussCommentVO1.setUserNickNameBack("社区管理员");
//                        }
                    });
                    comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
                }
                if(pageComActDiscussCommentDTO.getLoginUserId() != null && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)){
                    Integer integer = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda().eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId()).eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                    if (integer>0) {
                if (pageComActDiscussCommentDTO.getLoginUserId() != null
                    && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                    Integer integer =
                        comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
                            .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                    if (integer > 0) {
                        comActDiscussCommentVO.setHaveSign(1);
                    }else {
                    } else {
                        comActDiscussCommentVO.setHaveSign(0);
                    }
                }
                //判断当前评论是否是社区管理员评论
                if(!comActDiscussCommentVO.getUserType().equals(1)){
                // 判断当前评论是否是社区管理员评论
                if (!comActDiscussCommentVO.getUserType().equals(1)) {
                    comActDiscussCommentVO.setUserNickName("社区管理员");
                }
            });
@@ -477,8 +528,10 @@
    /**
     * 一起议-详情 小程序
     *
     * @param id 主键
     * @param loginUserId 登录用户主键
     * @param id
     *            主键
     * @param loginUserId
     *            登录用户主键
     * @return ComActDiscussVO
     */
    @Override
@@ -487,26 +540,32 @@
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
        }
        ComActDiscussVO comActDiscussVO=new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO,comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
        Integer integer = comActDiscussCommentDAO.selectCount(
            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
        comActDiscussVO.setCommentNum(integer);
        Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        Integer integer1 = comActDiscussUserDAO
            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        Integer type = comActDiscussVO.getType();
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                Long discussOptionDOId = comActDiscussOptionDO.getId();
                Integer selectCount = comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO=new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO,comActDiscussOptionVO);
                Integer selectCount =
                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                comActDiscussOptionVO.setNum(selectCount);
                if(loginUserId != null && !loginUserId.equals(0L)){
                    //判断选项是否已投票
                    int haveVote=comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(),loginUserId);
                    comActDiscussOptionVO.setHaveVote(haveVote>0?1:0);
                if (loginUserId != null && !loginUserId.equals(0L)) {
                    // 判断选项是否已投票
                    int haveVote =
                        comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
                    comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                }
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
@@ -514,12 +573,12 @@
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId);
        if(loginUserInfoVO != null){
        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
        if (loginUserInfoVO != null) {
            comActDiscussVO.setUserName(loginUserInfoVO.getName());
            if(StringUtils.isEmpty(loginUserInfoVO.getNickName())){
            if (StringUtils.isEmpty(loginUserInfoVO.getNickName())) {
                comActDiscussVO.setUserNickName(loginUserInfoVO.getName());
            }else{
            } else {
                comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
            }
            comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
@@ -527,13 +586,13 @@
        }
        Long communityId = comActDiscussDO.getCommunityId();
        Integer type1 = loginUserInfoVO.getType();
        if (type1.intValue()>1) {
            ComActVO comActVO=comActDiscussDAO.selectCommunity(communityId);
        if (type1.intValue() > 1) {
            ComActVO comActVO = comActDiscussDAO.selectCommunity(communityId);
            comActDiscussVO.setUserName(comActVO.getName());
            comActDiscussVO.setUserNickName(comActVO.getName());
        }
        if(loginUserId != null && !loginUserId.equals(0L)){
            ComActDiscussVO comActDiscussVO1=comActDiscussDAO.selectHaveSignAndHaveVote(id,loginUserId);
        if (loginUserId != null && !loginUserId.equals(0L)) {
            ComActDiscussVO comActDiscussVO1 = comActDiscussDAO.selectHaveSignAndHaveVote(id, loginUserId);
            comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
            comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
        }
@@ -544,7 +603,8 @@
    /**
     * 一起议-投票
     *
     * @param comActDiscussOptionUserDTO 投票信息
     * @param comActDiscussOptionUserDTO
     *            投票信息
     * @return 投票结果
     */
    @Override
@@ -555,18 +615,22 @@
        if (ObjectUtils.isEmpty(comActDiscussOptionDO)) {
            return R.fail("选项不存在");
        }
//        Long discussId = comActDiscussOptionDO.getDiscussId();
//        List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, discussId));
//        List<Long> longList=comActDiscussOptionDOS.stream().map(comActDiscussOptionDO1 -> comActDiscussOptionDO1.getId()).collect(Collectors.toList());
        Integer integer = comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId).eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId));
        if (integer>0) {
        // Long discussId = comActDiscussOptionDO.getDiscussId();
        // List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new
        // QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, discussId));
        // List<Long> longList=comActDiscussOptionDOS.stream().map(comActDiscussOptionDO1 ->
        // comActDiscussOptionDO1.getId()).collect(Collectors.toList());
        Integer integer = comActDiscussOptionUserDAO.selectCount(
            new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
                .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId));
        if (integer > 0) {
            return R.fail("不要重复投票");
        }
        ComActDiscussOptionUserDO comActDiscussOptionUserDO=new ComActDiscussOptionUserDO();
        ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
        comActDiscussOptionUserDO.setUserId(userId);
        comActDiscussOptionUserDO.setDiscussOptionId(discussOptionId);
        int insert = comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
        if (insert>0) {
        if (insert > 0) {
            return R.ok();
        }
        return R.fail();
@@ -575,26 +639,30 @@
    /**
     * 一起议-评论-点赞、取消点赞
     *
     * @param comActDiscussCommentUserDTO 评论点赞
     * @param comActDiscussCommentUserDTO
     *            评论点赞
     * @return 点赞结果
     */
    @Override
    public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) {
        ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
        ComActDiscussCommentDO comActDiscussCommentDO =
            comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
            return R.fail("评论不存在");
        }
        Integer type = comActDiscussCommentUserDTO.getType();
        int num=0;
        if (type.intValue()==1) {
            ComActDiscussCommentUserDO comActDiscussCommentUserDO=new ComActDiscussCommentUserDO();
        int num = 0;
        if (type.intValue() == 1) {
            ComActDiscussCommentUserDO comActDiscussCommentUserDO = new ComActDiscussCommentUserDO();
            comActDiscussCommentUserDO.setUserId(comActDiscussCommentUserDTO.getUserId());
            comActDiscussCommentUserDO.setDisscussCommentId(comActDiscussCommentUserDTO.getId());
            num=comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
            num = comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
        } else {
            num=comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda().eq(ComActDiscussCommentUserDO::getUserId,comActDiscussCommentUserDTO.getUserId()).eq(ComActDiscussCommentUserDO::getDisscussCommentId,comActDiscussCommentUserDTO.getId()));
            num = comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
                .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
        }
        if (num>0) {
        if (num > 0) {
            return R.ok();
        }
        return R.fail();
@@ -602,23 +670,29 @@
    /**
     * 工作大屏-一起议列表
     * @param discussListDTO    请求参数
     * @return  一起议列表
     *
     * @param discussListDTO
     *            请求参数
     * @return 一起议列表
     */
    @Override
    public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO){
        IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO.getScreenDiscussList(new Page(discussListDTO.getPageNum(),discussListDTO.getPageSize()),discussListDTO);
        if(!discussListVOIPage.getRecords().isEmpty()){
    public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO) {
        IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO
            .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO);
        if (!discussListVOIPage.getRecords().isEmpty()) {
            discussListVOIPage.getRecords().forEach(discussListVO -> {
                //查询评论数量和点赞数量
                Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
                // 查询评论数量和点赞数量
                Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
                    .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
                discussListVO.setCommentCount(integer);
                Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
                Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
                    .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
                discussListVO.setFabulousCount(integer1);
                if(discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)){//投票
                    List<ComActDiscussOptionVO> discussOptionList = comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
                    if(!discussOptionList.isEmpty()){
                if (discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)) {// 投票
                    List<ComActDiscussOptionVO> discussOptionList =
                        comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
                    if (!discussOptionList.isEmpty()) {
                        discussListVO.setDiscussOptionList(discussOptionList);
                    }
                }