From 1aa70f3b0a1411d0de3f4ca78b639bf065168be2 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期五, 10 九月 2021 18:29:10 +0800 Subject: [PATCH] Merge branch 'zzj' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into discuss --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java | 442 +++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 328 insertions(+), 114 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 326a93b..f7316ca 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 @@ -18,6 +18,13 @@ import javax.annotation.Resource; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.panzhihua.common.constants.Constants; +import com.panzhihua.common.exceptions.ServiceException; +import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO; +import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO; +import com.panzhihua.common.model.vos.community.*; +import com.panzhihua.common.utlis.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.connection.StringRedisConnection; import org.springframework.data.redis.core.RedisCallback; @@ -99,6 +106,8 @@ @Resource private ComActDiscussOptionService comActDiscussOptionService; @Resource + private SysConfMapper sysConfDao; + @Resource private SysConfService sysConfService; @Resource private UserService userService; @@ -108,8 +117,7 @@ /** * 议事投票-新增 * - * @param comActDiscussDTO - * 新增参数 + * @param comActDiscussDTO 新增参数 * @return 新增结果 */ @Override @@ -122,9 +130,9 @@ BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO); Integer type = comActDiscussDTO.getType(); Date nowDate = new Date(); - if(type.equals(ComActDiscussDO.type.tp)){//判断是投票,需要转义时间 - Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(),DateUtils.ymdhms_format); - Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(),DateUtils.ymdhms_format); + if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间 + Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format); + Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format); comActDiscussDO.setStartTime(startTime); comActDiscussDO.setEndTime(endTime); comActDiscussDO.setStatus(ComActDiscussDO.status.wks); @@ -133,7 +141,7 @@ comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); comActDiscussDO.setReleaseAt(nowDate); } - }else{ + } else { comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); } String address = comActDiscussDO.getAddress(); @@ -206,8 +214,9 @@ /** * 议事投票-编辑 - * @param comActDiscussDTO 请求参数 - * @return 编辑结果 + * + * @param comActDiscussDTO 请求参数 + * @return 编辑结果 */ @Override @Transactional(rollbackFor = Exception.class) @@ -217,18 +226,18 @@ if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); } - if(!comActDiscussDO.getStatus().equals(ComActDiscussDO.status.wks) && !comActDiscussDO.getStatus().equals(ComActDiscussDO.status.yfb)){ + if (!comActDiscussDO.getStatus().equals(ComActDiscussDO.status.wks) && !comActDiscussDO.getStatus().equals(ComActDiscussDO.status.yfb)) { return R.fail("该状态不可修改"); } - Integer type = comActDiscussDO.getType(); + Integer type = comActDiscussDO.getType(); Integer isRepeat = comActDiscussDO.getIsRepeat(); BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO); comActDiscussDO.setType(type); comActDiscussDO.setIsRepeat(isRepeat); Date nowDate = new Date(); - if(type.equals(ComActDiscussDO.type.tp)){//判断是投票,需要转义时间 - Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(),DateUtils.ymdhms_format); - Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(),DateUtils.ymdhms_format); + if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间 + Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format); + Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format); comActDiscussDO.setStartTime(startTime); comActDiscussDO.setEndTime(endTime); comActDiscussDO.setStatus(ComActDiscussDO.status.wks); @@ -237,7 +246,7 @@ comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); comActDiscussDO.setReleaseAt(nowDate); } - }else{ + } else { comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); } comActDiscussDO.setUpdateAt(new Date()); @@ -246,7 +255,7 @@ //如果是投票,需要把投票的选项存储 if (type.equals(2)) { comActDiscussOptionService.remove(new QueryWrapper<ComActDiscussOptionDO>().lambda() - .eq(ComActDiscussOptionDO::getDiscussId,comActDiscussDO1Id)); + .eq(ComActDiscussOptionDO::getDiscussId, comActDiscussDO1Id)); List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>(); comActDiscussDTO.getDiscussOptions().forEach(s -> { ComActDiscussOptionDO comActDiscussOptionDO = new ComActDiscussOptionDO(); @@ -265,12 +274,12 @@ /** * 议事投票-详情 * - * @param id - * 主键 + * @param discussDetailDTO 请求参数 * @return ComActDiscussVO */ @Override - public R detailDiscuss(Long id) { + public R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO) { + Long id = discussDetailDTO.getId(); ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id); if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); @@ -279,22 +288,36 @@ BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO); comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum()); Integer type = comActDiscussVO.getType(); - if (type.equals(2)) { + if (type.equals(ComActDiscussVO.type.tp)) { //查询选项列表 - List<ComActDiscussOptionVO> comActDiscussOptionVOS = comActDiscussOptionDAO.getDiscussOptionList(id); - comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS); + List<ComActDiscussOptionVO> comActDiscussOptionList = comActDiscussOptionDAO.getDiscussOptionList(id); + comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionList); } Long userId = comActDiscussDO.getUserId(); LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId); comActDiscussVO.setUserName(loginUserInfoVO.getName()); + comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName()); + + //分页查询评论列表 + PageComActDiscussCommentDTO pageComActDiscussCommentDTO = new PageComActDiscussCommentDTO(); + BeanUtils.copyProperties(discussDetailDTO, pageComActDiscussCommentDTO); + IPage<ComActDiscussCommentVO> discussComments = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO); + discussComments.getRecords().forEach(comment -> { + if (comment.getReplyNum() > 0) { + List<ComActDiscussCommentVO> childList = comActDiscussDAO.getDiscussCommentReplyList(comment.getId()); + if (!childList.isEmpty()) { + comment.setComActDiscussCommentVOList(childList); + } + } + }); + comActDiscussVO.setDiscussCommentList(discussComments.getRecords()); return R.ok(comActDiscussVO); } /** * 议事投票-删除 * - * @param id - * 主键 + * @param id 主键 * @return 删除结果 */ @Override @@ -311,8 +334,7 @@ /** * 议事投票-回复 * - * @param comActDiscussCommentDTO - * 评论内容 + * @param comActDiscussCommentDTO 评论内容 * @return 回复结果 */ @Override @@ -335,6 +357,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO); if (insert > 0) { +// comActDiscussDAO.addCommentCount(discussId, 1); //评论成功,评论总数+1 //若首次参与评论,参与讨论人数+1 if (currentUserCommentCount > 0) { @@ -350,43 +373,31 @@ /** * 议事投票-分页查询 * - * @param pageComActDiscussDTO - * 查询参数 + * @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); + IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO); return R.ok(iPage); } /** * 议事投票-后台分页查询 - * @param pageComActDiscussDTO 请求参数 - * @return 议事投票列表 + * + * @param pageComActDiscussDTO 请求参数 + * @return 议事投票列表 */ @Override public R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO) { - return R.ok(comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(),pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO)); + return R.ok(comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO)); } /** * 议事投票-评论-查看 * - * @param id - * 主键 + * @param id 主键 * @return 详情 ComActDiscussCommentVO */ @Override @@ -408,7 +419,7 @@ comActDiscussCommentVO.setParentId(parentId); } Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() - .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id)); + .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id)); comActDiscussCommentVO.setNum(count); LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId()); comActDiscussCommentVO.setUserName(loginUserInfoVO.getName()); @@ -417,10 +428,49 @@ } /** + * 议事投票评论详情 + * + * @param pageComActDiscussCommentDTO 请求参数 + * @return 议事投票详情 + */ + @Override + public R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { + Long id = pageComActDiscussCommentDTO.getId(); + 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()); + + //查询该评论下所有回复内容 + IPage<ComActDiscussCommentVO> discussCommentList = comActDiscussCommentDAO.getDiscussCommentList(new Page(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO.getId()); + if (!discussCommentList.getRecords().isEmpty()) { + comActDiscussCommentVO.setComActDiscussCommentVOList(discussCommentList.getRecords()); + } + return R.ok(comActDiscussCommentVO); + } + + /** * 议事投票-评论-置顶 * - * @param id - * 主键 + * @param id 主键 * @return 置顶结果 */ @Override @@ -437,7 +487,7 @@ ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO(); comActDiscussCommentDO1.setIsTopping(0); comActDiscussCommentDAO.update(comActDiscussCommentDO1, - new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId)); + new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId)); comActDiscussCommentDO1.setIsTopping(1); comActDiscussCommentDO1.setId(id); int update = comActDiscussCommentDAO.updateById(comActDiscussCommentDO1); @@ -450,8 +500,7 @@ /** * 议事投票-评论-回复 * - * @param comActDiscussCommentDTO - * 回复内容 + * @param comActDiscussCommentDTO 回复内容 * @return 回复结果 */ @Override @@ -465,6 +514,10 @@ ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId); if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); + } + Long parentId = comActDiscussCommentDO.getParentId(); + if (parentId.intValue() != 0) { + return R.fail("二级评论不能回复"); } Long currentUser = comActDiscussCommentDTO.getUserId(); //判断当前用户是否参与过评论/回复 @@ -481,6 +534,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1); if (insert > 0) { +// comActDiscussDAO.addCommentCount(discussId, 1); //回复成功,评论总数+1 //若首次参与评论,参与讨论人数+1 if (currentUserCommentCount > 0) { @@ -496,32 +550,31 @@ /** * 议事投票-评论-分页查询 * - * @param pageComActDiscussCommentDTO - * 分页查询参数 + * @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); + IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO); + return R.ok(iPage); + } + + /** + * 议事投票-评论-后台分页查询 + * + * @param pageComActDiscussCommentDTO 分页查询参数 + * @return ComActDiscussCommentVO + */ + @Override + public R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) { + IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO); return R.ok(iPage); } /** * 议事投票-分页查询 小程序 * - * @param pageComActDiscussDTO - * 查询参数 + * @param pageComActDiscussDTO 查询参数 * @return ComActDiscussVO 分页 */ @Override @@ -546,13 +599,13 @@ Long id = comActDiscussVO.getId(); if (type.equals(2)) { List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList( - new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id)); + 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)); + comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>() + .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId)); ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO(); BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO); comActDiscussOptionVO.setNum(selectCount); @@ -560,7 +613,7 @@ if (loginUserId != null) { // 判断选项是否已投票 int haveVote = - comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); + comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0); } comActDiscussOptionVOS.add(comActDiscussOptionVO); @@ -579,8 +632,8 @@ if (loginUserId != null) { Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda() - .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId()) - .eq(ComActDiscussUserDO::getUserId, loginUserId)); + .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId()) + .eq(ComActDiscussUserDO::getUserId, loginUserId)); if (integer > 0) { comActDiscussVO.setHaveSign(1); } else { @@ -612,8 +665,7 @@ /** * 议事投票-点赞、取消点赞 * - * @param comActDiscussUserDTO - * 操作类型 + * @param comActDiscussUserDTO 操作类型 * @return 操作结果 */ @Override @@ -627,8 +679,8 @@ num = comActDiscussUserDAO.insert(comActDiscussUserDO); } else { num = comActDiscussUserDAO.delete(new QueryWrapper<ComActDiscussUserDO>().lambda() - .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId()) - .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId())); + .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId()) + .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId())); } if (num > 0) { //点赞成功 总数+1 || 取消点赞成功 总数-1 @@ -641,8 +693,7 @@ /** * 议事投票-评论-分页查询 小程序 * - * @param pageComActDiscussCommentDTO - * 分页参数 + * @param pageComActDiscussCommentDTO 分页参数 * @return ComActDiscussCommentVO */ @Override @@ -659,7 +710,7 @@ page.setSize(pageSize); page.setCurrent(pageNum); IPage<ComActDiscussCommentVO> iPage = - comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO); + comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO); List<ComActDiscussCommentVO> records = iPage.getRecords(); if (!ObjectUtils.isEmpty(records)) { records.forEach(comActDiscussCommentVO -> { @@ -671,8 +722,8 @@ comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> { Long parentId = comActDiscussCommentVO1.getParentId(); List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream() - .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)) - .collect(Collectors.toList()); + .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(); @@ -680,8 +731,8 @@ comActDiscussCommentVO1.setUserNickNameBack(userNickName); } List<ComActDiscussCommentVO> collect1 = records.stream() - .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)) - .collect(Collectors.toList()); + .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId)) + .collect(Collectors.toList()); if (!ObjectUtils.isEmpty(collect1)) { ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0); String userName = comActDiscussCommentVOFirst.getUserName(); @@ -690,13 +741,13 @@ comActDiscussCommentVO1.setUserNickNameBack(userNickName); } if (pageComActDiscussCommentDTO.getLoginUserId() != null - && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) { + && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) { Integer integer = comActDiscussCommentUserDAO - .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() - .eq(ComActDiscussCommentUserDO::getDisscussCommentId, - comActDiscussCommentVO1.getId()) - .eq(ComActDiscussCommentUserDO::getUserId, - pageComActDiscussCommentDTO.getLoginUserId())); + .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() + .eq(ComActDiscussCommentUserDO::getDisscussCommentId, + comActDiscussCommentVO1.getId()) + .eq(ComActDiscussCommentUserDO::getUserId, + pageComActDiscussCommentDTO.getLoginUserId())); if (integer > 0) { comActDiscussCommentVO1.setHaveSign(1); } else { @@ -710,11 +761,11 @@ comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList); } if (pageComActDiscussCommentDTO.getLoginUserId() != null - && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) { + && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) { Integer integer = - comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() - .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId()) - .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId())); + comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() + .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId()) + .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId())); if (integer > 0) { comActDiscussCommentVO.setHaveSign(1); } else { @@ -734,10 +785,8 @@ /** * 议事投票-详情 小程序 * - * @param id - * 主键 - * @param loginUserId - * 登录用户主键 + * @param id 主键 + * @param loginUserId 登录用户主键 * @return ComActDiscussVO */ @Override @@ -752,21 +801,21 @@ Integer type = comActDiscussVO.getType(); if (type.equals(2)) { List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList( - new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id)); + new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id)); List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>(); ArrayList<Integer> votes = new ArrayList<>(); comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> { Long discussOptionDOId = comActDiscussOptionDO.getId(); Integer selectCount = - comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda() - .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId)); + 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); + comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); votes.add(haveVote); comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0); } @@ -848,8 +897,7 @@ /** * 议事投票-投票 * - * @param comActDiscussOptionUserDTO - * 投票信息 + * @param comActDiscussOptionUserDTO 投票信息 * @return 投票结果 */ @Override @@ -901,14 +949,13 @@ /** * 议事投票-评论-点赞、取消点赞 * - * @param comActDiscussCommentUserDTO - * 评论点赞 + * @param comActDiscussCommentUserDTO 评论点赞 * @return 点赞结果 */ @Override public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) { ComActDiscussCommentDO comActDiscussCommentDO = - comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId()); + comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId()); if (ObjectUtils.isEmpty(comActDiscussCommentDO)) { return R.fail("评论不存在"); } @@ -921,8 +968,8 @@ num = comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO); } else { num = comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda() - .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId()) - .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId())); + .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId()) + .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId())); } if (num > 0) { return R.ok(); @@ -933,27 +980,26 @@ /** * 工作大屏-议事投票列表 * - * @param discussListDTO - * 请求参数 + * @param discussListDTO 请求参数 * @return 议事投票列表 */ @Override public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO) { IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO - .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO); + .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())); + .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId())); discussListVO.setCommentCount(integer); Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda() - .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId())); + .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId())); discussListVO.setFabulousCount(integer1); if (discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)) {// 投票 List<ComActDiscussOptionVO> discussOptionList = - comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId()); + comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId()); if (!discussOptionList.isEmpty()) { discussListVO.setDiscussOptionList(discussOptionList); } @@ -964,6 +1010,174 @@ } /** + * 议事投票后台公布结果 + * + * @param publishResultDTO 请求参数 + * @return 公布结果 + */ + @Override + public R publishResultAdmin(ComActDiscussPublishResultDTO publishResultDTO) { + ComActDiscussDO discussDO = comActDiscussDAO.selectById(publishResultDTO.getId()); + if (discussDO == null) { + return R.fail("议事投票记录不存在"); + } + Date nowDate = new Date(); + if (publishResultDTO.getType().equals(ComActDiscussPublishResultDTO.type.add)) { + if (!discussDO.getStatus().equals(ComActDiscussDO.status.dgb)) { + return R.fail("该议事投票不是待公布状态,不可公布结果操作"); + } + discussDO.setStatus(ComActDiscussDO.status.ygb); + } + discussDO.setPublishAt(nowDate); + discussDO.setPublishResult(publishResultDTO.getResult()); + discussDO.setUpdateAt(nowDate); + discussDO.setPublishBy(publishResultDTO.getUserId()); + if (comActDiscussDAO.updateById(discussDO) > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 议事投票-评论/回复删除 + * + * @param id 评论/回复id + * @return 删除结果 + */ + @Override + public R deleteDiscussCommentAdmin(Long id) { + ComActDiscussCommentDO discussCommentDO = comActDiscussCommentDAO.selectById(id); + if (discussCommentDO == null) { + return R.fail("未查询到该记录"); + } + if (discussCommentDO.getIsDel().equals(ComActDiscussCommentDO.isDelete.yes)) { + return R.fail("该记录已被删除"); + } + discussCommentDO.setIsDel(ComActDiscussCommentDO.isDelete.yes); + if (comActDiscussCommentDAO.updateById(discussCommentDO) > 0) { + ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussCommentDO.getDiscussId()); + if (discussDO != null) { + if (discussDO.getCommentNum() > 0) { + if (discussCommentDO.getParentId().equals(0L)) { + Integer count = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda() + .eq(ComActDiscussCommentDO::getParentId, id).eq(ComActDiscussCommentDO::getIsDel, ComActDiscussCommentDO.isDelete.no)); + if (count != null && count > 0 && discussDO.getCommentNum() > count) { + discussDO.setCommentNum(discussDO.getCommentNum() - count); + } else { + discussDO.setCommentNum(discussDO.getCommentNum() - 1); + } + comActDiscussDAO.updateById(discussDO); + } else { + discussDO.setCommentNum(discussDO.getCommentNum() - 1); + comActDiscussDAO.updateById(discussDO); + } + } + } + return R.ok(); + } + return R.fail(); + } + + /** + * 分页查询评论下回复列表 + * + * @param discussDetailDTO 请求参数 + * @return 回复列表 + */ + @Override + public R discussCommentReplyAdmin(ComActDiscussDetailDTO discussDetailDTO) { + return R.ok(comActDiscussCommentDAO.getDiscussCommentList(new Page(discussDetailDTO.getPageNum(), discussDetailDTO.getPageSize()), discussDetailDTO.getId())); + } + + /** + * 查询社区可发布议事投票权限配置 + * + * @param communityId 社区id + * @return 社区可发布议事投票权限配置 + */ + @Override + public R discussJurisdictionGet(Long communityId, Long userId) { + List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, communityId).orderByDesc(SysConfDO::getCreateAt)); + if (confDOList == null || confDOList.size() == 0) { + SysConfDO sysConfDO = new SysConfDO(); + sysConfDO.setCode(Constants.DISCUSS_IDENTITY_KEY + communityId); + sysConfDO.setName("社区议事投票小程序身份验证参数"); + sysConfDO.setValue("");// 社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员) + sysConfDO.setDescription("社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)"); + sysConfDO.setCommunityId(communityId); + sysConfDO.setCreateBy(userId); + int inserted = sysConfDao.insert(sysConfDO); + if (inserted != 1) { + throw new ServiceException("添加社区议事投票小程序身份验证参数失败"); + } + confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>() + .eq(SysConfDO::getCommunityId, communityId) + .orderByDesc(SysConfDO::getCreateAt)); + } + if (confDOList != null && confDOList.size() > 0) { + SysConfDO latest = confDOList.get(0); + SysConfVO sysConfVO = new SysConfVO(); + BeanUtils.copyProperties(latest, sysConfVO); + return R.ok(sysConfVO.getValue()); + } + return R.ok(); + } + + /** + * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员) + * + * @param communityId 社区id + * @param value 需要设置的参数值 + * @return 设置结果 + */ + @Override + public R discussJurisdictionSet(Long communityId, String value) { + List<SysConfDO> authConf = + sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId) + .eq(SysConfDO::getCode, Constants.DISCUSS_IDENTITY_KEY + communityId).orderByDesc(SysConfDO::getCreateAt)); + if (authConf != null && authConf.size() > 0) { + SysConfDO first = authConf.get(0); + first.setValue(value); + int updated = sysConfDao.updateById(first); + if (updated == 1) { + return R.ok(); + } + } + return R.fail(); + } + + /** + * 议事投票检测状态定时任务 + * @return 执行结果 + */ + @Override + public R timedTaskDiscussInspectStatus() { + Date nowDate = new Date(); + //查询已过开始时间未开始投票列表 + List<ComActDiscussDO> wksDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda() + .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no) + .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.wks).le(ComActDiscussDO::getStartTime, nowDate)); + wksDiscussList.forEach(wksDiscuss -> { + wksDiscuss.setStatus(ComActDiscussDO.status.jxz); + wksDiscuss.setUpdateAt(nowDate); + wksDiscuss.setReleaseAt(nowDate); + comActDiscussDAO.updateById(wksDiscuss); + }); + + //查询已过结束时间未结束的投票列表 + List<ComActDiscussDO> jxzDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda() + .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no) + .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.jxz).le(ComActDiscussDO::getEndTime, nowDate)); + jxzDiscussList.forEach(jxzDiscuss -> { + jxzDiscuss.setStatus(ComActDiscussDO.status.dgb); + jxzDiscuss.setUpdateAt(nowDate); + comActDiscussDAO.updateById(jxzDiscuss); + }); + return R.ok(); + } + + /** * 一起议增加浏览量 * @param discussId 一起议主键id */ -- Gitblit v1.7.1