文档库--消息推送

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}") @Value(value = "${jero.path.upload}")
private String uploadpath; private String uploadpath;
@Value(value = "${jero.backUrl}")
private String backUrl;
public static final String SEARCH_FLAG = "魑"; public static final String SEARCH_FLAG = "魑";
@@ -1316,7 +1319,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//新增时如果填写代替标准,需要向填写的代替标准的负责人发消息 //新增时如果填写代替标准,需要向填写的代替标准的负责人发消息
replaceStandardSend(Arrays.asList(replaceStandard.split(","))); replaceStandardSend(Arrays.asList(replaceStandard.split(",")));
} }
//向订阅该领域管理的人发消息 //向订阅该领域管理的人发消息和飞书
sendMsg(map, idTemp); sendMsg(map, idTemp);
//添加es //添加es
map.put("id", idTemp); map.put("id", idTemp);
@@ -1527,20 +1530,26 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
mapTemp.put("domainId", map.get("technology_territory")); mapTemp.put("domainId", map.get("technology_territory"));
mapTemp.put("documentId", ""); mapTemp.put("documentId", "");
List<String> userIdList = domainUserRelService.queryDomainUserRelInfo(mapTemp); 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) { if (userIdList.size() != 0) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String title = (String) map.get("title"); String title = (String) map.get("title");
String serialNumber = (String) map.get("serial_number"); String serialNumber = (String) map.get("serial_number");
String href = "<a href='/docManage/library/detail?id=" + idTemp + String href = backUrl + "/docManage/library/detail?id=" + idTemp;
"&title=" + title +
"&serial_number=" + serialNumber + "'" + " target='_blank'>" + serialNumber + "</a>";
String content = sysUser.getRealname() + "新增了" + serialNumber + "请及时查看"; String content = sysUser.getRealname() + "新增了" + serialNumber + "请及时查看";
String contentInfo = sysUser.getRealname() + "新增了" + href + "请及时查看"; String contentInfo = sysUser.getRealname() + "新增了" + href + "请及时查看";
//封装消息的实体类 //封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo); SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(idTemp, idTemp); 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<>(); List<String> thirdIdList = new ArrayList<>();
if (StringUtils.isNotBlank(departIds)) { 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) { if (userList.size() != 0) {
userIdList = userList.stream().map(SysUser::getId).distinct().collect(Collectors.toList()); userIdList = userList.stream().map(SysUser::getId).distinct().collect(Collectors.toList());
thirdIdList = userList.stream().map(SysUser::getThirdId).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(","))); // userIdList.addAll(Arrays.asList(userIds.split(",")));
//查询文档 //查询文档
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(documentIds); List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(documentIds);
List<String> serialNumberList = new ArrayList<>(); List<String> serialNumberList = new ArrayList<>();
List<String> urlList = new ArrayList<>();
List<String> hrefList = new ArrayList<>(); List<String> hrefList = new ArrayList<>();
for (Map<String, Object> map : mapList) { for (Map<String, Object> map : mapList) {
serialNumberList.add((String) map.get("serial_number")); serialNumberList.add((String) map.get("serial_number"));
// String href = "<a href='/docManage/library/detail?id:" + idTemp + String url = backUrl + "/docManage/library/detail?id=" + (String) map.get("id");
// "&title:" + title +
// "&serial_number:" + serialNumber + "'" + " target='_blank'>" + serialNumber + "</a>";
String href = "<a href='/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") + "&title=" + (String) map.get("title") +
"&serial_number=" + (String) map.get("serial_number") + "'" + " target='_blank'>" + (String) map.get("serial_number") + "</a>,"; "&serial_number=" + (String) map.get("serial_number") + "'" + " target='_blank'>" + (String) map.get("serial_number") + "</a>,";
urlList.add(url);
hrefList.add(href); hrefList.add(href);
} }
@@ -3512,9 +3534,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sysAnnouncementService.saveAnnouncement(sysAnnouncement); sysAnnouncementService.saveAnnouncement(sysAnnouncement);
//飞书 //飞书
try { try {
for (String s : hrefList) { for (String s : urlList) {
String msg = sysUser.getRealname() + "推送了" + s; List<String> list = new ArrayList<>();
iFeishuService.batchSendMessage(new String[thirdIdList.size()], content, "转发推送", msg); 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) { } catch (IOException e) {
log.error("飞书推送失败"); log.error("飞书推送失败");
@@ -190,6 +190,7 @@ mybatis-plus:
jero : jero :
# 本地:local\Minio:minio\阿里云:alioss # 本地:local\Minio:minio\阿里云:alioss
uploadType: local uploadType: local
backUrl: http://localhost:3000
path : path :
#文件上传根目录 设置 #文件上传根目录 设置
upload: D://opt//upFiles upload: D://opt//upFiles