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/ComActDiscussServiceImpl.java | 514 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 508 insertions(+), 6 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java index 7ca677b..6328de8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java @@ -1,11 +1,18 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.panzhihua.common.model.dtos.community.ComActDiscussDTO; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.panzhihua.common.model.dtos.community.*; +import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO; import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO; import com.panzhihua.common.model.vos.community.ComActDiscussVO; +import com.panzhihua.common.model.vos.community.ComActVO; +import com.panzhihua.common.model.vos.community.screen.work.DiscussListVO; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComActDiscussOptionService; @@ -14,10 +21,13 @@ 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 @@ -38,6 +48,8 @@ @Resource private ComActDiscussOptionDAO comActDiscussOptionDAO; @Resource + private ComActDiscussCommentUserDAO comActDiscussCommentUserDAO; + @Resource private ComActDiscussOptionService comActDiscussOptionService; /** @@ -51,18 +63,24 @@ 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::getSubject, comActDiscussDTO.getSubject()).eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId()).last(" order by create_at desc limit 1 ")); + 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); @@ -91,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 -> { @@ -102,11 +120,13 @@ comActDiscussOptionVO.setNum(selectCount); comActDiscussOptionVOS.add(comActDiscussOptionVO); }); + comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed()); comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS); } Long userId = comActDiscussDO.getUserId(); LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(userId); comActDiscussVO.setUserName(loginUserInfoVO.getName()); + return R.ok(comActDiscussVO); } @@ -124,4 +144,486 @@ } return R.fail(); } + /** + * 一起议-回复 + * @param comActDiscussCommentDTO 评论内容 + * @return 回复结果 + */ + @Override + public R addDiscussComment(ComActDiscussCommentDTO comActDiscussCommentDTO) { + Long discussId = comActDiscussCommentDTO.getDiscussId(); + ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId); + if (ObjectUtils.isEmpty(comActDiscussDO)) { + return R.fail("一起议不存在"); + } + 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) { + return R.ok(); + } + return R.fail(); + } + + /** + * 一起议-分页查询 + * + * @param pageComActDiscussDTO 查询参数 + * @return ComActDiscussVO + */ + @Override + public R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO) { + Page page = new Page<>(); + Long pageNum = pageComActDiscussDTO.getPageNum(); + Long pageSize = pageComActDiscussDTO.getPageSize(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(page, pageComActDiscussDTO); + return R.ok(iPage); + + } + + /** + * 一起议-评论-查看 + * + * @param id 主键 + * @return 详情 ComActDiscussCommentVO + */ + @Override + public R detailDiscusscomment(Long id) { + ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id); + if (ObjectUtils.isEmpty(comActDiscussCommentDO)) { + return R.fail("评论不存在"); + } + ComActDiscussCommentVO comActDiscussCommentVO=new ComActDiscussCommentVO(); + Long parentId = comActDiscussCommentDO.getParentId(); + if (parentId.intValue()==0) { +// 一级评论 + BeanUtils.copyProperties(comActDiscussCommentDO,comActDiscussCommentVO); + }else { + ComActDiscussCommentDO comActDiscussCommentDO1 = comActDiscussCommentDAO.selectById(parentId); + 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)); + comActDiscussCommentVO.setNum(count); + LoginUserInfoVO loginUserInfoVO=comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId()); + comActDiscussCommentVO.setUserName(loginUserInfoVO.getName()); + comActDiscussCommentVO.setPhone(loginUserInfoVO.getPhone()); + return R.ok(comActDiscussCommentVO); + } + + /** + * 一起议-评论-置顶 + * + * @param id 主键 + * @return 置顶结果 + */ + @Override + public R putDiscussCommentTop(Long id) { + ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id); + if (ObjectUtils.isEmpty(comActDiscussCommentDO)) { + return R.fail("评论不存在"); + } + Long parentId = comActDiscussCommentDO.getParentId(); + if (parentId.intValue()!=0) { + return R.fail("二级评论不能置顶"); + } + Long discussId = comActDiscussCommentDO.getDiscussId(); + ComActDiscussCommentDO comActDiscussCommentDO1=new ComActDiscussCommentDO(); + comActDiscussCommentDO1.setIsTopping(0); + 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) { + return R.ok(); + } + return R.fail(); + } + + /** + * 一起议-评论-回复 + * + * @param comActDiscussCommentDTO 回复内容 + * @return 回复结果 + */ + @Override + public R addDiscussCommentBack(ComActDiscussCommentDTO comActDiscussCommentDTO) { + Long id = comActDiscussCommentDTO.getId(); + ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id); + if (ObjectUtils.isEmpty(comActDiscussCommentDO)) { + return R.fail("评论不存在"); + } + Long discussId = comActDiscussCommentDO.getDiscussId(); + ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId); + if (ObjectUtils.isEmpty(comActDiscussDO)) { + return R.fail("一起议不存在"); + } + Long userId = comActDiscussDO.getUserId(); + Long userId1=comActDiscussCommentDTO.getUserId(); + ComActDiscussCommentDO comActDiscussCommentDO1=new ComActDiscussCommentDO(); + comActDiscussCommentDO1.setDiscussId(discussId); + comActDiscussCommentDO1.setComment(comActDiscussCommentDTO.getComment()); + comActDiscussCommentDO1.setUserId(comActDiscussCommentDTO.getUserId()); + comActDiscussCommentDO1.setParentId(id); + if (userId.equals(userId1)) { + comActDiscussCommentDO1.setIsAuthor(1); + } + int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1); + if (insert>0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 一起议-评论-分页查询 + * + * @param pageComActDiscussCommentDTO 分页查询参数 + * @return ComActDiscussCommentVO + */ + @Override + public R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { + Page page = new Page<>(); + Long pageNum = pageComActDiscussCommentDTO.getPageNum(); + Long pageSize = pageComActDiscussCommentDTO.getPageSize(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(page, pageComActDiscussCommentDTO); + return R.ok(iPage); + } + + /** + * 一起议-分页查询 小程序 + * + * @param pageComActDiscussDTO 查询参数 + * @return ComActDiscussVO 分页 + */ + @Override + public R pageDiscussApplets(PageComActDiscussDTO pageComActDiscussDTO) { + Page page = new Page<>(); + Long pageNum = pageComActDiscussDTO.getPageNum(); + Long pageSize = pageComActDiscussDTO.getPageSize(); + Long loginUserId = pageComActDiscussDTO.getLoginUserId(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscussApplets(page, pageComActDiscussDTO); + List<ComActDiscussVO> records = iPage.getRecords(); + if (!ObjectUtils.isEmpty(records)) { + records.forEach(comActDiscussVO -> { + 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<>(); + 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); + 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); + } + + 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); + } + }); + } + return R.ok(iPage); + } + + /** + * 一起议-点赞、取消点赞 + * + * @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())); + } + if (num>0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 一起议-评论-分页查询 小程序 + * + * @param pageComActDiscussCommentDTO 分页参数 + * @return ComActDiscussCommentVO + */ + @Override + public R pageDiscussCommentApplets(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { + Page page = new Page<>(); + Long pageNum = pageComActDiscussCommentDTO.getPageNum(); + Long pageSize = pageComActDiscussCommentDTO.getPageSize(); + if (null==pageNum||0==pageNum) { + pageNum = 1l; + } + if (null==pageSize||0==pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO); + List<ComActDiscussCommentVO> records = iPage.getRecords(); + if (!ObjectUtils.isEmpty(records)) { + records.forEach(comActDiscussCommentVO -> { + List<ComActDiscussCommentVO> comActDiscussCommentVOList=new ArrayList<>(); + Long id = comActDiscussCommentVO.getId(); + comActDiscussCommentVOList=comActDiscussCommentDAO.selectChilds(id); + if (!ObjectUtils.isEmpty(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()); + if (!ObjectUtils.isEmpty(collect)) { + String userName = collect.get(0).getUserName(); + comActDiscussCommentVO1.setUserNameBack(userName); + } + 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(); + String userNickName = comActDiscussCommentVOFirst.getUserNickName(); + 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) { + comActDiscussCommentVO1.setHaveSign(1); + }else { + comActDiscussCommentVO1.setHaveSign(0); + } + } + 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) { + comActDiscussCommentVO.setHaveSign(1); + }else { + comActDiscussCommentVO.setHaveSign(0); + } + } + + //判断当前评论是否是社区管理员评论 + if(!comActDiscussCommentVO.getUserType().equals(1)){ + comActDiscussCommentVO.setUserNickName("社区管理员"); + } + }); + } + return R.ok(iPage); + } + + /** + * 一起议-详情 小程序 + * + * @param id 主键 + * @param loginUserId 登录用户主键 + * @return ComActDiscussVO + */ + @Override + public R detailDiscussApplets(Long id, Long loginUserId) { + ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id); + 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.setCommentNum(integer); + 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<>(); + 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); + 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()); + 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()); + } + if(loginUserId != null && !loginUserId.equals(0L)){ + 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).eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId)); + 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(); + } + + /** + * 工作大屏-一起议列表 + * @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()){ + discussListVOIPage.getRecords().forEach(discussListVO -> { + //查询评论数量和点赞数量 + 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())); + discussListVO.setFabulousCount(integer1); + + if(discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)){//投票 + List<ComActDiscussOptionVO> discussOptionList = comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId()); + if(!discussOptionList.isEmpty()){ + discussListVO.setDiscussOptionList(discussOptionList); + } + } + }); + } + return R.ok(discussListVOIPage); + } } -- Gitblit v1.7.1