/* * 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.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xxl.job.core.biz.impl.ExecutorBizImpl; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.common.param.CommonParamSet; import org.springblade.common.utils.SpringUtils; import org.springblade.core.secure.utils.AuthUtil; 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.mapper.CircleMapper; import org.springblade.modules.circle.service.ICircleCommentService; import org.springblade.modules.circle.service.ICircleLikeService; import org.springblade.modules.circle.service.ICircleService; import org.springblade.modules.circle.vo.CircleVO; import org.springblade.modules.words.WorksService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * 圈子表 服务实现类 * * @author BladeX * @since 2023-11-30 */ @Service public class CircleServiceImpl extends ServiceImpl implements ICircleService { private static Logger logger = LoggerFactory.getLogger(ExecutorBizImpl.class); @Autowired private ICircleLikeService iCircleLikeService; @Autowired private WorksService worksService; @Autowired private ICircleCommentService iCircleCommentService; @Override public IPage selectCirclePage(IPage page, CircleVO circle) { CommonParamSet commonParamSet = new CommonParamSet().invoke(CircleVO.class, circle); List circleVOS = baseMapper.selectCirclePage(page, circle); for (CircleVO circleVO : circleVOS) { // 获取circleVO中circleId的点赞数 long count = iCircleLikeService.count(Wrappers.lambdaQuery() .eq(CircleLikeEntity::getCircleId, circleVO.getId())); circleVO.setLikeCount(count); // 查询circle_comment表中circle_id等于circleVO.getId()的记录数 long count2 = iCircleCommentService.count(Wrappers.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 selectCircleList(CircleDTO circleDTO) { return this.baseMapper.selectCircleList(circleDTO); } @Override public String saveCircle(CircleEntity circle) { circle.setUserId(AuthUtil.getUserId()); String communityCode = SpringUtils.getRequestParam("communityCode"); if (StringUtils.isNotBlank(communityCode)) { circle.setCommunityCode(communityCode); } // 校验事件是否分享过 // if (circle.getCircleType() != null && circle.getEventId() != null) { // long count = count(Wrappers.lambdaQuery(). // eq(CircleEntity::getCircleType, circle.getCircleType()). // eq(CircleEntity::getEventId, circle.getEventId())); // if (count > 0) { // return "当前发布的内容已经分享过,请勿重复发布!"; // } // } String iswords = "false"; // if (circle.getCircleType() == null && circle.getEventId() == null) { // 先进行敏感词过滤 Map map = worksService.interceptWords(circle.getCircleText()); // 获取敏感词校验结果 iswords = map.get("iswords").toString(); // } if (iswords.equals("false")) { // 审核通过 boolean flag = save(circle); logger.info("保存圈子表成功"); // 返回 return "操作成功"; } else { // 审核不通过 // 返回 return "当前发布的内容中带有敏感词信息,当前发布无法生效!"; } } }