From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期六, 21 八月 2021 16:35:14 +0800 Subject: [PATCH] 随手拍改版接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java | 632 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 598 insertions(+), 34 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 c290807..c055873 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,27 +1,28 @@ 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.ComActNeighborCircleAdminDTO; -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.AddNeighborCircleAdminVO; -import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO; -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.neighbor.EditNeighborCircleAdminVO; 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.*; @@ -31,8 +32,10 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; + import java.util.List; /** @@ -46,9 +49,7 @@ @Resource private ComActNeighborCircleBrowseService comActNeighborCircleBrowseService; - @Resource - private ComActNeighborCircleCommentDAO comActNeighborCircleCommentDAO; -public abstract class ComActNeighborCircleServiceImpl extends ServiceImpl<ComActNeighborCircleDAO, ComActNeighborCircleDO> implements ComActNeighborCircleService { + @Resource ComActNeighborCircleFabulousDAO neighborCircleFabulousDAO; @@ -60,6 +61,18 @@ @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; /** * 分页查询邻里圈列表 @@ -70,6 +83,31 @@ 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()) { + if(neighborCircleAppDTO.getUserId() != null){ + //查询点赞信息 + 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); } @@ -99,27 +137,93 @@ } } + /** + * 查看邻里圈详情 + * @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()); + } + } - + if(neighborCircleAppDTO.getUserId() != null){ + //查询邻里圈点赞信息 + 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()) { + + if(neighborCircleAppDTO.getUserId() != null){ + //查询点赞信息 + 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<>(); + if(neighborCircleAppDTO.getUserId() != null){ + 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); } @@ -127,6 +231,11 @@ 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); } @@ -134,7 +243,7 @@ public R addNeighborByAdmin(AddNeighborCircleAdminVO addVO) { ComActNeighborCircleDO comActNeighborCircleDO = new ComActNeighborCircleDO(); AdministratorsUserVO adminUser = this.baseMapper.selectUserByUserId(addVO.getUserId()); - if(adminUser==null){ + if (adminUser == null) { return R.fail("请登录重试"); } comActNeighborCircleDO.setReleaseId(addVO.getUserId()); @@ -142,7 +251,8 @@ comActNeighborCircleDO.setCommunityId(adminUser.getCommunityId()); comActNeighborCircleDO.setReleaseContent(addVO.getReleaseContent()); comActNeighborCircleDO.setReleaseImages(addVO.getReleaseImages()); - comActNeighborCircleDO.setStatus(1); + comActNeighborCircleDO.setType(2); + comActNeighborCircleDO.setStatus(2); comActNeighborCircleDO.setCommentNum(0); comActNeighborCircleDO.setFabulousNum(0); comActNeighborCircleDO.setForwardNum(0); @@ -159,12 +269,258 @@ @Override public R changeStatusByAdmin(EditNeighborCircleAdminVO editVO) { ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(editVO.getId()); - if(neighborCircleDO==null){ + if (neighborCircleDO == null) { return R.fail("id有误!"); } neighborCircleDO.setStatus(editVO.getStatus()); - neighborCircleDO.setRefuseReason(editVO.getRefuseReason()); + 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){ + + if(forwardAppDTO.getUserId() != null){ + //添加邻里圈浏览记录 + 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(); } @@ -187,18 +543,226 @@ .eq(ComActNeighborCircleCommentReplyDO::getCircleId, id)); //邻里圈浏览器记录 neighborCircleBrowseDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleBrowseDO>() - .eq(ComActNeighborCircleBrowseDO::getNeighborId,id)); + .eq(ComActNeighborCircleBrowseDO::getNeighborId, id)); //邻里圈点赞删除 - neighborCircleBrowseDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleBrowseDO>() - .eq(ComActNeighborCircleBrowseDO::getNeighborId,id)); -/* neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>() - .eq(ComActNeighborCircleFabulousDO::get))*/ - return R.ok(); + neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>() + .eq(ComActNeighborCircleFabulousDO::getCircleId,id)); + return R.ok(); } @Override public R detailNeighborByAdmin(Long id) { - return null; + 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()) { + if(commentReplyAppDTO.getUserId() != null){ + //查询点赞信息 + 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