/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
package org.springblade.modules.circle.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springblade.modules.circle.dto.CircleDTO;
|
import org.springblade.modules.circle.entity.CircleCommentEntity;
|
import org.springblade.modules.circle.entity.CircleEntity;
|
import org.springblade.modules.circle.entity.CircleLikeEntity;
|
import org.springblade.modules.circle.service.ICircleCommentService;
|
import org.springblade.modules.circle.service.ICircleLikeService;
|
import org.springblade.modules.circle.vo.CircleVO;
|
import org.springblade.modules.circle.mapper.CircleMapper;
|
import org.springblade.modules.circle.service.ICircleService;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.modules.words.WorksService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 圈子表 服务实现类
|
*
|
* @author BladeX
|
* @since 2023-11-30
|
*/
|
@Service
|
public class CircleServiceImpl extends ServiceImpl<CircleMapper, CircleEntity> implements ICircleService {
|
|
@Autowired
|
private ICircleLikeService iCircleLikeService;
|
|
@Autowired
|
private WorksService worksService;
|
|
@Autowired
|
private ICircleCommentService iCircleCommentService;
|
@Override
|
public IPage<CircleVO> selectCirclePage(IPage<CircleVO> page, CircleVO circle) {
|
List<CircleVO> circleVOS = baseMapper.selectCirclePage(page, circle);
|
for (CircleVO circleVO : circleVOS) {
|
// 获取circleVO中circleId的点赞数
|
long count = iCircleLikeService.count(Wrappers.<CircleLikeEntity>lambdaQuery()
|
.eq(CircleLikeEntity::getCircleId, circleVO.getId()));
|
circleVO.setLikeCount(count);
|
|
// 查询circle_comment表中circle_id等于circleVO.getId()的记录数
|
long count2 = iCircleCommentService.count(Wrappers.<CircleCommentEntity>lambdaQuery()
|
.eq(CircleCommentEntity::getCircleId, circleVO.getId())
|
.groupBy(CircleCommentEntity::getCircleId));
|
circleVO.setCommentCount(count2);
|
}
|
return page.setRecords(circleVOS);
|
}
|
|
/**
|
* 查询圈子表
|
*
|
* @param id 圈子表ID
|
* @return 圈子表
|
*/
|
@Override
|
public CircleVO selectCircleById(Integer id)
|
{
|
return this.baseMapper.selectCircleById(id);
|
}
|
|
/**
|
* 查询圈子表列表
|
*
|
* @param circleDTO 圈子表
|
* @return 圈子表集合
|
*/
|
@Override
|
public List<CircleVO> selectCircleList(CircleDTO circleDTO)
|
{
|
return this.baseMapper.selectCircleList(circleDTO);
|
}
|
|
@Override
|
public String saveCircle(CircleEntity circle) {
|
boolean flag = false;
|
// 先进行敏感词过滤
|
Map<String, Object> map = worksService.interceptWords(circle.getCircleText());
|
// 获取敏感词校验结果
|
String iswords = map.get("iswords").toString();
|
if (iswords.equals("false")) {
|
// 审核通过
|
flag = save(circle);
|
// 返回
|
return "操作成功";
|
} else {
|
// 审核不通过
|
// 返回
|
return "当前发布的内容中带有敏感词信息,当前发布无法生效!";
|
}
|
}
|
}
|