文档库--消息推送

This commit is contained in:
zhn
2022-04-07 17:33:33 +08:00
parent bd4722f37f
commit 008d81045f
2 changed files with 42 additions and 12 deletions
@@ -127,6 +127,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
@Value(value = "${jero.path.upload}")
private String uploadpath;
@Value(value = "${jero.backUrl}")
private String backUrl;
public static final String SEARCH_FLAG = "";
@@ -1316,7 +1319,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//新增时如果填写代替标准,需要向填写的代替标准的负责人发消息
replaceStandardSend(Arrays.asList(replaceStandard.split(",")));
}
//向订阅该领域管理的人发消息
//向订阅该领域管理的人发消息和飞书
sendMsg(map, idTemp);
//添加es
map.put("id", idTemp);
@@ -1527,20 +1530,26 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
mapTemp.put("domainId", map.get("technology_territory"));
mapTemp.put("documentId", "");
List<String> userIdList = domainUserRelService.queryDomainUserRelInfo(mapTemp);
//给发送消息的用户
List<SysUser> sysUsers = sysUserService.listByIds(userIdList);
List<String> thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
if (userIdList.size() != 0) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String title = (String) map.get("title");
String serialNumber = (String) map.get("serial_number");
String href = "<a href='/docManage/library/detail?id=" + idTemp +
"&title=" + title +
"&serial_number=" + serialNumber + "'" + " target='_blank'>" + serialNumber + "</a>";
String href = backUrl + "/docManage/library/detail?id=" + idTemp;
String content = sysUser.getRealname() + "新增了" + serialNumber + "请及时查看";
String contentInfo = sysUser.getRealname() + "新增了" + href + "请及时查看";
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp);
//飞书
try {
iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), content, MessageTypeEnum.PUSH.getName(), href);
} catch (IOException e) {
log.error("文档新增飞书消息推送失败");
}
}
}
@@ -3479,27 +3488,40 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<String> thirdIdList = new ArrayList<>();
if (StringUtils.isNotBlank(departIds)) {
//查询部门下的人员
List<SysUser> userList = sysUserService.getUserListByDepIds(new ArrayList<>(allDepartIds));
List<SysUser> userList = new ArrayList<>();
if(allDepartIds.size() != 0){
userList = sysUserService.getUserListByDepIds(new ArrayList<>(allDepartIds));
}
if (userList.size() != 0) {
userIdList = userList.stream().map(SysUser::getId).distinct().collect(Collectors.toList());
thirdIdList = userList.stream().map(SysUser::getThirdId).distinct().collect(Collectors.toList());
}
}
if(userIdList.size() == 0 && StringUtils.isNotBlank(userIds)){
List<SysUser> sysUsers = sysUserService.listByIds(Arrays.asList(userIds.split(",")));
if(sysUsers.size() != 0){
List<String> userId = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
List<String> thirdId = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
userIdList.addAll(userId);
thirdIdList.addAll(thirdId);
}
}
// userIdList.addAll(Arrays.asList(userIds.split(",")));
//查询文档
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(documentIds);
List<String> serialNumberList = new ArrayList<>();
List<String> urlList = new ArrayList<>();
List<String> hrefList = new ArrayList<>();
for (Map<String, Object> map : mapList) {
serialNumberList.add((String) map.get("serial_number"));
// String href = "<a href='/docManage/library/detail?id:" + idTemp +
// "&title:" + title +
// "&serial_number:" + serialNumber + "'" + " target='_blank'>" + serialNumber + "</a>";
String url = backUrl + "/docManage/library/detail?id=" + (String) map.get("id");
String href = "<a href='/docManage/library/detail?id=" + (String) map.get("id") +
"&title=" + (String) map.get("title") +
"&serial_number=" + (String) map.get("serial_number") + "'" + " target='_blank'>" + (String) map.get("serial_number") + "</a>,";
urlList.add(url);
hrefList.add(href);
}
@@ -3512,9 +3534,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
//飞书
try {
for (String s : hrefList) {
String msg = sysUser.getRealname() + "推送了" + s;
iFeishuService.batchSendMessage(new String[thirdIdList.size()], content, "转发推送", msg);
for (String s : urlList) {
List<String> list = new ArrayList<>();
mapList.stream().forEach(e->{
if(s.contains((String)e.get("id"))){
String serialNumber = (String) e.get("serial_number");
list.add(serialNumber);
}
});
String contentTemp = sysUser.getRealname() + "向您推送了" + StringUtils.join(list, ",") + ",请注意查看。";
iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentTemp, MessageTypeEnum.PUSH.getName(), s);
}
} catch (IOException e) {
log.error("飞书推送失败");
@@ -190,6 +190,7 @@ mybatis-plus:
jero :
# 本地:local\Miniominio\阿里云:alioss
uploadType: local
backUrl: http://localhost:3000
path :
#文件上传根目录 设置
upload: D://opt//upFiles