import SDKCommandBase from "./SDKCommandBase"; import * as SDKLogicsCore from "../SDKLogics/SDKLogicsCore"; import SDKUserInfo from "../SDKLogics/SDKUserInfo"; import SDKApp from "../SDKBase/SDKApp"; import * as SDKRegistCommand from "../SDKConst/SDKRegistCommand"; import SDKPacketPool from "../SDKNetwork/SDKPacketPool"; import SDKWebDashBoradController from "../SDKController/SDKWebDashBoradController"; import SDKContrllerManager from "../SDKController/SDKContrllerManager"; import * as SDKControllerConst from "../SDKConst/SDKControllerConst"; import * as ZMSDK from "../ZMSDK"; import * as SDKEnum from "../SDKConst/SDKEnum"; /** * 从zml课件获取多个伙伴的信息 */ export default class SDKSetUsersInfoCMD extends SDKCommandBase { execute(data: any): void { super.execute(data); console.log("SDKSetUsersInfoCMD.....", data); let index = 0, count = 0; let students = data["students"]; let student: object; let userInfo: SDKUserInfo; let userId: string; SDKLogicsCore.userInfos.ClearUsersFlag(); count = students.length; for (index = 0; index < count; index++) { student = students[index]; if (student["role"] == "teacher" || student["role"] == "student") { if (student["mobile"]) { userId = student["mobile"]; if (!SDKLogicsCore.userInfos.isHasUserById(userId)) { userInfo = new SDKUserInfo(); userInfo.userId = userId; userInfo.name = student["name"]; userInfo.avatar = student["avatar"]; userInfo.role = this.getRole(student["role"]); SDKLogicsCore.userInfos.addUserInfo(userInfo); } else { userInfo = SDKLogicsCore.userInfos.getUserInfoById(userId); } userInfo.isActive = true; } } } let watcherUser: SDKUserInfo; if (SDKLogicsCore.parameterVo.observerId != "") { watcherUser = SDKLogicsCore.userInfos.getUserInfoById(SDKLogicsCore.parameterVo.observerId); if (watcherUser) { SDKLogicsCore.parameterVo.observerRole = watcherUser.role; console.log("被监视的对象的角色......",SDKLogicsCore.parameterVo.observerRole); } } console.log("用户数量(只包含学生和老师)......", SDKLogicsCore.userInfos.getCount()); this.recylePacket(); //更新用户分屏 if (SDKLogicsCore.parameterVo.isGameClass() && (SDKLogicsCore.parameterVo.isTeacher() || SDKLogicsCore.parameterVo.isOberverTeacher())) { let controller: SDKWebDashBoradController; controller = SDKContrllerManager.instance().getController(SDKControllerConst.WEB_DASHBORAD) as SDKWebDashBoradController; if (controller) { controller.updateUsers(); } } if (SDKLogicsCore.parameterVo.isZML()) { //通知历史记录恢复 let packet = SDKPacketPool.Acquire(SDKRegistCommand.GAME_PARSE_HISTORY); SDKApp.instance().packetHandler.dispatcherCMD(packet); } else { if (SDKLogicsCore.parameterVo.isTeacher()) { if (SDKLogicsCore.historyInfo.isParse) { return; } //请求历史记录信息 count = SDKLogicsCore.userInfos.getCount(); for (index = 0; index < count; index++) { userInfo = SDKLogicsCore.userInfos.getUserInfoByIndex(index); if (userInfo.isActive) { ZMSDK.sendMsg(SDKRegistCommand.GET_GAME_HISTORY, userInfo.userId); } } } else if (SDKLogicsCore.parameterVo.isGameObserver()) { //监课模式通知历史记录恢复 let packet = SDKPacketPool.Acquire(SDKRegistCommand.WATCH_HISTORY_REQUEST); SDKApp.instance().packetHandler.dispatcherCMD(packet); } } } private getRole(value: string) { let role: SDKEnum.USER_ROLE; switch (value) { case "student": role = SDKEnum.USER_ROLE.STUDENT; break; case "teacher": role = SDKEnum.USER_ROLE.TEACHER; break; case "watcher": role = SDKEnum.USER_ROLE.OBSERVER; break; case "seller": role = SDKEnum.USER_ROLE.SELLER; break; } return role; } }