From 321d2fe33b1239d29c285c91a2867631ee1e2146 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期五, 10 九月 2021 17:17:59 +0800 Subject: [PATCH] 议事投票后台接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java | 453 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 331 insertions(+), 122 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 7a0bff0..a25fc36 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 @@ -8,6 +8,12 @@ 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.stereotype.Service; @@ -23,10 +29,6 @@ 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.*; @@ -55,12 +57,13 @@ private ComActDiscussCommentUserDAO comActDiscussCommentUserDAO; @Resource private ComActDiscussOptionService comActDiscussOptionService; + @Resource + private SysConfMapper sysConfDao; /** * 议事投票-新增 * - * @param comActDiscussDTO - * 新增参数 + * @param comActDiscussDTO 新增参数 * @return 新增结果 */ @Override @@ -70,9 +73,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); @@ -81,7 +84,7 @@ comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); comActDiscussDO.setReleaseAt(nowDate); } - }else{ + } else { comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); } //查询社区地址 @@ -113,8 +116,9 @@ /** * 议事投票-编辑 - * @param comActDiscussDTO 请求参数 - * @return 编辑结果 + * + * @param comActDiscussDTO 请求参数 + * @return 编辑结果 */ @Override @Transactional(rollbackFor = Exception.class) @@ -124,18 +128,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); @@ -144,7 +148,7 @@ comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); comActDiscussDO.setReleaseAt(nowDate); } - }else{ + } else { comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); } comActDiscussDO.setUpdateAt(new Date()); @@ -153,7 +157,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(); @@ -172,12 +176,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("议事投票不存在"); @@ -186,22 +190,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 @@ -218,8 +236,7 @@ /** * 议事投票-回复 * - * @param comActDiscussCommentDTO - * 评论内容 + * @param comActDiscussCommentDTO 评论内容 * @return 回复结果 */ @Override @@ -238,6 +255,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO); if (insert > 0) { + comActDiscussDAO.addCommentCount(discussId, 1); return R.ok(); } return R.fail(); @@ -246,43 +264,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 @@ -304,7 +310,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()); @@ -313,10 +319,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 @@ -333,7 +378,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); @@ -346,8 +391,7 @@ /** * 议事投票-评论-回复 * - * @param comActDiscussCommentDTO - * 回复内容 + * @param comActDiscussCommentDTO 回复内容 * @return 回复结果 */ @Override @@ -362,6 +406,10 @@ if (ObjectUtils.isEmpty(comActDiscussDO)) { return R.fail("议事投票不存在"); } + Long parentId = comActDiscussCommentDO.getParentId(); + if (parentId.intValue() != 0) { + return R.fail("二级评论不能回复"); + } Long userId = comActDiscussDO.getUserId(); Long userId1 = comActDiscussCommentDTO.getUserId(); ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO(); @@ -374,6 +422,7 @@ } int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1); if (insert > 0) { + comActDiscussDAO.addCommentCount(discussId, 1); return R.ok(); } return R.fail(); @@ -382,32 +431,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 @@ -432,13 +480,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); @@ -446,7 +494,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); @@ -457,8 +505,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 { @@ -476,8 +524,7 @@ /** * 议事投票-点赞、取消点赞 * - * @param comActDiscussUserDTO - * 操作类型 + * @param comActDiscussUserDTO 操作类型 * @return 操作结果 */ @Override @@ -490,8 +537,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) { return R.ok(); @@ -502,8 +549,7 @@ /** * 议事投票-评论-分页查询 小程序 * - * @param pageComActDiscussCommentDTO - * 分页参数 + * @param pageComActDiscussCommentDTO 分页参数 * @return ComActDiscussCommentVO */ @Override @@ -520,7 +566,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 -> { @@ -532,8 +578,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(); @@ -541,8 +587,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(); @@ -551,13 +597,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 { @@ -571,11 +617,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 { @@ -595,10 +641,8 @@ /** * 议事投票-详情 小程序 * - * @param id - * 主键 - * @param loginUserId - * 登录用户主键 + * @param id 主键 + * @param loginUserId 登录用户主键 * @return ComActDiscussVO */ @Override @@ -610,28 +654,28 @@ ComActDiscussVO comActDiscussVO = new ComActDiscussVO(); BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO); Integer integer = comActDiscussCommentDAO.selectCount( - new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id)); + new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id)); comActDiscussVO.setCommentNum(integer); Integer integer1 = comActDiscussUserDAO - .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id)); + .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)); + 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); if (loginUserId != null && !loginUserId.equals(0L)) { // 判断选项是否已投票 int haveVote = - comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); + comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0); } comActDiscussOptionVOS.add(comActDiscussOptionVO); @@ -670,8 +714,7 @@ /** * 议事投票-投票 * - * @param comActDiscussOptionUserDTO - * 投票信息 + * @param comActDiscussOptionUserDTO 投票信息 * @return 投票结果 */ @Override @@ -688,8 +731,8 @@ // 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)); + new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId) + .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId)); if (integer > 0) { return R.fail("不要重复投票"); } @@ -706,14 +749,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("评论不存在"); } @@ -726,8 +768,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(); @@ -738,27 +780,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); } @@ -767,4 +808,172 @@ } return R.ok(discussListVOIPage); } + + /** + * 议事投票后台公布结果 + * + * @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(); + } } -- Gitblit v1.7.1