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.*;
|
import com.panzhihua.common.model.vos.R;
|
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;
|
|
/**
|
* @auther lyq
|
* @create 2021-04-28 09:20:49
|
* @describe 邻里圈表服务实现类
|
*/
|
@Slf4j
|
@Service
|
public class ComActNeighborCircleServiceImpl extends ServiceImpl<ComActNeighborCircleDAO, ComActNeighborCircleDO> implements ComActNeighborCircleService {
|
|
@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;
|
|
/**
|
* 分页查询邻里圈列表
|
* @param neighborCircleAppDTO 请求参数
|
* @return 邻里圈列表
|
*/
|
@Override
|
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);
|
}
|
|
/**
|
* 用户发布邻里圈审核
|
* @param addNeighborCircleAppDTO 邻里圈请求参数
|
* @return 发布结果
|
*/
|
@Override
|
public R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO){
|
//新增邻里圈审核
|
ComActNeighborCircleDO neighborCircleDO = new ComActNeighborCircleDO();
|
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(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(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);
|
}
|
|
@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){
|
|
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();
|
}
|
|
@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()) {
|
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);
|
}
|
}
|