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