文档库--发送消息添添加websocket

This commit is contained in:
zhn
2022-03-07 09:54:14 +08:00
parent 2c921ba324
commit 3b2181b501
3 changed files with 29 additions and 16 deletions
@@ -8,8 +8,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.WebsocketConst;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.message.websocket.WebSocket;
import com.jero.modules.system.entity.SysAnnouncementSend;
import com.jero.modules.system.model.AnnouncementSendModel;
import com.jero.modules.system.service.ISysAnnouncementSendService;
@@ -26,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
@@ -47,6 +50,8 @@ import java.util.List;
public class SysAnnouncementSendController {
@Autowired
private ISysAnnouncementSendService sysAnnouncementSendService;
@Resource
private WebSocket webSocket;
/**
* 分页列表查询
@@ -257,6 +262,12 @@ public class SysAnnouncementSendController {
list.add(sysAnnouncementSend);
}
sysAnnouncementSendService.updateBatchById(list);
//
JSONObject obj = new JSONObject();
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC);
obj.put(WebsocketConst.MSG_ID, ids);
obj.put(WebsocketConst.MSG_TXT, ids);
webSocket.sendMessage(obj.toJSONString());
result.setSuccess(true);
result.setMessage("标记已读");
return result;
@@ -1,13 +1,10 @@
package com.jero.modules.document.controller;
import cn.hutool.core.util.ZipUtil;
import com.aliyuncs.utils.IOUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
@@ -16,13 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -38,12 +28,6 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -1,12 +1,14 @@
package com.jero.modules.document.service.impl;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.utils.IOUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.WebsocketConst;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.ModuleEnum;
@@ -25,6 +27,7 @@ import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.domain.service.DomainUserRelService;
import com.jero.modules.log.entity.BussLogEO;
import com.jero.modules.log.service.IBussLogEOService;
import com.jero.modules.message.websocket.WebSocket;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
@@ -63,6 +66,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@@ -120,6 +124,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
private ISysBaseAPI sysBaseAPI;
@Autowired
private ISysUserService sysUserService;
@Resource
private WebSocket webSocket;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@@ -1026,6 +1032,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket((String) map.get("id"),(String) map.get("id"));
}
//2. 处理修改代替标准的发送消息
//处理修改代替标准,发送通知
@@ -1045,14 +1052,24 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<String> listNew = list.stream().filter(e -> !listTemp.contains(e)).collect(Collectors.toList());
//向listNew对应的工程师发飞书通知
replaceStandardSend(listNew);
sendWebsocket((String) map.get("id"),(String) map.get("id"));
} else if(StringUtils.isBlank(replaceStandardTemp) && StringUtils.isNotBlank(replaceStandard)) {
//(2)此种情况为编辑前代替标准没有数据
//向replaceStandard对应的工程师发飞书通知
replaceStandardSend(Arrays.asList(replaceStandard.split(",")));
sendWebsocket((String) map.get("id"),(String) map.get("id"));
}
}
}
private void sendWebsocket(String msgId,String msgTet) {
JSONObject obj = new JSONObject();
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC);
obj.put(WebsocketConst.MSG_ID, msgId);
obj.put(WebsocketConst.MSG_TXT, msgTet);
webSocket.sendMessage(obj.toJSONString());
}
private void replaceStandardSend(List<String> documentIdList) {
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapperTemp = new LambdaQueryWrapper<>();
lambdaQueryWrapperTemp.in(BussDocumentLibraryEO::getId, documentIdList);
@@ -1070,6 +1087,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
sendWebsocket(StringUtils.join(documentIdList,","),StringUtils.join(documentIdList,","));
}