huanghongfa
2021-06-07 8788a78ad30c1bb9d50d91b10e76d3ae47ed8da2
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -59,6 +59,11 @@
    public R addDiscuss(ComActDiscussDTO comActDiscussDTO) {
        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 "));
@@ -313,6 +318,7 @@
        Page page = new Page<>();
        Long pageNum = pageComActDiscussDTO.getPageNum();
        Long pageSize = pageComActDiscussDTO.getPageSize();
        Long loginUserId = pageComActDiscussDTO.getLoginUserId();
        if (null==pageNum||0==pageNum) {
            pageNum = 1l;
        }
@@ -340,6 +346,15 @@
                    });
                    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);
                }
//                判断是否已经投票
                int haveVote=comActDiscussOptionUserDAO.selectHaveVote(id,loginUserId);
                comActDiscussVO.setHaveVote(haveVote>0?1:0);
            });
        }
        return R.ok(iPage);
@@ -405,12 +420,28 @@
                        }
                        List<ComActDiscussCommentVO> collect1 = records.stream().filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)).collect(Collectors.toList());
                        if (!ObjectUtils.isEmpty(collect1)) {
                            String userName = collect1.get(0).getUserName();
                            ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
                            String userName = comActDiscussCommentVOFirst.getUserName();
                            String userNickName = comActDiscussCommentVOFirst.getUserNickName();
                            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);
                        }
                    });
                    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);
                }
            });
        }
        return R.ok(iPage);
@@ -420,10 +451,11 @@
     * 一起议-详情 小程序
     *
     * @param id 主键
     * @param loginUserId 登录用户主键
     * @return ComActDiscussVO
     */
    @Override
    public R detailDiscussApplets(Long id) {
    public R detailDiscussApplets(Long id, Long loginUserId) {
        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
        if (ObjectUtils.isEmpty(comActDiscussDO)) {
            return R.fail("一起议不存在");
@@ -451,12 +483,76 @@
        Long userId = comActDiscussDO.getUserId();
        LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId);
        comActDiscussVO.setUserName(loginUserInfoVO.getName());
        comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
        comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
        Long communityId = comActDiscussDO.getCommunityId();
        Integer type1 = loginUserInfoVO.getType();
        if (type1.intValue()>1) {
            ComActVO comActVO=comActDiscussDAO.selectCommunity(communityId);
            comActDiscussVO.setUserName(comActVO.getName());
        }
        ComActDiscussVO comActDiscussVO1=comActDiscussDAO.selectHaveSignAndHaveVote(id,loginUserId);
        comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
        comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
        return R.ok(comActDiscussVO);
    }
    /**
     * 一起议-投票
     *
     * @param comActDiscussOptionUserDTO 投票信息
     * @return 投票结果
     */
    @Override
    public R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO) {
        Long discussOptionId = comActDiscussOptionUserDTO.getDiscussOptionId();
        Long userId = comActDiscussOptionUserDTO.getUserId();
        ComActDiscussOptionDO comActDiscussOptionDO = comActDiscussOptionDAO.selectById(discussOptionId);
        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));
        if (integer>0) {
            return R.fail("不要重复投票");
        }
        ComActDiscussOptionUserDO comActDiscussOptionUserDO=new ComActDiscussOptionUserDO();
        comActDiscussOptionUserDO.setUserId(userId);
        comActDiscussOptionUserDO.setDiscussOptionId(discussOptionId);
        int insert = comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
        if (insert>0) {
            return R.ok();
        }
        return R.fail();
    }
    /**
     * 一起议-评论-点赞、取消点赞
     *
     * @param comActDiscussCommentUserDTO 评论点赞
     * @return 点赞结果
     */
    @Override
    public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) {
        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();
            comActDiscussCommentUserDO.setUserId(comActDiscussCommentUserDTO.getUserId());
            comActDiscussCommentUserDO.setDisscussCommentId(comActDiscussCommentUserDTO.getId());
            num=comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
        } else {
            num=comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda().eq(ComActDiscussCommentUserDO::getUserId,comActDiscussCommentUserDTO.getUserId()).eq(ComActDiscussCommentUserDO::getDisscussCommentId,comActDiscussCommentUserDTO.getId()));
        }
        if (num>0) {
            return R.ok();
        }
        return R.fail();
    }
}