huanghongfa
2021-08-21 2e64c232ab6b51b2cecf1ee96e1e9b709234f326
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -21,9 +21,11 @@
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;
@@ -71,13 +73,14 @@
            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.intValue()==2) {
                List<String> discussOptions = comActDiscussDTO.getDiscussOptions();
            if (type.equals(2)) {
                List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
                List<ComActDiscussOptionDO> comActDiscussOptionDOS=new ArrayList<>();
                discussOptions.forEach(s -> {
                    ComActDiscussOptionDO comActDiscussOptionDO=new ComActDiscussOptionDO();
                    comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
                    comActDiscussOptionDO.setOptionContent(s);
                    comActDiscussOptionDO.setOptionContent(s.getOptionContent());
                    comActDiscussOptionDO.setOptionUrl(s.getOptionUrl());
                    comActDiscussOptionDOS.add(comActDiscussOptionDO);
                });
                comActDiscussOptionService.saveBatch(comActDiscussOptionDOS);
@@ -106,7 +109,7 @@
        Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        Integer type = comActDiscussVO.getType();
        if (type.intValue()==2) {
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
@@ -117,6 +120,7 @@
                comActDiscussOptionVO.setNum(selectCount);
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
        }
        Long userId = comActDiscussDO.getUserId();
@@ -335,7 +339,7 @@
            records.forEach(comActDiscussVO -> {
                Integer type = comActDiscussVO.getType();
                Long id = comActDiscussVO.getId();
                if (type.intValue()==2) {
                if (type.equals(2)) {
                    List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                    List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
                    comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
@@ -344,19 +348,29 @@
                        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);
                        }
                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
                    });
                    comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
                    comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
                }
                Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId()).eq(ComActDiscussUserDO::getUserId, loginUserId));
                if (integer>0) {
                    comActDiscussVO.setHaveSign(1);
                }else{
                    comActDiscussVO.setHaveSign(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{
                        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);
            });
        }
        return R.ok(iPage);
@@ -428,22 +442,33 @@
                            comActDiscussCommentVO1.setUserNameBack(userName);
                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                        }
                        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 {
                            comActDiscussCommentVO1.setHaveSign(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 {
                                comActDiscussCommentVO1.setHaveSign(0);
                            }
                        }
                        if(StringUtils.isEmpty(comActDiscussCommentVO1.getUserNickNameBack())){
                            comActDiscussCommentVO1.setUserNickNameBack("社区管理员");
                        }
                    });
                    comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
                }
                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 {
                    comActDiscussCommentVO.setHaveSign(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 {
                        comActDiscussCommentVO.setHaveSign(0);
                    }
                }
                //判断当前评论是否是社区管理员评论
                if(!comActDiscussCommentVO.getUserType().equals(1)){
                    comActDiscussCommentVO.setUserNickName("社区管理员");
                }
            });
        }
        return R.ok(iPage);
@@ -469,7 +494,7 @@
        Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
        comActDiscussVO.setSignNum(integer1);
        Integer type = comActDiscussVO.getType();
        if (type.intValue()==2) {
        if (type.equals(2)) {
            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
            List<ComActDiscussOptionVO> comActDiscussOptionVOS=new ArrayList<>();
            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
@@ -478,26 +503,41 @@
                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);
                }
                comActDiscussOptionVOS.add(comActDiscussOptionVO);
            });
            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
        }
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId);
        if(loginUserInfoVO != null){
            comActDiscussVO.setUserName(loginUserInfoVO.getName());
            comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
            if(StringUtils.isEmpty(loginUserInfoVO.getNickName())){
                comActDiscussVO.setUserNickName(loginUserInfoVO.getName());
            }else{
                comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
            }
            comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
            comActDiscussVO.setUserType(loginUserInfoVO.getType());
        }
        Long communityId = comActDiscussDO.getCommunityId();
        Integer type1 = loginUserInfoVO.getType();
        if (type1.intValue()>1) {
            ComActVO comActVO=comActDiscussDAO.selectCommunity(communityId);
            comActDiscussVO.setUserName(comActVO.getName());
            comActDiscussVO.setUserNickName(comActVO.getName());
        }
        ComActDiscussVO comActDiscussVO1=comActDiscussDAO.selectHaveSignAndHaveVote(id,loginUserId);
        comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
        comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
        if(loginUserId != null && !loginUserId.equals(0L)){
            ComActDiscussVO comActDiscussVO1=comActDiscussDAO.selectHaveSignAndHaveVote(id,loginUserId);
            comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
            comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
        }
        return R.ok(comActDiscussVO);
    }
@@ -515,10 +555,10 @@
        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).in(ComActDiscussOptionUserDO::getDiscussOptionId, longList));
//        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("不要重复投票");
        }