From 02f18587bd8860b305e2c688e20465be166bb48c Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 22 七月 2021 15:14:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java | 685 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 668 insertions(+), 17 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java index f026ac8..ff84220 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java @@ -1,26 +1,41 @@ package com.panzhihua.service_community.service.impl; +import java.util.ArrayList; +import java.util.Date; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.panzhihua.common.model.dtos.neighbor.AddComActNeighborCircleAppDTO; -import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO; -import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleDetailAppDTO; +import com.panzhihua.common.model.dtos.neighbor.*; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO; -import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentAppVO; -import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO; +import com.panzhihua.common.model.vos.neighbor.*; +import com.panzhihua.common.model.vos.neighbor.*; +import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComActNeighborCircleCommentDAO; +import com.panzhihua.common.model.vos.user.AdministratorsUserVO; +import com.panzhihua.service_community.dao.ComActNeighborCircleCommentReplyDAO; import com.panzhihua.service_community.dao.ComActNeighborCircleDAO; +import com.panzhihua.service_community.dao.ComActNeighborCircleFabulousDAO; +import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentDO; +import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyDO; import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO; +import com.panzhihua.service_community.model.dos.ComActNeighborCircleFabulousDO; import com.panzhihua.service_community.service.ComActNeighborCircleBrowseService; +import com.panzhihua.service_community.dao.*; +import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComActNeighborCircleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + import java.util.List; /** @@ -34,8 +49,30 @@ @Resource private ComActNeighborCircleBrowseService comActNeighborCircleBrowseService; + + @Resource + ComActNeighborCircleFabulousDAO neighborCircleFabulousDAO; + + @Resource + ComActNeighborCircleBrowseDAO neighborCircleBrowseDAO; + + @Resource + ComActNeighborCircleCommentDAO neighborCircleCommentDAO; + + @Resource + ComActNeighborCircleCommentReplyDAO neighborCircleCommentReplyDAO; @Resource private ComActNeighborCircleCommentDAO comActNeighborCircleCommentDAO; + @Resource + private ComActNeighborCircleCommentReplyDAO comActNeighborCircleCommentReplyDAO; + @Resource + private ComActNeighborCircleFabulousDAO comActNeighborCircleFabulousDAO; + @Resource + private ComActNeighborCircleBrowseDAO comActNeighborCircleBrowseDAO; + @Resource + private ComActDAO comActDAO; + @Resource + private ComActNeighborCircleTopicMapper comActNeighborCircleTopicMapper; /** * 分页查询邻里圈列表 @@ -46,6 +83,29 @@ public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO){ Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()); IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO); + if(!doPager.getRecords().isEmpty()){ + for (ComActNeighborCircleAppVO circleAppVO:doPager.getRecords()) { + //查询点赞信息 + ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleAppVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO != null){ + circleAppVO.setHaveSign(1); + }else{ + circleAppVO.setHaveSign(2); + } + + if(circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)){ + ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId()); + if(actDO != null){ + circleAppVO.setName(actDO.getName()); + } + } + + } + } return R.ok(doPager); } @@ -75,28 +135,619 @@ } } + /** + * 查看邻里圈详情 + * @param neighborCircleAppDTO 请求参数 + * @return 邻里圈详情 + */ @Override public R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO){ - //添加邻里圈浏览记录 - comActNeighborCircleBrowseService.addBrowseRecord(neighborCircleAppDTO.getCircleId(),neighborCircleAppDTO.getUserId()); - //查询邻里圈详情 ComActNeighborCircleDetailAppVO circleDetailAppVO = this.baseMapper.neighborDetailByApp(neighborCircleAppDTO.getCircleId()); + if(circleDetailAppVO == null){ + return R.fail("未找到邻里圈信息"); + } - //查询邻里圈下评论列表 - IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage = comActNeighborCircleCommentDAO.pageNeighborCommentByApp( - new Page(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO.getCircleId()); - if(!circleCommentAppPage.getRecords().isEmpty()){ - for (ComActNeighborCircleCommentAppVO circleCommentVo:circleCommentAppPage.getRecords()) { - //查询评论下评论回复 - - + if(circleDetailAppVO.getType() != null && circleDetailAppVO.getType().equals(ComActNeighborCircleDO.type.admin)){ + ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId()); + if(actDO != null){ + circleDetailAppVO.setName(actDO.getName()); } } + //查询邻里圈点赞信息 + ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleDetailAppVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO != null){ + circleDetailAppVO.setHaveSign(1); + }else{ + circleDetailAppVO.setHaveSign(2); + } + //查询邻里圈下评论列表 + IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage = comActNeighborCircleCommentDAO.pageNeighborCommentByApp( + new Page(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO); + if(!circleCommentAppPage.getRecords().isEmpty()){ + for (ComActNeighborCircleCommentAppVO circleCommentVo:circleCommentAppPage.getRecords()) { + //查询点赞信息 + ComActNeighborCircleFabulousDO circleCommentFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,circleCommentVo.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.pl) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleCommentFabulousDO != null){ + circleCommentVo.setHaveSign(1); + }else{ + circleCommentVo.setHaveSign(2); + } + //查询评论下评论回复 + List<ComActNeighborCircleCommentReplyAppVO> commentReplyAppVOS = comActNeighborCircleCommentReplyDAO.getCircleCommentReplyList(circleCommentVo.getId()); + if(!commentReplyAppVOS.isEmpty()){ + List<ComActNeighborCircleCommentReplyAppVO> newCommentReplyAppVOS = new ArrayList<>(); + int i = 0; + for (ComActNeighborCircleCommentReplyAppVO commentReplyVO:commentReplyAppVOS) { + if(i >= 2){ + break; + } + //查询点赞信息 + ComActNeighborCircleFabulousDO circleReplyFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,commentReplyVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleReplyFabulousDO != null){ + commentReplyVO.setHaveSign(1); + }else{ + commentReplyVO.setHaveSign(2); + } + newCommentReplyAppVOS.add(commentReplyVO); + i++; + } + circleCommentVo.setCircleCommentReplyAppList(newCommentReplyAppVOS); + circleCommentVo.setCommentReplyNum(commentReplyAppVOS.size()); + } + } + } + circleDetailAppVO.setCircleCommentAppList(circleCommentAppPage.getRecords()); return R.ok(circleDetailAppVO); } + @Override + public R pageNeighborByAdmin(ComActNeighborCircleAdminDTO neighborCircleAdminDTO) { + Page page = new Page(neighborCircleAdminDTO.getPageNum(), neighborCircleAdminDTO.getPageSize()); + IPage<ComActNeighborCircleAdminVO> doPager = this.baseMapper.pageNeighborByAdmin(page, neighborCircleAdminDTO); + doPager.getRecords().forEach(data->{ + if(data.getUserType()!=1){ + data.setReleaseName(data.getCommunityName()); + } + }); + return R.ok(doPager); + } + + @Override + public R addNeighborByAdmin(AddNeighborCircleAdminVO addVO) { + ComActNeighborCircleDO comActNeighborCircleDO = new ComActNeighborCircleDO(); + AdministratorsUserVO adminUser = this.baseMapper.selectUserByUserId(addVO.getUserId()); + if (adminUser == null) { + return R.fail("请登录重试"); + } + comActNeighborCircleDO.setReleaseId(addVO.getUserId()); + comActNeighborCircleDO.setReleasePhone(adminUser.getPhone()); + comActNeighborCircleDO.setCommunityId(adminUser.getCommunityId()); + comActNeighborCircleDO.setReleaseContent(addVO.getReleaseContent()); + comActNeighborCircleDO.setReleaseImages(addVO.getReleaseImages()); + comActNeighborCircleDO.setType(2); + comActNeighborCircleDO.setStatus(2); + comActNeighborCircleDO.setCommentNum(0); + comActNeighborCircleDO.setFabulousNum(0); + comActNeighborCircleDO.setForwardNum(0); + comActNeighborCircleDO.setViewsNum(0); + comActNeighborCircleDO.setIsBoutique(2); + comActNeighborCircleDO.setCreateAt(new Date()); + comActNeighborCircleDO.setLastCommentNum(0); + comActNeighborCircleDO.setLastFabulousNum(0); + comActNeighborCircleDO.setLastViewsNum(0); + this.baseMapper.insert(comActNeighborCircleDO); + return R.ok(); + } + + @Override + public R changeStatusByAdmin(EditNeighborCircleAdminVO editVO) { + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(editVO.getId()); + if (neighborCircleDO == null) { + return R.fail("id有误!"); + } + neighborCircleDO.setStatus(editVO.getStatus()); + if(editVO.getRefuseReason()!=null){ + neighborCircleDO.setRefuseReason(editVO.getRefuseReason()); + } + this.baseMapper.updateById(neighborCircleDO); + return R.ok(neighborCircleDO.getReleaseId()); + } + + /** + * 用户查询邻里圈列表 + * @param neighborCircleAppDTO 请求参数 + * @return 邻里圈列表 + */ + @Override + public R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO){ + IPage<ComActNeighborCircleAppVO> neighborCircleIPage = this.baseMapper.neighborExamineByApp( + new Page<>(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO.getUserId()); + if(!neighborCircleIPage.getRecords().isEmpty()) { + for (ComActNeighborCircleAppVO circleAppVO : neighborCircleIPage.getRecords()) { + //查询点赞信息 + ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getIsEffective, ComActNeighborCircleFabulousDO.isEffective.yes)); + if (circleFabulousDO != null) { + circleAppVO.setHaveSign(1); + } else { + circleAppVO.setHaveSign(2); + } + } + } + return R.ok(neighborCircleIPage); + } + + /** + * 邻里圈点赞 + * @param fabulousAppDTO 请求参数 + * @return 点赞结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R neighborFabulousByApp(ComActNeighborFabulousAppDTO fabulousAppDTO){ + + ComActNeighborCircleFabulousDO circleFabulousDO = new ComActNeighborCircleFabulousDO(); + circleFabulousDO.setUserId(fabulousAppDTO.getUserId()); + circleFabulousDO.setType(fabulousAppDTO.getType()); + circleFabulousDO.setParentId(fabulousAppDTO.getServiceId()); + //判断点赞类型 + if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)){ + + ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes) + .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId())); + if(oldCircleFabulousDO != null){ + return R.fail("您已点赞"); + } + + //增加邻里圈点赞数量 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId()); + if(neighborCircleDO != null){ + neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() + 1); + neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1); + this.baseMapper.updateById(neighborCircleDO); + circleFabulousDO.setCircleId(neighborCircleDO.getId()); + } + //添加邻里圈浏览记录 + comActNeighborCircleBrowseService.addBrowseRecord(fabulousAppDTO.getServiceId(),fabulousAppDTO.getUserId()); + }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)){ + ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.pl) + .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(oldCircleFabulousDO != null){ + return R.fail("您已点赞"); + } + //增加邻里圈评论点赞数量 + ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId()); + if(circleCommentDO != null){ + circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1); + comActNeighborCircleCommentDAO.updateById(circleCommentDO); + circleFabulousDO.setCircleId(circleCommentDO.getCircleId()); + } + }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)){ + ComActNeighborCircleFabulousDO oldCircleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborFabulousAppDTO.type.hf) + .eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(oldCircleFabulousDO != null){ + return R.fail("您已点赞"); + } + //增加邻里圈评论回复点赞数量 + ComActNeighborCircleCommentReplyDO circleCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId()); + if(circleCommentReplyDO != null){ + circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() + 1); + comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO); + circleFabulousDO.setCircleId(circleCommentReplyDO.getCircleId()); + } + } + if(comActNeighborCircleFabulousDAO.insert(circleFabulousDO) > 0){ + return R.ok(); + }else{ + return R.fail("点赞失败"); + } + } + + /** + * 邻里圈转发 + * @param forwardAppDTO 请求参数 + * @return 转发结果 + */ + @Override + public R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO){ + + //添加邻里圈浏览记录 + comActNeighborCircleBrowseService.addBrowseRecord(forwardAppDTO.getCircleId(),forwardAppDTO.getUserId()); + + ComActNeighborCircleDO circleDO = this.baseMapper.selectById(forwardAppDTO.getCircleId()); + if(circleDO == null){ + return R.fail("没有找到邻里圈"); + } + circleDO.setForwardNum(circleDO.getForwardNum() + 1); + if(this.baseMapper.updateById(circleDO) > 0){ + return R.ok(); + }else{ + return R.fail("转发失败"); + } + } + + /** + * 邻里圈评论 + * @param commentAppDTO 请求参数 + * @return 评论结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO){ + + ComActNeighborCircleCommentDO circleCommentDO = new ComActNeighborCircleCommentDO(); + //查询邻里圈更新邻里圈评论数量 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(commentAppDTO.getCircleId()); + if(neighborCircleDO == null){ + return R.fail("没有找到邻里圈"); + } + neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1); + neighborCircleDO.setReplyAt(new Date()); + this.baseMapper.updateById(neighborCircleDO); + + circleCommentDO.setCircleId(commentAppDTO.getCircleId()); + circleCommentDO.setUserId(commentAppDTO.getUserId()); + circleCommentDO.setUserPhone(commentAppDTO.getPhone()); + circleCommentDO.setContent(commentAppDTO.getContent()); + if(neighborCircleDO.getReleaseId().equals(commentAppDTO.getUserId())){ + circleCommentDO.setIsRelease(ComActNeighborCircleCommentDO.isRelease.yes); + } + + if(comActNeighborCircleCommentDAO.insert(circleCommentDO) > 0){ + return R.ok(); + }else{ + return R.fail("评论失败"); + } + } + + /** + * 邻里圈回复 + * @param replyAppDTO 请求参数 + * @return 回复结果 + */ + @Override + public R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO){ + + ComActNeighborCircleCommentReplyDO circleCommentReplyDO = new ComActNeighborCircleCommentReplyDO(); + //查询邻里圈更新邻里圈评论数量 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(replyAppDTO.getCircleId()); + if(neighborCircleDO == null){ + return R.fail("没有找到邻里圈"); + } + neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1); + neighborCircleDO.setReplyAt(new Date()); + this.baseMapper.updateById(neighborCircleDO); + + circleCommentReplyDO.setCircleId(replyAppDTO.getCircleId()); + circleCommentReplyDO.setUserId(replyAppDTO.getUserId()); + circleCommentReplyDO.setReplyContent(replyAppDTO.getContent()); + if(neighborCircleDO.getReleaseId().equals(replyAppDTO.getUserId())){ + circleCommentReplyDO.setIsRelease(1); + } + + //判断回复类型 + if(replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.pl)){ + //查询评论信息 + ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(replyAppDTO.getServiceId()); + if(circleCommentDO != null){ + circleCommentReplyDO.setCommentId(replyAppDTO.getServiceId()); + circleCommentReplyDO.setParentId(0L); + circleCommentReplyDO.setParentUserId(circleCommentDO.getUserId()); + } + }else if(replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.hf)){ + //查询上级回复信息 + ComActNeighborCircleCommentReplyDO parentCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(replyAppDTO.getServiceId()); + if(parentCommentReplyDO != null){ + circleCommentReplyDO.setCommentId(parentCommentReplyDO.getCommentId()); + circleCommentReplyDO.setParentId(parentCommentReplyDO.getId()); + circleCommentReplyDO.setParentUserId(parentCommentReplyDO.getUserId()); + } + } + + if(comActNeighborCircleCommentReplyDAO.insert(circleCommentReplyDO) > 0){ + return R.ok(); + }else{ + return R.fail("回复失败"); + } + } + + @Override + public R timeTaskCircleFlow(){ + Date oldDate = DateUtils.addDay(new Date(),-3); + //查询所有状态正常的邻里圈 + List<ComActNeighborCircleDO> circleDOList = this.baseMapper.selectList( + new QueryWrapper<ComActNeighborCircleDO>().lambda().eq(ComActNeighborCircleDO::getStatus,ComActNeighborCircleDO.status.xs)); + if(!circleDOList.isEmpty()){ + //遍历查询到的邻里圈,更新邻里圈内近3天的评论数,点赞数,浏览量 + for (ComActNeighborCircleDO neighborCircleDO:circleDOList) { + //查询邻里圈近3天的评论数 + int commentCount = comActNeighborCircleCommentDAO.selectCount( + new QueryWrapper<ComActNeighborCircleCommentDO>().lambda().eq(ComActNeighborCircleCommentDO::getCircleId,neighborCircleDO.getId())); + //查询邻里圈近3天的评论回复数 + int commentReplyCount = comActNeighborCircleCommentReplyDAO.selectCount( + new QueryWrapper<ComActNeighborCircleCommentReplyDO>().lambda() + .eq(ComActNeighborCircleCommentReplyDO::getCircleId,neighborCircleDO.getId())); + //查询邻里圈近3天的点赞数 + int fabulousCount = comActNeighborCircleFabulousDAO.selectCount(new QueryWrapper<ComActNeighborCircleFabulousDO>() + .lambda().eq(ComActNeighborCircleFabulousDO::getCircleId,neighborCircleDO.getId()) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + //查询邻里圈近3天的浏览量 + int browseCount = comActNeighborCircleBrowseDAO.selectCount( + new QueryWrapper<ComActNeighborCircleBrowseDO>().lambda().eq(ComActNeighborCircleBrowseDO::getNeighborId,neighborCircleDO.getId())); + //更新邻里圈信息 + neighborCircleDO.setLastCommentNum(commentCount + commentReplyCount); + neighborCircleDO.setLastFabulousNum(fabulousCount); + neighborCircleDO.setLastViewsNum(browseCount); + this.baseMapper.updateById(neighborCircleDO); + } + } + + return R.ok(); + } + + @Override + public R deleteByAdmin(Long id) { + ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(id); + if (comActNeighborCircleDO == null) { + return R.fail(); + } + if (comActNeighborCircleDO.getStatus() == 1) { + return R.fail("待审核的邻里圈不能删除"); + } + //邻里圈删除 + this.baseMapper.deleteById(id); + //邻里圈评论删除 + neighborCircleCommentDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleCommentDO>() + .eq(ComActNeighborCircleCommentDO::getCircleId, id)); + //邻里圈回复删除 + neighborCircleCommentReplyDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleCommentReplyDO>() + .eq(ComActNeighborCircleCommentReplyDO::getCircleId, id)); + //邻里圈浏览器记录 + neighborCircleBrowseDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleBrowseDO>() + .eq(ComActNeighborCircleBrowseDO::getNeighborId, id)); + //邻里圈点赞删除 + neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>() + .eq(ComActNeighborCircleFabulousDO::getCircleId,id)); + return R.ok(); + + } + + @Override + public R detailNeighborByAdmin(Long id) { + ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(id); + if (comActNeighborCircleDO == null) { + return R.fail("id有误"); + } + AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getReleaseId()); + DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO(); + BeanUtils.copyProperties(comActNeighborCircleDO, vo); + vo.setReleaseName(user.getName()); + + //查询话题名称 + if(comActNeighborCircleDO.getTopicId() != null){ + ComActNeighborCircleTopicDO circleTopicDO = comActNeighborCircleTopicMapper.selectById(comActNeighborCircleDO.getTopicId()); + vo.setTopicName(circleTopicDO.getName()); + } + return R.ok(vo); + } + + @Override + public R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO dto) { + ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(dto.getId()); + if (comActNeighborCircleDO == null) { + return R.fail("id有误"); + } + Page<ComActNeighborCircleCommentDO> page = new Page<>(dto.getPageNum(),dto.getPageSize()); + //1、先查询所有该邻里圈_的评论 + IPage<ComActNeighborCommentByAdminVO> commentDOIPage = neighborCircleCommentDAO.selectPageDetailNeighborComment(page,dto); + return R.ok(commentDOIPage); + } + + @Override + public R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO dto) { + ComActNeighborCircleCommentDO commentDO = neighborCircleCommentDAO.selectById(dto.getId()); + if(commentDO==null){ + return R.fail("id有误!"); + } + commentDO.setStatus(dto.getStatus()); + neighborCircleCommentDAO.updateById(commentDO); + + //查询邻里圈更新邻里圈评论数量 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(commentDO.getCircleId()); + if(neighborCircleDO != null){ + if(dto.getStatus().equals(2)){ + neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() - 1); + }else{ + neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1); + } + this.baseMapper.updateById(neighborCircleDO); + } + return R.ok(); + } + + @Override + public R detailNeighborCommentByAdmin(Long id) { + ComActNeighborCircleCommentDO commentDO = neighborCircleCommentDAO.selectById(id); + if(commentDO==null){ + return R.fail("id有误!"); + } + AdministratorsUserVO user = this.baseMapper.selectUserByUserId(commentDO.getUserId()); + ComActNeighborCommentByAdminVO vo = new ComActNeighborCommentByAdminVO(); + BeanUtils.copyProperties(commentDO,vo); + String name = user.getName()==null?user.getNickName():user.getName(); + vo.setUserName(name); + return R.ok(vo); + } + + @Override + public R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto) { + Page<ComActNeighborCircleCommentReplyDO> page = new Page<>(dto.getPageNum(),dto.getPageSize()); + Page<ComActNeighborCommentReplyByAdminVO> replyPage = neighborCircleCommentReplyDAO.selectListByComment(page, dto); + replyPage.getRecords().forEach(reply->{ + + }); + return R.ok(replyPage); + } + + @Override + public R detailNeighborCommentReply(Long id) { + ComActNeighborCircleCommentReplyDO replyDO = neighborCircleCommentReplyDAO.selectById(id); + if(replyDO==null){ + return R.fail("id有误!"); + } + AdministratorsUserVO user = this.baseMapper.selectUserByUserId(replyDO.getUserId()); + ComActNeighborCommentReplyByAdminVO vo = new ComActNeighborCommentReplyByAdminVO(); + BeanUtils.copyProperties(replyDO,vo); + vo.setUserName(user.getName()); + vo.setUserPhone(user.getPhone()); + return R.ok(vo); + } + + @Override + public R changeCommentReplyStatusByAdmin(ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) { + ComActNeighborCircleCommentReplyDO replyDO = neighborCircleCommentReplyDAO.selectById(changeStatusReplyVO.getId()); + if(replyDO==null){ + return R.fail("id有误!"); + } + replyDO.setStatus(changeStatusReplyVO.getStatus()); + neighborCircleCommentReplyDAO.updateById(replyDO); + return R.ok(); + } + + /** + * 邻里圈取消点赞 + * @param fabulousAppDTO 请求参数 + * @return 取消点赞结果 + */ + @Override + public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO){ + ComActNeighborCircleFabulousDO circleFabulousDO = null; + //查询邻里圈点赞信息 + if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)){ + //查询点赞信息 + circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.llq) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO == null){ + return R.fail("未查询到点赞信息"); + } + + //减少邻里圈点赞数量 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId()); + if(neighborCircleDO != null){ + neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() - 1); + this.baseMapper.updateById(neighborCircleDO); + } + }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)){ + circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.pl) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO == null){ + return R.fail("未查询到点赞信息"); + } + + //减少邻里圈评论点赞数量 + ComActNeighborCircleCommentDO circleCommentDO = comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId()); + if(circleCommentDO != null){ + circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() - 1); + comActNeighborCircleCommentDAO.updateById(circleCommentDO); + } + }else if(fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)){ + circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,fabulousAppDTO.getServiceId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,fabulousAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO == null){ + return R.fail("未查询到点赞信息"); + } + //减少邻里圈评论回复点赞数量 + ComActNeighborCircleCommentReplyDO circleCommentReplyDO = comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId()); + if(circleCommentReplyDO != null){ + circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() - 1); + comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO); + } + } + if(circleFabulousDO != null){ + circleFabulousDO.setIsEffective(ComActNeighborCircleFabulousDO.isEffective.no); + comActNeighborCircleFabulousDAO.updateById(circleFabulousDO); + } + return R.ok(); + } + + /** + * 添加邻里圈浏览记录 + * @param addBrowseAppDTO 请求参数 + * @return 返回参数 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO){ + //添加邻里圈浏览记录 + comActNeighborCircleBrowseService.addBrowseRecord(addBrowseAppDTO.getCircleId(),addBrowseAppDTO.getUserId()); + //更新邻里圈记录 + ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(addBrowseAppDTO.getCircleId()); + if(neighborCircleDO != null){ + neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1); + this.baseMapper.updateById(neighborCircleDO); + } + return R.ok(); + } + + /** + * 分页查询评论下所有回复 + * @param commentReplyAppDTO 请求参数 + * @return 回复列表 + */ + @Override + public R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO){ + IPage<ComActNeighborCommentReplyAppVO> neighborCircleIPage = this.baseMapper.neighborCommentReplyByApp( + new Page<>(commentReplyAppDTO.getPageNum(),commentReplyAppDTO.getPageSize()),commentReplyAppDTO.getCommentId()); + if(!neighborCircleIPage.getRecords().isEmpty()){ + for (ComActNeighborCommentReplyAppVO commentReplyAppVO:neighborCircleIPage.getRecords()) { + //查询点赞信息 + ComActNeighborCircleFabulousDO circleFabulousDO = comActNeighborCircleFabulousDAO.selectOne( + new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda().eq(ComActNeighborCircleFabulousDO::getParentId,commentReplyAppVO.getId()) + .eq(ComActNeighborCircleFabulousDO::getUserId,commentReplyAppDTO.getUserId()) + .eq(ComActNeighborCircleFabulousDO::getType,ComActNeighborCircleFabulousDO.type.hf) + .eq(ComActNeighborCircleFabulousDO::getIsEffective,ComActNeighborCircleFabulousDO.isEffective.yes)); + if(circleFabulousDO != null){ + commentReplyAppVO.setHaveSign(1); + }else{ + commentReplyAppVO.setHaveSign(2); + } + } + } + return R.ok(neighborCircleIPage); + } } -- Gitblit v1.7.1