问题知识库--发布发消息

This commit is contained in:
zhn
2022-11-01 11:44:23 +08:00
parent 56f14f6983
commit 8b391a9efe
@@ -1,29 +1,43 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseCommentEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCommentEOService;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService;
import com.jero.modules.problemKnowledgeBase.vo.ProblemKnowledgeBaseCommentVO;
import com.jero.modules.project.entity.ProblemKnowledgeBaseReplyEO;
import com.jero.modules.project.service.IProblemKnowledgeBaseReplyEOService;
import com.jero.modules.system.entity.SysAnnouncement;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysUserService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 问题知识库评论表
@@ -37,6 +51,24 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
@Autowired
private IProblemKnowledgeBaseReplyEOService problemKnowledgeBaseReplyEOService;
@Autowired
private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService;
@Autowired
private ISysUserService sysUserService;
@Resource
private IFeishuService iFeishuService;
@Autowired
private ISysAnnouncementService sysAnnouncementService;
@Autowired
private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService;
@Value(value = "${jero.backUrl}")
private String backUrl;
/**
* 保存
*
@@ -49,7 +81,45 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
problemKnowledgeBaseCommentEO.setCreateTime(now);
problemKnowledgeBaseCommentEO.setUpdateTime(now);
save(problemKnowledgeBaseCommentEO);
}
ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.getById(problemKnowledgeBaseCommentEO.getProblemKnowledgeBaseId());
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String createBy = problemKnowledgeBaseEO.getCreateBy();
//自己回复的时候不发消息
// if(!loginUser.getUsername().equals(createBy)){
SysUser sysUser = sysUserService.getUserByName(createBy);
String contentCNNo = "您发布的问题知识库信息"+problemKnowledgeBaseEO.getTitle()+"有新评论,请注意查看.";
String contentENNo = "In the Q&A knowledge "+problemKnowledgeBaseEO.getTitle()+" you created, a new comment has been added. Please be reminded to check it out.";
//发送消息(站内和飞书)
//您发布的问题知识库信息XXXXXXXX有新评论,请注意查看。
//In the Q&A knowledge xxxxxxxx you created, a new comment has been added. Please be reminded to check it out.
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(Arrays.asList(sysUser.getId().split(",")),
"msgTitle",
contentENNo,
contentENNo,
MessageTypeEnum.PUSH.getValue(),
MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(),
contentCNNo,
contentCNNo);
this.sysAnnouncementService.saveAnnouncement(sysAnnouncement);
bussDocumentLibraryEOService.sendWebsocket(com.jero.modules.system.util.StringUtils.join(sysUser.getThirdId(), ","), sysUser.getThirdId());
String href = backUrl +"/problemknowledgeBase";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setTitle(MessageTypeEnum.PUSH.getNameCn()+"/"+MessageTypeEnum.PUSH.getName());
feishuMsgVo.setUrl(href);
feishuMsgVo.setContentEn(contentENNo);
feishuMsgVo.setContent(contentCNNo);
try {
this.iFeishuService.sendCardMsgTerritory(sysUser.getThirdId().split(","), feishuMsgVo);
} catch (IOException e) {
e.printStackTrace();
}
// }
}
/**
* 更新