liusuyi
2024-10-10 38f29e38fcc668171dc05c53d40a36b895c86102
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
            //通过群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;
    }
@@ -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到一个Set中
@@ -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<>();
        }
    }
}