From 5b017324148ea92d96f9f16ade215463d6c712e5 Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期六, 10 八月 2024 14:15:02 +0800 Subject: [PATCH] 优化:海康大华sdk断线重连机制 --- ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 51 insertions(+), 1 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java index a2962b4..ade48e1 100644 --- a/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallGroupUserServiceImpl.java @@ -4,6 +4,8 @@ import java.util.List; import com.ruoyi.call.domain.ArdCallGroup; +import com.ruoyi.call.domain.ArdCallSessionUser; +import com.ruoyi.call.mapper.ArdCallSessionUserMapper; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; @@ -36,6 +38,8 @@ private ArdCallGroupUserMapper ardCallGroupUserMapper; @Resource private SysUserMapper sysUserMapper; + @Resource + private ArdCallSessionUserMapper ardCallSessionUserMapper; /** * 鏌ヨ缇ょ粍鐢ㄦ埛涓棿 @@ -130,6 +134,19 @@ ardCallGroupUser.setCreateTime(DateUtils.getNowDate()); ardCallGroupUser.setUserId(userId); ardCallGroupUserMapper.insertArdCallGroupUser(ardCallGroupUser); + //閭�璇锋垚鍛樻垚鍔熷悗鍒涘缓session + //閫氳繃缇d鑾峰彇缇ession + String sessionId = ardCallSessionUserMapper.getGroupSessionId("1", id); + if (StringUtils.isNotEmpty(sessionId)) { + ArdCallSessionUser ardCallSessionUser = new ArdCallSessionUser(); + ardCallSessionUser.setId(IdUtils.simpleUUID()); + ardCallSessionUser.setType("1"); + ardCallSessionUser.setSessionId(sessionId); + ardCallSessionUser.setUserId(userId); + ardCallSessionUser.setTargetId(id); + ardCallSessionUser.setCreateTime(DateUtils.getNowDate()); + ardCallSessionUserMapper.insertArdCallSessionUser(ardCallSessionUser); + } }); return userIds.length; } @@ -146,12 +163,18 @@ return ardCallGroupUserMapper.removeGroupUser(id, userIds); } + /** + * 鏌ヨ涓嶅湪缇ょ粍鐨勪汉鍛樺垪琛� + * + * @param groupId 缇ょ粍涓婚敭 + * @return 缁撴灉 + */ @Override public List<SysUser> notInGroupUsers(String groupId) { //鑾峰彇骞冲彴鎵�鏈夌敤鎴� List<SysUser> userList = sysUserMapper.selectUserList(new SysUser()); //鑾峰彇缇ょ粍鍐呯敤鎴� - ArdCallGroupUser ardCallGroupUser=new ArdCallGroupUser(); + ArdCallGroupUser ardCallGroupUser = new ArdCallGroupUser(); ardCallGroupUser.setGroupId(groupId); List<ArdCallGroupUser> ardCallGroupUsers = ardCallGroupUserMapper.selectArdCallGroupUserList(ardCallGroupUser); // 鎻愬彇groupList涓殑userId鍒颁竴涓猄et涓� @@ -164,4 +187,31 @@ .collect(Collectors.toList()); return filteredUserList; } + + /** + * 鏌ヨ缇ょ粍鐨勪汉鍛樺垪琛� + * + * @param groupId 缇ょ粍涓婚敭 + * @return 缁撴灉 + */ + @Override + public List<SysUser> InGroupUsers(String groupId) { + // 1. 鑾峰彇缇ょ粍鍐呯敤鎴� + ArdCallGroupUser ardCallGroupUser = new ArdCallGroupUser(); + ardCallGroupUser.setGroupId(groupId); + List<ArdCallGroupUser> ardCallGroupUsers = ardCallGroupUserMapper.selectArdCallGroupUserList(ardCallGroupUser); + if (ardCallGroupUsers.size() > 0) { + // 2. 鎻愬彇鐢ㄦ埛 ID 鍒楄〃 + List<String> userIds = ardCallGroupUsers.stream() + .map(ArdCallGroupUser::getUserId) + .collect(Collectors.toList()); + + // 3. 鎵归噺鏌ヨ鐢ㄦ埛淇℃伅 + List<SysUser> users = sysUserMapper.selectUsersByIds(userIds); + return users; + } else { + return new ArrayList<>(); + } + } + } -- Gitblit v1.9.3