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 | 138 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 105 insertions(+), 33 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 330292c..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 @@ -5,12 +5,14 @@ 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; @@ -19,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; @@ -69,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); @@ -104,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 -> { @@ -115,6 +120,7 @@ comActDiscussOptionVO.setNum(selectCount); comActDiscussOptionVOS.add(comActDiscussOptionVO); }); + comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed()); comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS); } Long userId = comActDiscussDO.getUserId(); @@ -333,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 -> { @@ -342,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); @@ -420,25 +436,39 @@ } 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); + 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); @@ -464,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 -> { @@ -473,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); } @@ -510,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("不要重复投票"); } @@ -554,4 +599,31 @@ } 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