From f041323a2bce037843fcb163b017427baa556da3 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期三, 24 七月 2024 16:41:16 +0800
Subject: [PATCH] 优化:修改未读消息入库前判断不存在则插入 取消:程序自动拉起redis/mediamtx/minio,中间件全部服务化 增加:流媒体vtdu详情接口
---
/dev/null | 1
ard-work/src/main/java/com/ruoyi/cmd/startup.java | 220 ++++++++++++++++++++++----------------------
ard-work/src/main/java/com/ruoyi/call/mapper/ArdCallUnreadMessagesMapper.java | 2
ard-work/src/main/java/com/ruoyi/media/controller/VtduController.java | 4
ard-work/src/main/resources/mapper/call/ArdCallUnreadMessagesMapper.xml | 11 +
ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java | 11 +
6 files changed, 133 insertions(+), 116 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/call/mapper/ArdCallUnreadMessagesMapper.java b/ard-work/src/main/java/com/ruoyi/call/mapper/ArdCallUnreadMessagesMapper.java
index 0157656..e88f214 100644
--- a/ard-work/src/main/java/com/ruoyi/call/mapper/ArdCallUnreadMessagesMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/call/mapper/ArdCallUnreadMessagesMapper.java
@@ -67,4 +67,6 @@
public ArdCallUnreadMessages getUnreadMessage(@Param("sessionId") String sessionId, @Param("targetId")String targetId);
public int totalUnReadCount(String userId);
+
+ int selectCountByUserIdAndSessionId(@Param("userId")String userId,@Param("sessionId") String sessionId);
}
diff --git a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
index 82014e5..29b8097 100644
--- a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallHistoryServiceImpl.java
@@ -78,7 +78,6 @@
@Override
public int insertArdCallHistory(ArdCallHistory ardCallHistory) {
-
ardCallHistory.setId(IdUtils.simpleUUID());
ardCallHistory.setCreateTime(DateUtils.getNowDate());
ArdCallSession ardCallSession = ardCallSessionMapper.selectArdCallSessionById(ardCallHistory.getSessionId());
@@ -90,7 +89,10 @@
ardCallUnreadMessages.setUserId(ardCallHistory.getTargetId());
ardCallUnreadMessages.setSessionId(ardCallHistory.getSessionId());
ardCallUnreadMessages.setUnreadCount(1);
- ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ int rows = ardCallUnreadMessagesMapper.selectCountByUserIdAndSessionId(ardCallUnreadMessages.getUserId(), ardCallUnreadMessages.getSessionId());
+ if (rows == 0) {
+ ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ }
} else {
ardCallUnreadMessages.setUnreadCount(ardCallUnreadMessages.getUnreadCount() + 1);
ardCallUnreadMessagesMapper.updateArdCallUnreadMessages(ardCallUnreadMessages);
@@ -124,7 +126,10 @@
ardCallUnreadMessages.setUserId(groupUser.getUserId());
ardCallUnreadMessages.setSessionId(ardCallHistory.getSessionId());
ardCallUnreadMessages.setUnreadCount(1);
- ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ int rows = ardCallUnreadMessagesMapper.selectCountByUserIdAndSessionId(ardCallUnreadMessages.getUserId(), ardCallUnreadMessages.getSessionId());
+ if (rows == 0) {
+ ardCallUnreadMessagesMapper.insertArdCallUnreadMessages(ardCallUnreadMessages);
+ }
} else {
ardCallUnreadMessages.setUnreadCount(ardCallUnreadMessages.getUnreadCount() + 1);
ardCallUnreadMessagesMapper.updateArdCallUnreadMessages(ardCallUnreadMessages);
diff --git a/ard-work/src/main/java/com/ruoyi/cmd/startup.java b/ard-work/src/main/java/com/ruoyi/cmd/startup.java
index 9505455..c5f3825 100644
--- a/ard-work/src/main/java/com/ruoyi/cmd/startup.java
+++ b/ard-work/src/main/java/com/ruoyi/cmd/startup.java
@@ -29,122 +29,122 @@
**/
@Slf4j(topic = "cmd")
@Component
-public class startup implements ApplicationContextInitializer {
+public class startup{
- //minio
- String minioName = "minio.exe";
- @Value("${minio.accessKey}")
- String accessKey;
- @Value("${minio.secretKey}")
- String secretKey;
- @Value("${minio.path}")
- String path;
- @Value("${minio.enabled}")
- Boolean minioEnabled;
-
- //mediamtx
- String mediamtxName = "mediamtx.exe";
- @Value("${mediamtx.enabled}")
- Boolean mediamtxEnabled;
- //redis
- String redisName = "redis-server.exe";
+// //minio
+// String minioName = "minio.exe";
+// @Value("${minio.accessKey}")
+// String accessKey;
+// @Value("${minio.secretKey}")
+// String secretKey;
+// @Value("${minio.path}")
+// String path;
+// @Value("${minio.enabled}")
+// Boolean minioEnabled;
+//
+// //mediamtx
+// String mediamtxName = "mediamtx.exe";
+// @Value("${mediamtx.enabled}")
+// Boolean mediamtxEnabled;
+// //redis
+// String redisName = "redis-server.exe";
/**
* 绋嬪簭鍒濆鍖栧惎鍔╮edis
* 鍒樿嫃涔�
* 2023/9/22 10:38:41
*/
- @Override
- public void initialize(ConfigurableApplicationContext applicationContext) {
- if (Platform.isWindows()) {
- String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "redis";
- String exePath = workingDir +File.separator+ redisName;
- List<String> cmd = new ArrayList<>();
- cmd.add(exePath);
- if (CmdUtils.isProcessRunning(redisName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(redisName);
- }
- // 鍚姩鍚庡彴杩涚▼
- CmdUtils.commandStart(workingDir, redisName, cmd, null);
- // 鍚姩cmd绐楀彛
- //String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"};
- //CmdUtils.commandStart(command);
- }
- }
+// @Override
+// public void initialize(ConfigurableApplicationContext applicationContext) {
+// if (Platform.isWindows()) {
+// String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "redis";
+// String exePath = workingDir +File.separator+ redisName;
+// List<String> cmd = new ArrayList<>();
+// cmd.add(exePath);
+// if (CmdUtils.isProcessRunning(redisName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(redisName);
+// }
+// // 鍚姩鍚庡彴杩涚▼
+// CmdUtils.commandStart(workingDir, redisName, cmd, null);
+// // 鍚姩cmd绐楀彛
+// //String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"};
+// //CmdUtils.commandStart(command);
+// }
+// }
- @PostConstruct
- @Order(1)
- public void init() {
- if (minioEnabled) {
- log.info("鍒濆鍖栧惎鍔╩inio");
- if (Platform.isWindows()) {
- String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "minio";
- String exePath = workingDir + File.separator + minioName;
- Map<String, String> env = new HashMap<>();
- env.put("MINIO_ROOT_USER", accessKey);
- env.put("MINIO_ROOT_PASSWORD", secretKey);
- List<String> cmd = new ArrayList<>();
- cmd.add(exePath);
- cmd.add("server");
- cmd.add(path);
- cmd.add("--console-address=0.0.0.0:9000");
- cmd.add("--address=0.0.0.0:9001");
- if (CmdUtils.isProcessRunning(minioName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(minioName);
- }
- // 鍚姩鍚庡彴杩涚▼
- CmdUtils.commandStart(workingDir, minioName, cmd, env);
- // 鍚姩cmd绐楀彛
- //String[] command = {"cmd", "/c", "start", exePath};
- //CmdUtils.commandStart(command);
- }
- }
- if (mediamtxEnabled) {
- log.info("鍒濆鍖栧惎鍔╩ediaMTX");
- if (Platform.isWindows()) {
- String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "mediamtx";
- String exePath = workingDir + File.separator + mediamtxName;
- String ymlPath = workingDir + File.separator + "mediamtx.yml";
- List<String> cmd = new ArrayList<>();
- cmd.add(exePath);
- // cmd.add(ymlPath);
- if (CmdUtils.isProcessRunning(mediamtxName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(mediamtxName);
- }
- // 鍚姩鍚庡彴杩涚▼
- CmdUtils.commandStart(workingDir, mediamtxName, cmd, null);
- // 鍚姩cmd绐楀彛
- //String[] command = {"cmd","/c","start",exePath,ymlPath};
- //CmdUtils.commandStart(command);
- }
- }
- }
-
- @PreDestroy
- public void destroy() {
- if (minioEnabled) {
- log.info("閿�姣乵inio");
- if (CmdUtils.isProcessRunning(minioName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(minioName);
- }
- }
- if (mediamtxEnabled) {
- log.info("閿�姣乵ediaMtx");
- if (CmdUtils.isProcessRunning(mediamtxName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(mediamtxName);
- }
- }
- if (true) {
- log.info("閿�姣乺edis");
- if (CmdUtils.isProcessRunning(redisName)) {
- // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
- CmdUtils.stopProcess(redisName);
- }
- }
- }
+// @PostConstruct
+// @Order(1)
+// public void init() {
+// if (minioEnabled) {
+// log.info("鍒濆鍖栧惎鍔╩inio");
+// if (Platform.isWindows()) {
+// String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "minio";
+// String exePath = workingDir + File.separator + minioName;
+// Map<String, String> env = new HashMap<>();
+// env.put("MINIO_ROOT_USER", accessKey);
+// env.put("MINIO_ROOT_PASSWORD", secretKey);
+// List<String> cmd = new ArrayList<>();
+// cmd.add(exePath);
+// cmd.add("server");
+// cmd.add(path);
+// cmd.add("--console-address=0.0.0.0:9000");
+// cmd.add("--address=0.0.0.0:9001");
+// if (CmdUtils.isProcessRunning(minioName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(minioName);
+// }
+// // 鍚姩鍚庡彴杩涚▼
+// CmdUtils.commandStart(workingDir, minioName, cmd, env);
+// // 鍚姩cmd绐楀彛
+// //String[] command = {"cmd", "/c", "start", exePath};
+// //CmdUtils.commandStart(command);
+// }
+// }
+// if (mediamtxEnabled) {
+// log.info("鍒濆鍖栧惎鍔╩ediaMTX");
+// if (Platform.isWindows()) {
+// String workingDir = System.getProperty("user.dir") + File.separator + "server" + File.separator + "mediamtx";
+// String exePath = workingDir + File.separator + mediamtxName;
+// String ymlPath = workingDir + File.separator + "mediamtx.yml";
+// List<String> cmd = new ArrayList<>();
+// cmd.add(exePath);
+// // cmd.add(ymlPath);
+// if (CmdUtils.isProcessRunning(mediamtxName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(mediamtxName);
+// }
+// // 鍚姩鍚庡彴杩涚▼
+// CmdUtils.commandStart(workingDir, mediamtxName, cmd, null);
+// // 鍚姩cmd绐楀彛
+// //String[] command = {"cmd","/c","start",exePath,ymlPath};
+// //CmdUtils.commandStart(command);
+// }
+// }
+// }
+//
+// @PreDestroy
+// public void destroy() {
+// if (minioEnabled) {
+// log.info("閿�姣乵inio");
+// if (CmdUtils.isProcessRunning(minioName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(minioName);
+// }
+// }
+// if (mediamtxEnabled) {
+// log.info("閿�姣乵ediaMtx");
+// if (CmdUtils.isProcessRunning(mediamtxName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(mediamtxName);
+// }
+// }
+// if (true) {
+// log.info("閿�姣乺edis");
+// if (CmdUtils.isProcessRunning(redisName)) {
+// // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+// CmdUtils.stopProcess(redisName);
+// }
+// }
+// }
}
diff --git a/ard-work/src/main/java/com/ruoyi/media/controller/VtduController.java b/ard-work/src/main/java/com/ruoyi/media/controller/VtduController.java
index 4df6fb0..9b66175 100644
--- a/ard-work/src/main/java/com/ruoyi/media/controller/VtduController.java
+++ b/ard-work/src/main/java/com/ruoyi/media/controller/VtduController.java
@@ -10,6 +10,8 @@
import com.ruoyi.device.camera.service.ICameraSdkService;
import com.ruoyi.media.service.IMediaService;
import com.ruoyi.media.service.impl.MediaServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -35,6 +37,7 @@
* @author ard
* @date 2023-08-29
*/
+@Api(tags = "娴佸獟浣撶鐞�")
@RestController
@RequestMapping("/vtdu/media")
public class VtduController extends BaseController {
@@ -79,6 +82,7 @@
/**
* 鑾峰彇娴佸獟浣撶鐞嗚缁嗕俊鎭�
*/
+ @ApiOperation(value = "鑾峰彇娴佸獟浣撶鐞嗚缁嗕俊鎭�")
@PreAuthorize("@ss.hasPermi('vtdu:media:query')")
@GetMapping(value = "/{name}")
public AjaxResult getInfo(@PathVariable("name") String name) {
diff --git a/ard-work/src/main/resources/mapper/call/ArdCallUnreadMessagesMapper.xml b/ard-work/src/main/resources/mapper/call/ArdCallUnreadMessagesMapper.xml
index 70f8271..10525c2 100644
--- a/ard-work/src/main/resources/mapper/call/ArdCallUnreadMessagesMapper.xml
+++ b/ard-work/src/main/resources/mapper/call/ArdCallUnreadMessagesMapper.xml
@@ -42,7 +42,6 @@
<if test="sessionId != null">#{sessionId},</if>
<if test="unreadCount != null">#{unreadCount},</if>
</trim>
- ON CONFLICT (session_id, user_id) DO NOTHING
</insert>
<update id="updateArdCallUnreadMessages" parameterType="ArdCallUnreadMessages">
@@ -72,6 +71,14 @@
and session_id = #{sessionId}
</select>
<select id="totalUnReadCount" resultType="Integer">
- select sum(unread_count) from ard_call_unread_messages where user_id = #{userId }
+ select COALESCE(SUM(unread_count), 0)
+ from ard_call_unread_messages
+ where user_id = #{userId }
+ </select>
+ <select id="selectCountByUserIdAndSessionId" resultType="Integer">
+ SELECT count(*)
+ FROM ard_call_unread_messages
+ WHERE user_id = #{userId }
+ AND session_id = #{sessionId}
</select>
</mapper>
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/META-INF/spring.factories b/ruoyi-admin/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 57aeb71..0000000
--- a/ruoyi-admin/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1 +0,0 @@
-org.springframework.context.ApplicationContextInitializer=com.ruoyi.cmd.startup
\ No newline at end of file
--
Gitblit v1.9.3