| | |
| | | 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; |
| | | |
| | |
| | | private ArdCallGroupUserMapper ardCallGroupUserMapper; |
| | | @Resource |
| | | private SysUserMapper sysUserMapper; |
| | | @Resource |
| | | private ArdCallSessionUserMapper ardCallSessionUserMapper; |
| | | |
| | | /** |
| | | * 查询群组用户中间 |
| | |
| | | ardCallGroupUser.setCreateTime(DateUtils.getNowDate()); |
| | | ardCallGroupUser.setUserId(userId); |
| | | ardCallGroupUserMapper.insertArdCallGroupUser(ardCallGroupUser); |
| | | //邀请成员成功后创建session |
| | | //通过群id获取群session |
| | | 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; |
| | | } |
| | |
| | | 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到一个Set中 |
| | |
| | | .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<>(); |
| | | } |
| | | } |
| | | |
| | | } |