| | |
| | | |
| | | 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; |
| | |
| | | @Resource |
| | | private ComActDiscussOptionService comActDiscussOptionService; |
| | | @Resource |
| | | private SysConfMapper sysConfDao; |
| | | @Resource |
| | | private SysConfService sysConfService; |
| | | @Resource |
| | | private UserService userService; |
| | |
| | | /** |
| | | * 议事投票-新增 |
| | | * |
| | | * @param comActDiscussDTO |
| | | * 新增参数 |
| | | * @param comActDiscussDTO 新增参数 |
| | | * @return 新增结果 |
| | | */ |
| | | @Override |
| | |
| | | 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); |
| | |
| | | comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); |
| | | comActDiscussDO.setReleaseAt(nowDate); |
| | | } |
| | | }else{ |
| | | } else { |
| | | comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); |
| | | } |
| | | String address = comActDiscussDO.getAddress(); |
| | |
| | | |
| | | /** |
| | | * 议事投票-编辑 |
| | | * @param comActDiscussDTO 请求参数 |
| | | * @return 编辑结果 |
| | | * |
| | | * @param comActDiscussDTO 请求参数 |
| | | * @return 编辑结果 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | 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); |
| | |
| | | comActDiscussDO.setStatus(ComActDiscussDO.status.jxz); |
| | | comActDiscussDO.setReleaseAt(nowDate); |
| | | } |
| | | }else{ |
| | | } else { |
| | | comActDiscussDO.setStatus(ComActDiscussDO.status.yfb); |
| | | } |
| | | comActDiscussDO.setUpdateAt(new Date()); |
| | |
| | | //如果是投票,需要把投票的选项存储 |
| | | 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(); |
| | |
| | | /** |
| | | * 议事投票-详情 |
| | | * |
| | | * @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("议事投票不存在"); |
| | |
| | | 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 |
| | |
| | | /** |
| | | * 议事投票-回复 |
| | | * |
| | | * @param comActDiscussCommentDTO |
| | | * 评论内容 |
| | | * @param comActDiscussCommentDTO 评论内容 |
| | | * @return 回复结果 |
| | | */ |
| | | @Override |
| | |
| | | } |
| | | int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO); |
| | | if (insert > 0) { |
| | | // comActDiscussDAO.addCommentCount(discussId, 1); |
| | | //评论成功,评论总数+1 |
| | | //若首次参与评论,参与讨论人数+1 |
| | | if (currentUserCommentCount > 0) { |
| | |
| | | /** |
| | | * 议事投票-分页查询 |
| | | * |
| | | * @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 |
| | |
| | | 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()); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 议事投票评论详情 |
| | | * |
| | | * @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 |
| | |
| | | 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); |
| | |
| | | /** |
| | | * 议事投票-评论-回复 |
| | | * |
| | | * @param comActDiscussCommentDTO |
| | | * 回复内容 |
| | | * @param comActDiscussCommentDTO 回复内容 |
| | | * @return 回复结果 |
| | | */ |
| | | @Override |
| | |
| | | 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(); |
| | | //判断当前用户是否参与过评论/回复 |
| | |
| | | } |
| | | int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1); |
| | | if (insert > 0) { |
| | | // comActDiscussDAO.addCommentCount(discussId, 1); |
| | | //回复成功,评论总数+1 |
| | | //若首次参与评论,参与讨论人数+1 |
| | | if (currentUserCommentCount > 0) { |
| | |
| | | /** |
| | | * 议事投票-评论-分页查询 |
| | | * |
| | | * @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 |
| | |
| | | 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); |
| | |
| | | if (loginUserId != null) { |
| | | // 判断选项是否已投票 |
| | | int haveVote = |
| | | comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); |
| | | comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId); |
| | | comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0); |
| | | } |
| | | comActDiscussOptionVOS.add(comActDiscussOptionVO); |
| | |
| | | |
| | | 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 { |
| | |
| | | /** |
| | | * 议事投票-点赞、取消点赞 |
| | | * |
| | | * @param comActDiscussUserDTO |
| | | * 操作类型 |
| | | * @param comActDiscussUserDTO 操作类型 |
| | | * @return 操作结果 |
| | | */ |
| | | @Override |
| | |
| | | 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 |
| | |
| | | /** |
| | | * 议事投票-评论-分页查询 小程序 |
| | | * |
| | | * @param pageComActDiscussCommentDTO |
| | | * 分页参数 |
| | | * @param pageComActDiscussCommentDTO 分页参数 |
| | | * @return ComActDiscussCommentVO |
| | | */ |
| | | @Override |
| | |
| | | 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 -> { |
| | |
| | | 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(); |
| | |
| | | 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(); |
| | |
| | | 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 { |
| | |
| | | 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 { |
| | |
| | | /** |
| | | * 议事投票-详情 小程序 |
| | | * |
| | | * @param id |
| | | * 主键 |
| | | * @param loginUserId |
| | | * 登录用户主键 |
| | | * @param id 主键 |
| | | * @param loginUserId 登录用户主键 |
| | | * @return ComActDiscussVO |
| | | */ |
| | | @Override |
| | |
| | | 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); |
| | | } |
| | |
| | | /** |
| | | * 议事投票-投票 |
| | | * |
| | | * @param comActDiscussOptionUserDTO |
| | | * 投票信息 |
| | | * @param comActDiscussOptionUserDTO 投票信息 |
| | | * @return 投票结果 |
| | | */ |
| | | @Override |
| | |
| | | /** |
| | | * 议事投票-评论-点赞、取消点赞 |
| | | * |
| | | * @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("评论不存在"); |
| | | } |
| | |
| | | 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(); |
| | |
| | | /** |
| | | * 工作大屏-议事投票列表 |
| | | * |
| | | * @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); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 议事投票后台公布结果 |
| | | * |
| | | * @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 |
| | | */ |