liusuyi
2024-08-10 5b017324148ea92d96f9f16ade215463d6c712e5
ard-work/src/main/java/com/ruoyi/call/service/impl/ArdCallSessionServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.call.service.IArdCallGroupUserService;
import com.ruoyi.call.service.IArdCallSessionService;
import com.ruoyi.call.service.IArdCallSessionUserService;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
@@ -33,6 +34,8 @@
    private IArdCallSessionUserService ardCallSessionUserService;
    @Resource
    private IArdCallGroupService ardCallGroupService;
    @Resource
    private IArdCallGroupUserService ardCallGroupUserService;
    /**
     * 查询视频会话
@@ -144,7 +147,7 @@
        } else {
            //群聊
            sessionId = ardCallSessionUserService.getGroupSessionId(type, targetId);
            if (StringUtils.isEmpty(sessionId)) {
            if (StringUtils.isNull(sessionId)) {
                //若不存在群聊session直接则分别创建所有群用户的session
                ArdCallSession ardCallSession = new ArdCallSession();
                ardCallSession.setType(type);
@@ -152,21 +155,21 @@
                //获取群用户列表
                ArdCallGroup ardCallGroup = ardCallGroupService.selectArdCallGroupById(targetId);
                if(ardCallGroup!=null)
                {
                    String finalSessionId = sessionId;
                    ardCallGroup.getArdCallGroupUsers().stream().forEach(groupUser -> {
                        ArdCallSessionUser ardCallSessionUser = new ArdCallSessionUser();
                        ardCallSessionUser.setSessionId(finalSessionId);
                        ardCallSessionUser.setType(type);
                        ardCallSessionUser.setUserId(groupUser.getUserId());
                        ardCallSessionUser.setTargetId(targetId);
                        ardCallSessionUserService.insertArdCallSessionUser(ardCallSessionUser);
                    });
                if (ardCallGroup != null) {
                    List<SysUser> userList = ardCallGroupUserService.InGroupUsers(ardCallGroup.getId());
                    if (userList.size() > 0) {
                        ardCallGroup.setSysUserList(userList);
                        String finalSessionId = sessionId;
                        ardCallGroup.getSysUserList().stream().forEach(groupUser -> {
                            ArdCallSessionUser ardCallSessionUser = new ArdCallSessionUser();
                            ardCallSessionUser.setSessionId(finalSessionId);
                            ardCallSessionUser.setType(type);
                            ardCallSessionUser.setUserId(groupUser.getUserId());
                            ardCallSessionUser.setTargetId(targetId);
                            ardCallSessionUserService.insertArdCallSessionUser(ardCallSessionUser);
                        });
                    }
                }
            } else {
                //获取自己的session
                 sessionId = ardCallSessionUserService.getSessionId(type, userId, targetId);
            }
        }
        return sessionId;