package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.constants.NeighborCircleConstants; import com.panzhihua.common.model.dtos.neighbor.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.neighbor.*; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComActNeighborCircleBrowseWestService; import com.panzhihua.service_community.service.ComActNeighborCircleTopicWestService; import com.panzhihua.service_community.service.ComActNeighborCircleWestService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @auther lyq * @create 2021-04-28 09:20:49 * @describe 邻里圈表服务实现类 */ @Slf4j @Service public class ComActNeighborCircleWestServiceImpl extends ServiceImpl implements ComActNeighborCircleWestService { @Resource ComActNeighborCircleFabulousWestDAO neighborCircleFabulousDAO; @Resource ComActNeighborCircleBrowseWestDAO neighborCircleBrowseDAO; @Resource ComActNeighborCircleCommentWestDAO neighborCircleCommentDAO; @Resource ComActNeighborCircleCommentReplyWestDAO neighborCircleCommentReplyDAO; @Resource private ComActNeighborCircleBrowseWestService comActNeighborCircleBrowseWestService; @Resource private ComActNeighborCircleCommentWestDAO comActNeighborCircleCommentWestDAO; @Resource private ComActNeighborCircleCommentReplyWestDAO comActNeighborCircleCommentReplyWestDAO; @Resource private ComActNeighborCircleFabulousWestDAO comActNeighborCircleFabulousWestDAO; @Resource private ComActNeighborCircleBrowseWestDAO comActNeighborCircleBrowseWestDAO; @Resource private ComActDAO comActDAO; @Resource private ComActNeighborCircleTopicWestMapper comActNeighborCircleTopicWestMapper; @Resource private ComActNeighborCircleTopicWestService comActNeighborCircleTopicWestService; /** * 分页查询邻里圈列表 * * @param neighborCircleAppDTO * 请求参数 * @return 邻里圈列表 */ @Override public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) { Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()); IPage doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO); if (!doPager.getRecords().isEmpty()) { for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) { if (neighborCircleAppDTO.getUserId() != null) { // 查询点赞信息 ComActNeighborCircleFabulousWestDO circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleAppVO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO != null) { circleAppVO.setHaveSign(1); } else { circleAppVO.setHaveSign(2); } } if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleWestDO.type.admin)) { ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId()); if (actDO != null) { circleAppVO.setName(actDO.getName()); } } } } return R.ok(doPager); } /** * 用户发布邻里圈审核 * * @param addNeighborCircleAppDTO * 邻里圈请求参数 * @return 发布结果 */ @Override public R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) { // 新增邻里圈审核 ComActNeighborCircleWestDO neighborCircleDO = new ComActNeighborCircleWestDO(); BeanUtils.copyProperties(addNeighborCircleAppDTO, neighborCircleDO); if (addNeighborCircleAppDTO.getUserId() != null) { neighborCircleDO.setReleaseId(addNeighborCircleAppDTO.getUserId()); } if (addNeighborCircleAppDTO.getCommunityId() != null) { neighborCircleDO.setCommunityId(addNeighborCircleAppDTO.getCommunityId()); } if (StringUtils.isNotEmpty(addNeighborCircleAppDTO.getPhone())) { neighborCircleDO.setReleasePhone(addNeighborCircleAppDTO.getPhone()); } //判断用户的话题是否是新增的 if(StringUtils.isNotEmpty(addNeighborCircleAppDTO.getTopicName())){ //新增邻里圈话题 ComActNeighborCircleTopicWestDO circleTopicDO = comActNeighborCircleTopicWestMapper.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleTopicWestDO::getCommunityId,neighborCircleDO.getCommunityId()) .eq(ComActNeighborCircleTopicWestDO::getName,addNeighborCircleAppDTO.getTopicName())); if(circleTopicDO == null){ circleTopicDO = new ComActNeighborCircleTopicWestDO(); circleTopicDO.setCommunityId(neighborCircleDO.getCommunityId()); circleTopicDO.setName(addNeighborCircleAppDTO.getTopicName()); circleTopicDO.setCreateBy(neighborCircleDO.getReleaseId()); circleTopicDO.setCreateAt(new Date()); circleTopicDO.setCount(0); circleTopicDO.setHotNum(0L); circleTopicDO.setStatus(ComActNeighborCircleTopicWestDO.status.yes); comActNeighborCircleTopicWestMapper.insert(circleTopicDO); } neighborCircleDO.setTopicId(circleTopicDO.getId()); } //判断当前邻里圈是否需要审核 if(addNeighborCircleAppDTO.getIsExamine().equals(AddComActNeighborCircleAppDTO.isExamine.no)){ //当邻里圈不需要审核才进入自动审核 //判断邻里圈自动审核结果 if(addNeighborCircleAppDTO.getWxExamineResult().equals(AddComActNeighborCircleAppDTO.isExamine.yes)){ neighborCircleDO.setStatus(ComActNeighborCircleWestDO.status.xs); if(neighborCircleDO.getTopicId() != null){ //给邻里圈话题添加邻里圈数量 comActNeighborCircleTopicWestMapper.addCount(neighborCircleDO.getTopicId()); } }else{ neighborCircleDO.setStatus(ComActNeighborCircleWestDO.status.bh); neighborCircleDO.setRefuseReason("内容违规"); } } if(this.baseMapper.insert(neighborCircleDO) > 0){ return R.ok(); } else { return R.fail("发布失败"); } } /** * 查看邻里圈详情 * * @param neighborCircleAppDTO * 请求参数 * @return 邻里圈详情 */ @Override public R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) { // 查询邻里圈详情 ComActNeighborCircleDetailAppVO circleDetailAppVO = this.baseMapper.neighborDetailByApp(neighborCircleAppDTO.getCircleId()); if (circleDetailAppVO == null) { return R.fail("未找到邻里圈信息"); } if (circleDetailAppVO.getType() != null && circleDetailAppVO.getType().equals(ComActNeighborCircleWestDO.type.admin)) { ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId()); if (actDO != null) { circleDetailAppVO.setName(actDO.getName()); } } if (neighborCircleAppDTO.getUserId() != null) { // 查询邻里圈点赞信息 ComActNeighborCircleFabulousWestDO circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getParentId, circleDetailAppVO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO != null) { circleDetailAppVO.setHaveSign(1); } else { circleDetailAppVO.setHaveSign(2); } } // 查询邻里圈下评论列表 IPage circleCommentAppPage = comActNeighborCircleCommentWestDAO.pageNeighborCommentByApp( new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()), neighborCircleAppDTO); if (!circleCommentAppPage.getRecords().isEmpty()) { for (ComActNeighborCircleCommentAppVO circleCommentVo : circleCommentAppPage.getRecords()) { if (neighborCircleAppDTO.getUserId() != null) { // 查询点赞信息 ComActNeighborCircleFabulousWestDO circleCommentFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleCommentVo.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.pl) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleCommentFabulousDO != null) { circleCommentVo.setHaveSign(1); } else { circleCommentVo.setHaveSign(2); } } // 查询评论下评论回复 List commentReplyAppVOS = comActNeighborCircleCommentReplyWestDAO.getCircleCommentReplyList(circleCommentVo.getId()); if (!commentReplyAppVOS.isEmpty()) { List newCommentReplyAppVOS = new ArrayList<>(); if (neighborCircleAppDTO.getUserId() != null) { int i = 0; for (ComActNeighborCircleCommentReplyAppVO commentReplyVO : commentReplyAppVOS) { if (i >= 2) { break; } // 查询点赞信息 ComActNeighborCircleFabulousWestDO circleReplyFabulousDO = comActNeighborCircleFabulousWestDAO .selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getParentId, commentReplyVO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.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 doPager = this.baseMapper.pageNeighborByAdmin(page, neighborCircleAdminDTO); doPager.getRecords().forEach(data -> { if(data.getUserType()!=null){ if (data.getUserType() != 1) { data.setReleaseName(data.getCommunityName()); } } }); return R.ok(doPager); } @Override public R addNeighborByAdmin(AddNeighborCircleAdminVO addVO) { ComActNeighborCircleWestDO comActNeighborCircleWestDO = new ComActNeighborCircleWestDO(); AdministratorsUserVO adminUser = this.baseMapper.selectUserByUserId(addVO.getUserId()); if (adminUser == null) { return R.fail("请登录重试"); } comActNeighborCircleWestDO.setReleaseId(addVO.getUserId()); comActNeighborCircleWestDO.setReleasePhone(adminUser.getPhone()); comActNeighborCircleWestDO.setCommunityId(adminUser.getCommunityId()); comActNeighborCircleWestDO.setReleaseContent(addVO.getReleaseContent()); comActNeighborCircleWestDO.setReleaseImages(addVO.getReleaseImages()); comActNeighborCircleWestDO.setType(2); comActNeighborCircleWestDO.setStatus(2); comActNeighborCircleWestDO.setCommentNum(0); comActNeighborCircleWestDO.setFabulousNum(0); comActNeighborCircleWestDO.setForwardNum(0); comActNeighborCircleWestDO.setViewsNum(0); comActNeighborCircleWestDO.setIsBoutique(2); comActNeighborCircleWestDO.setCreateAt(new Date()); comActNeighborCircleWestDO.setLastCommentNum(0); comActNeighborCircleWestDO.setLastFabulousNum(0); comActNeighborCircleWestDO.setLastViewsNum(0); this.baseMapper.insert(comActNeighborCircleWestDO); return R.ok(); } @Override public R changeStatusByAdmin(EditNeighborCircleAdminVO editVO) { ComActNeighborCircleWestDO 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); if(editVO.getStatus().equals(EditNeighborCircleAdminVO.status.xs) && neighborCircleDO.getTopicId() != null){ //给邻里圈话题添加邻里圈数量 comActNeighborCircleTopicWestMapper.addCount(neighborCircleDO.getTopicId()); } return R.ok(neighborCircleDO.getReleaseId()); } /** * 用户查询邻里圈列表 * * @param neighborCircleAppDTO * 请求参数 * @return 邻里圈列表 */ @Override public R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) { IPage neighborCircleIPage = this.baseMapper.neighborExamineByApp( new Page<>(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()), neighborCircleAppDTO.getUserId()); if (!neighborCircleIPage.getRecords().isEmpty()) { for (ComActNeighborCircleAppVO circleAppVO : neighborCircleIPage.getRecords()) { // 查询点赞信息 ComActNeighborCircleFabulousWestDO circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleAppVO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.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) { ComActNeighborCircleFabulousWestDO circleFabulousDO = new ComActNeighborCircleFabulousWestDO(); circleFabulousDO.setUserId(fabulousAppDTO.getUserId()); circleFabulousDO.setType(fabulousAppDTO.getType()); circleFabulousDO.setParentId(fabulousAppDTO.getServiceId()); // 判断点赞类型 if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) { ComActNeighborCircleFabulousWestDO oldCircleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.llq) .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes) .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId())); if (oldCircleFabulousDO != null) { return R.fail("您已点赞"); } // 增加邻里圈点赞数量 ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId()); if (neighborCircleDO != null) { neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() + 1); neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM; neighborCircleDO.setHotNum(neighborCircleDO.getHotNum() + hotNum); this.baseMapper.updateById(neighborCircleDO); comActNeighborCircleTopicWestMapper.addHotNum(neighborCircleDO.getTopicId(),hotNum); circleFabulousDO.setCircleId(neighborCircleDO.getId()); } // 添加邻里圈浏览记录 comActNeighborCircleBrowseWestService.addBrowseRecord(fabulousAppDTO.getServiceId(), fabulousAppDTO.getUserId()); } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)) { ComActNeighborCircleFabulousWestDO oldCircleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.pl) .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (oldCircleFabulousDO != null) { return R.fail("您已点赞"); } // 增加邻里圈评论点赞数量 ComActNeighborCircleCommentWestDO circleCommentDO = comActNeighborCircleCommentWestDAO.selectById(fabulousAppDTO.getServiceId()); if (circleCommentDO != null) { circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1); comActNeighborCircleCommentWestDAO.updateById(circleCommentDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM; this.baseMapper.addTopicHotNum(circleCommentDO.getCircleId(),hotNum); this.baseMapper.addHotNum(circleCommentDO.getCircleId(),hotNum); circleFabulousDO.setCircleId(circleCommentDO.getCircleId()); } } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)) { ComActNeighborCircleFabulousWestDO oldCircleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.hf) .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (oldCircleFabulousDO != null) { return R.fail("您已点赞"); } // 增加邻里圈评论回复点赞数量 ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO = comActNeighborCircleCommentReplyWestDAO.selectById(fabulousAppDTO.getServiceId()); if (circleCommentReplyDO != null) { circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() + 1); comActNeighborCircleCommentReplyWestDAO.updateById(circleCommentReplyDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM; this.baseMapper.addTopicHotNum(circleCommentReplyDO.getCircleId(),hotNum); this.baseMapper.addHotNum(circleCommentReplyDO.getCircleId(),hotNum); circleFabulousDO.setCircleId(circleCommentReplyDO.getCircleId()); } } if (comActNeighborCircleFabulousWestDAO.insert(circleFabulousDO) > 0) { return R.ok(); } else { return R.fail("点赞失败"); } } /** * 邻里圈转发 * * @param forwardAppDTO * 请求参数 * @return 转发结果 */ @Override public R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO) { if (forwardAppDTO.getUserId() != null) { // 添加邻里圈浏览记录 comActNeighborCircleBrowseWestService.addBrowseRecord(forwardAppDTO.getCircleId(), forwardAppDTO.getUserId()); } ComActNeighborCircleWestDO circleDO = this.baseMapper.selectById(forwardAppDTO.getCircleId()); if (circleDO == null) { return R.fail("没有找到邻里圈"); } circleDO.setForwardNum(circleDO.getForwardNum() + 1); if (this.baseMapper.updateById(circleDO) > 0){ //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.VIEW_HOT_NUM; this.baseMapper.addHotNum(forwardAppDTO.getCircleId(),hotNum); this.baseMapper.addTopicHotNum(forwardAppDTO.getCircleId(),hotNum); return R.ok(); } else { return R.fail("转发失败"); } } /** * 邻里圈评论 * * @param commentAppDTO * 请求参数 * @return 评论结果 */ @Override @Transactional(rollbackFor = Exception.class) public R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO) { ComActNeighborCircleCommentWestDO circleCommentDO = new ComActNeighborCircleCommentWestDO(); // 查询邻里圈更新邻里圈评论数量 ComActNeighborCircleWestDO 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); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.COMMENT_HOT_NUM; this.baseMapper.addHotNum(commentAppDTO.getCircleId(),hotNum); this.baseMapper.addTopicHotNum(commentAppDTO.getCircleId(),hotNum); circleCommentDO.setCircleId(commentAppDTO.getCircleId()); circleCommentDO.setUserId(commentAppDTO.getUserId()); circleCommentDO.setUserPhone(commentAppDTO.getPhone()); circleCommentDO.setContent(commentAppDTO.getContent()); if (neighborCircleDO.getReleaseId().equals(commentAppDTO.getUserId())) { circleCommentDO.setIsRelease(ComActNeighborCircleCommentWestDO.isRelease.yes); } if (comActNeighborCircleCommentWestDAO.insert(circleCommentDO) > 0) { return R.ok(); } else { return R.fail("评论失败"); } } /** * 邻里圈回复 * * @param replyAppDTO * 请求参数 * @return 回复结果 */ @Override public R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO) { ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO = new ComActNeighborCircleCommentReplyWestDO(); // 查询邻里圈更新邻里圈评论数量 ComActNeighborCircleWestDO 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); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.COMMENT_HOT_NUM; this.baseMapper.addHotNum(replyAppDTO.getCircleId(),hotNum); this.baseMapper.addTopicHotNum(replyAppDTO.getCircleId(),hotNum); 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)) { // 查询评论信息 ComActNeighborCircleCommentWestDO circleCommentDO = comActNeighborCircleCommentWestDAO.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)) { // 查询上级回复信息 ComActNeighborCircleCommentReplyWestDO parentCommentReplyDO = comActNeighborCircleCommentReplyWestDAO.selectById(replyAppDTO.getServiceId()); if (parentCommentReplyDO != null) { circleCommentReplyDO.setCommentId(parentCommentReplyDO.getCommentId()); circleCommentReplyDO.setParentId(parentCommentReplyDO.getId()); circleCommentReplyDO.setParentUserId(parentCommentReplyDO.getUserId()); } } if (comActNeighborCircleCommentReplyWestDAO.insert(circleCommentReplyDO) > 0) { return R.ok(); } else { return R.fail("回复失败"); } } @Override public R timeTaskCircleFlow() { Date oldDate = DateUtils.addDay(new Date(), -3); // 查询所有状态正常的邻里圈 List circleDOList = this.baseMapper.selectList(new QueryWrapper().lambda() .eq(ComActNeighborCircleWestDO::getStatus, ComActNeighborCircleWestDO.status.xs)); if (!circleDOList.isEmpty()) { // 遍历查询到的邻里圈,更新邻里圈内近3天的评论数,点赞数,浏览量 for (ComActNeighborCircleWestDO neighborCircleDO : circleDOList) { // 查询邻里圈近3天的评论数 int commentCount = comActNeighborCircleCommentWestDAO.selectCount(new QueryWrapper() .lambda().eq(ComActNeighborCircleCommentWestDO::getCircleId, neighborCircleDO.getId())); // 查询邻里圈近3天的评论回复数 int commentReplyCount = comActNeighborCircleCommentReplyWestDAO .selectCount(new QueryWrapper().lambda() .eq(ComActNeighborCircleCommentReplyWestDO::getCircleId, neighborCircleDO.getId())); // 查询邻里圈近3天的点赞数 int fabulousCount = comActNeighborCircleFabulousWestDAO.selectCount(new QueryWrapper() .lambda().eq(ComActNeighborCircleFabulousWestDO::getCircleId, neighborCircleDO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); // 查询邻里圈近3天的浏览量 int browseCount = comActNeighborCircleBrowseWestDAO.selectCount(new QueryWrapper().lambda() .eq(ComActNeighborCircleBrowseWestDO::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) { ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(id); if (comActNeighborCircleWestDO == null) { return R.fail(); } if (comActNeighborCircleWestDO.getStatus() == 1) { return R.fail("待审核的邻里圈不能删除"); } // 邻里圈删除 this.baseMapper.deleteById(id); // 邻里圈评论删除 neighborCircleCommentDAO.delete( new LambdaQueryWrapper().eq(ComActNeighborCircleCommentWestDO::getCircleId, id)); // 邻里圈回复删除 neighborCircleCommentReplyDAO.delete(new LambdaQueryWrapper() .eq(ComActNeighborCircleCommentReplyWestDO::getCircleId, id)); // 邻里圈浏览器记录 neighborCircleBrowseDAO.delete( new LambdaQueryWrapper().eq(ComActNeighborCircleBrowseWestDO::getNeighborId, id)); // 邻里圈点赞删除 neighborCircleFabulousDAO.delete(new LambdaQueryWrapper() .eq(ComActNeighborCircleFabulousWestDO::getCircleId, id)); return R.ok(); } @Override public R detailNeighborByAdmin(Long id) { ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(id); if (comActNeighborCircleWestDO == null) { return R.fail("id有误"); } AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleWestDO.getReleaseId()); DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO(); BeanUtils.copyProperties(comActNeighborCircleWestDO, vo); vo.setReleaseName(user.getName()); vo.setImageUrl(user.getImageUrl()); // 查询话题名称 if (comActNeighborCircleWestDO.getTopicId() != null) { ComActNeighborCircleTopicWestDO circleTopicDO = comActNeighborCircleTopicWestMapper.selectById(comActNeighborCircleWestDO.getTopicId()); vo.setTopicName(circleTopicDO.getName()); } return R.ok(vo); } @Override public R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO dto) { ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(dto.getId()); if (comActNeighborCircleWestDO == null) { return R.fail("id有误"); } Page page = new Page<>(dto.getPageNum(), dto.getPageSize()); // 1、先查询所有该邻里圈_的评论 IPage commentDOIPage = neighborCircleCommentDAO.selectPageDetailNeighborComment(page, dto); return R.ok(commentDOIPage); } @Override public R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO dto) { ComActNeighborCircleCommentWestDO commentDO = neighborCircleCommentDAO.selectById(dto.getId()); if (commentDO == null) { return R.fail("id有误!"); } commentDO.setStatus(dto.getStatus()); neighborCircleCommentDAO.updateById(commentDO); // 查询邻里圈更新邻里圈评论数量 ComActNeighborCircleWestDO 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) { ComActNeighborCircleCommentWestDO 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); vo.setUserPhone(user.getPhone()); return R.ok(vo); } @Override public R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto) { Page page = new Page<>(dto.getPageNum(), dto.getPageSize()); Page replyPage = neighborCircleCommentReplyDAO.selectListByComment(page, dto); replyPage.getRecords().forEach(reply -> { }); return R.ok(replyPage); } @Override public R detailNeighborCommentReply(Long id) { ComActNeighborCircleCommentReplyWestDO 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) { ComActNeighborCircleCommentReplyWestDO 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 @Transactional(rollbackFor = Exception.class) public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) { ComActNeighborCircleFabulousWestDO circleFabulousDO = null; // 查询邻里圈点赞信息 if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) { // 查询点赞信息 circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO == null) { return R.fail("未查询到点赞信息"); } // 减少邻里圈点赞数量 ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId()); if (neighborCircleDO != null) { neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() - 1); this.baseMapper.updateById(neighborCircleDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM; this.baseMapper.addHotNum(neighborCircleDO.getId(),-hotNum); this.baseMapper.addTopicHotNum(neighborCircleDO.getId(),-hotNum); } } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)) { circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.pl) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO == null) { return R.fail("未查询到点赞信息"); } // 减少邻里圈评论点赞数量 ComActNeighborCircleCommentWestDO circleCommentDO = comActNeighborCircleCommentWestDAO.selectById(fabulousAppDTO.getServiceId()); if (circleCommentDO != null) { circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() - 1); comActNeighborCircleCommentWestDAO.updateById(circleCommentDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM; this.baseMapper.addHotNum(circleCommentDO.getCircleId(),-hotNum); this.baseMapper.addTopicHotNum(circleCommentDO.getCircleId(),-hotNum); } } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)) { circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper().lambda() .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO == null) { return R.fail("未查询到点赞信息"); } // 减少邻里圈评论回复点赞数量 ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO = comActNeighborCircleCommentReplyWestDAO.selectById(fabulousAppDTO.getServiceId()); if (circleCommentReplyDO != null) { circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() - 1); comActNeighborCircleCommentReplyWestDAO.updateById(circleCommentReplyDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM; this.baseMapper.addHotNum(circleCommentReplyDO.getCircleId(),-hotNum); this.baseMapper.addTopicHotNum(circleCommentReplyDO.getCircleId(),-hotNum); } } if (circleFabulousDO != null) { circleFabulousDO.setIsEffective(ComActNeighborCircleFabulousWestDO.isEffective.no); comActNeighborCircleFabulousWestDAO.updateById(circleFabulousDO); } return R.ok(); } /** * 添加邻里圈浏览记录 * * @param addBrowseAppDTO * 请求参数 * @return 返回参数 */ @Override @Transactional(rollbackFor = Exception.class) public R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO) { // 添加邻里圈浏览记录 comActNeighborCircleBrowseWestService.addBrowseRecord(addBrowseAppDTO.getCircleId(), addBrowseAppDTO.getUserId()); // 更新邻里圈记录 ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(addBrowseAppDTO.getCircleId()); if (neighborCircleDO != null) { neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1); this.baseMapper.updateById(neighborCircleDO); //计算需要增加的热度值 Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM; this.baseMapper.addHotNum(neighborCircleDO.getId(),hotNum); this.baseMapper.addTopicHotNum(neighborCircleDO.getId(),hotNum); } return R.ok(); } /** * 分页查询评论下所有回复 * * @param commentReplyAppDTO * 请求参数 * @return 回复列表 */ @Override public R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO) { IPage 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) { // 查询点赞信息 ComActNeighborCircleFabulousWestDO circleFabulousDO = comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper() .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, commentReplyAppVO.getId()) .eq(ComActNeighborCircleFabulousWestDO::getUserId, commentReplyAppDTO.getUserId()) .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf) .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)); if (circleFabulousDO != null) { commentReplyAppVO.setHaveSign(1); } else { commentReplyAppVO.setHaveSign(2); } } } } return R.ok(neighborCircleIPage); } /** * 小程序-删除邻里圈 * @param circleTopicAppDTO 请求参数 * @return 删除结果 */ @Override public R deleteNeighborByApp(DeleteNeighborCircleAppDTO circleTopicAppDTO){ ComActNeighborCircleWestDO neighborCircleDO = new ComActNeighborCircleWestDO(); neighborCircleDO.setId(circleTopicAppDTO.getId()); neighborCircleDO.setIsDel(ComActNeighborCircleWestDO.isDel.yes); if(this.baseMapper.updateById(neighborCircleDO) > 0){ return R.ok(); } return R.fail(); } }