正在显示
6 个修改的文件
包含
204 行增加
和
107 行删除
| @@ -60,10 +60,10 @@ export default class MessageEntrance extends Emiter { | @@ -60,10 +60,10 @@ export default class MessageEntrance extends Emiter { | ||
| 60 | this.sdkInfo = _sdkInfo; | 60 | this.sdkInfo = _sdkInfo; |
| 61 | loger.warn(this.sdkInfo); | 61 | loger.warn(this.sdkInfo); |
| 62 | //检查是否是移动端 | 62 | //检查是否是移动端 |
| 63 | - GlobalConfig.isMobile=mdetect.isMobileUA(); | ||
| 64 | - if( GlobalConfig.isMobile){ | 63 | + GlobalConfig.isMobile = mdetect.isMobileUA(); |
| 64 | + if (GlobalConfig.isMobile) { | ||
| 65 | loger.warn("当前设备是移动设备"); | 65 | loger.warn("当前设备是移动设备"); |
| 66 | - }else { | 66 | + } else { |
| 67 | loger.warn("当前设备是PC"); | 67 | loger.warn("当前设备是PC"); |
| 68 | } | 68 | } |
| 69 | 69 | ||
| @@ -89,6 +89,7 @@ export default class MessageEntrance extends Emiter { | @@ -89,6 +89,7 @@ export default class MessageEntrance extends Emiter { | ||
| 89 | _sass.on(_sass.CLASS_SAVE_RECORD_INFO_SUCCESS, this._sassSaveClassRecordInfoSuccessHandler.bind(this)); //保存课堂录制信息 | 89 | _sass.on(_sass.CLASS_SAVE_RECORD_INFO_SUCCESS, this._sassSaveClassRecordInfoSuccessHandler.bind(this)); //保存课堂录制信息 |
| 90 | _sass.on(_sass.DELETE_DOCUMENT_SUCCESS, this._sassDeleteDocumentSuccess.bind(this)); //sass删除文档成功 | 90 | _sass.on(_sass.DELETE_DOCUMENT_SUCCESS, this._sassDeleteDocumentSuccess.bind(this)); //sass删除文档成功 |
| 91 | _sass.on(_sass.DELETE_MEDIASHARE_SUCCESS, this._sassDeleteMediaShareSuccess.bind(this)); //sass删除媒体文件成功 | 91 | _sass.on(_sass.DELETE_MEDIASHARE_SUCCESS, this._sassDeleteMediaShareSuccess.bind(this)); //sass删除媒体文件成功 |
| 92 | + _sass.on(_sass.DELETE_MUSICSHARE_SUCCESS, this._sassDeleteMusicShareSuccess.bind(this)); //sass删除MUSIC文件成功 | ||
| 92 | 93 | ||
| 93 | //选点模块 | 94 | //选点模块 |
| 94 | _ipManager = new IpManager(); | 95 | _ipManager = new IpManager(); |
| @@ -234,6 +235,10 @@ export default class MessageEntrance extends Emiter { | @@ -234,6 +235,10 @@ export default class MessageEntrance extends Emiter { | ||
| 234 | this.mediaSharedStop = this._sendMediaSharedStop.bind(this); //停止 | 235 | this.mediaSharedStop = this._sendMediaSharedStop.bind(this); //停止 |
| 235 | this.mediaSharedUpdate = this._sendMediaSharedUpdate.bind(this); //更新媒体的状态 | 236 | this.mediaSharedUpdate = this._sendMediaSharedUpdate.bind(this); //更新媒体的状态 |
| 236 | 237 | ||
| 238 | + //音频共享模块 | ||
| 239 | + this.musicSharedUpload = this._sendMusicSharedUpload.bind(this); //上传 | ||
| 240 | + this.musicSharedDelete = this._sassDeletMusicShare.bind(this); //删除,先通过Sass删除,删除成功之后才删除MCU的 | ||
| 241 | + | ||
| 237 | this.musicSharedPlay = this._sendMusicSharedPlay.bind(this); //Music播放 | 242 | this.musicSharedPlay = this._sendMusicSharedPlay.bind(this); //Music播放 |
| 238 | this.musicSharedStop = this._sendMusicSharedStop.bind(this); //Music停止 | 243 | this.musicSharedStop = this._sendMusicSharedStop.bind(this); //Music停止 |
| 239 | this.musicSharedUpdate = this._sendMusicSharedUpdate.bind(this); //Music更新媒体的状态 | 244 | this.musicSharedUpdate = this._sendMusicSharedUpdate.bind(this); //Music更新媒体的状态 |
| @@ -720,10 +725,10 @@ export default class MessageEntrance extends Emiter { | @@ -720,10 +725,10 @@ export default class MessageEntrance extends Emiter { | ||
| 720 | loger.log('加入课堂->.'); | 725 | loger.log('加入课堂->.'); |
| 721 | loger.warn("课堂服务信息->"); | 726 | loger.warn("课堂服务信息->"); |
| 722 | 727 | ||
| 723 | - loger.warn('MCU服务器地址->mcu->',GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort); | 728 | + loger.warn('MCU服务器地址->mcu->', GlobalConfig.MCUServerIP, GlobalConfig.MCUServerPort); |
| 724 | loger.warn('推流地址->MS->', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT); | 729 | loger.warn('推流地址->MS->', GlobalConfig.MS_PUBLISH_IP, GlobalConfig.MS_PUBLISH_PORT); |
| 725 | - loger.warn('RTMP播流地址->RTMP->',GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT); | ||
| 726 | - loger.warn('HLS播流地址->HLS->',GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT); | 730 | + loger.warn('RTMP播流地址->RTMP->', GlobalConfig.MS_PLAY_RTMP_IP, GlobalConfig.MS_PLAY_RTMP_PORT); |
| 731 | + loger.warn('HLS播流地址->HLS->', GlobalConfig.MS_PLAY_HLS_IP, GlobalConfig.MS_PLAY_HLS_PORT); | ||
| 727 | 732 | ||
| 728 | if (_mcu) { | 733 | if (_mcu) { |
| 729 | _mcu.joinMCU(GlobalConfig.getClassInfo()); | 734 | _mcu.joinMCU(GlobalConfig.getClassInfo()); |
| @@ -800,7 +805,7 @@ export default class MessageEntrance extends Emiter { | @@ -800,7 +805,7 @@ export default class MessageEntrance extends Emiter { | ||
| 800 | 805 | ||
| 801 | joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; | 806 | joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; |
| 802 | joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示 | 807 | joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示 |
| 803 | - joinClassSuccessCallBackData.serverAndLoacTimeDistanc=GlobalConfig.serverAndLoacTimeDistanc; | 808 | + joinClassSuccessCallBackData.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc; |
| 804 | loger.log('加入课堂成功->'); | 809 | loger.log('加入课堂成功->'); |
| 805 | loger.log(joinClassSuccessCallBackData); | 810 | loger.log(joinClassSuccessCallBackData); |
| 806 | 811 | ||
| @@ -946,11 +951,17 @@ export default class MessageEntrance extends Emiter { | @@ -946,11 +951,17 @@ export default class MessageEntrance extends Emiter { | ||
| 946 | loger.log('删除文档成功->', _param); | 951 | loger.log('删除文档成功->', _param); |
| 947 | this._sendDocumentDelete(_param); | 952 | this._sendDocumentDelete(_param); |
| 948 | } | 953 | } |
| 954 | + | ||
| 949 | _sassDeleteMediaShareSuccess(_param) { | 955 | _sassDeleteMediaShareSuccess(_param) { |
| 950 | loger.log('删除媒体文件成功->', _param); | 956 | loger.log('删除媒体文件成功->', _param); |
| 951 | this._sendMediaSharedDelete(_param); | 957 | this._sendMediaSharedDelete(_param); |
| 952 | } | 958 | } |
| 953 | 959 | ||
| 960 | + _sassDeleteMusicShareSuccess(_param) { | ||
| 961 | + loger.log('删除Music文件成功->', _param); | ||
| 962 | + this._sendMusicSharedDelete(_param); | ||
| 963 | + } | ||
| 964 | + | ||
| 954 | //ConferApe | 965 | //ConferApe |
| 955 | //开始上课 | 966 | //开始上课 |
| 956 | _sendStartClass(_param) { | 967 | _sendStartClass(_param) { |
| @@ -1189,7 +1200,7 @@ export default class MessageEntrance extends Emiter { | @@ -1189,7 +1200,7 @@ export default class MessageEntrance extends Emiter { | ||
| 1189 | // if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){ | 1200 | // if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2&&GlobalConfig.videoCDNAddrList.length>0){ |
| 1190 | 1201 | ||
| 1191 | //20170629-直播课堂和移动端设备的时候支持 | 1202 | //20170629-直播课堂和移动端设备的时候支持 |
| 1192 | - if(GlobalConfig.classType==ApeConsts.CLASS_TYPE_2||GlobalConfig.isMobile){ | 1203 | + if (GlobalConfig.classType == ApeConsts.CLASS_TYPE_2 || GlobalConfig.isMobile) { |
| 1193 | if (GlobalConfig.videoCDNAddrList.length > 0) { | 1204 | if (GlobalConfig.videoCDNAddrList.length > 0) { |
| 1194 | //videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开; | 1205 | //videoCDNAddrList中rtmppush和hls是混在一起的,需要分离开; |
| 1195 | let listLen = GlobalConfig.videoCDNAddrList.length; | 1206 | let listLen = GlobalConfig.videoCDNAddrList.length; |
| @@ -1210,9 +1221,9 @@ export default class MessageEntrance extends Emiter { | @@ -1210,9 +1221,9 @@ export default class MessageEntrance extends Emiter { | ||
| 1210 | } | 1221 | } |
| 1211 | } | 1222 | } |
| 1212 | } else { | 1223 | } else { |
| 1213 | - loger.error('videoCDNAddr数据无效->',GlobalConfig.videoCDNAddr); | 1224 | + loger.error('videoCDNAddr数据无效->', GlobalConfig.videoCDNAddr); |
| 1214 | } | 1225 | } |
| 1215 | - }else { | 1226 | + } else { |
| 1216 | loger.warn('非直播课堂或不是移动端->不需要videoCDN加速'); | 1227 | loger.warn('非直播课堂或不是移动端->不需要videoCDN加速'); |
| 1217 | } | 1228 | } |
| 1218 | 1229 | ||
| @@ -1675,7 +1686,33 @@ export default class MessageEntrance extends Emiter { | @@ -1675,7 +1686,33 @@ export default class MessageEntrance extends Emiter { | ||
| 1675 | } | 1686 | } |
| 1676 | } | 1687 | } |
| 1677 | 1688 | ||
| 1678 | - //删除 | 1689 | + // 删除Music |
| 1690 | + _sassDeletMusicShare(_param) { | ||
| 1691 | + if (!_mcu.connected) { | ||
| 1692 | + loger.warn(GlobalConfig.getCurrentStatus()); | ||
| 1693 | + return; | ||
| 1694 | + } | ||
| 1695 | + | ||
| 1696 | + //判断传入的参数是否存在 | ||
| 1697 | + if (_param == null || EngineUtils.isEmptyObject(_param)) { | ||
| 1698 | + loger.error('删除媒体文件失败->参数错误', _param); | ||
| 1699 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_MUSICSHARE_DELETE_FAILED_PARAM); | ||
| 1700 | + return; | ||
| 1701 | + } | ||
| 1702 | + //判断必要的参数字段值 | ||
| 1703 | + if (_param.itemIdx == null || isNaN(_param.itemIdx) || _param.fileId == null || _param.fileId == "") { | ||
| 1704 | + loger.error('删除媒体文件失败->', _param); | ||
| 1705 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_MUSICSHARE_DELETE_FAILED_PARAM); | ||
| 1706 | + return; | ||
| 1707 | + } | ||
| 1708 | + loger.log('删除媒体文件->', _param); | ||
| 1709 | + | ||
| 1710 | + if (_sass) { | ||
| 1711 | + _sass.sassDeletMusicShare(_param); | ||
| 1712 | + } | ||
| 1713 | + } | ||
| 1714 | + | ||
| 1715 | + //删除媒体 | ||
| 1679 | _sendMediaSharedDelete(_param) { | 1716 | _sendMediaSharedDelete(_param) { |
| 1680 | if (!_mcu.connected) { | 1717 | if (!_mcu.connected) { |
| 1681 | loger.warn(GlobalConfig.getCurrentStatus()); | 1718 | loger.warn(GlobalConfig.getCurrentStatus()); |
| @@ -1686,6 +1723,17 @@ export default class MessageEntrance extends Emiter { | @@ -1686,6 +1723,17 @@ export default class MessageEntrance extends Emiter { | ||
| 1686 | } | 1723 | } |
| 1687 | } | 1724 | } |
| 1688 | 1725 | ||
| 1726 | + //删除媒体 | ||
| 1727 | + _sendMusicSharedDelete(_param) { | ||
| 1728 | + if (!_mcu.connected) { | ||
| 1729 | + loger.warn(GlobalConfig.getCurrentStatus()); | ||
| 1730 | + return; | ||
| 1731 | + } | ||
| 1732 | + if (_musicShareApe) { | ||
| 1733 | + _musicShareApe.musicSharedDelete(_param); | ||
| 1734 | + } | ||
| 1735 | + } | ||
| 1736 | + | ||
| 1689 | //音乐更新 | 1737 | //音乐更新 |
| 1690 | _sendMusicSharedUpdate(_param) { | 1738 | _sendMusicSharedUpdate(_param) { |
| 1691 | if (!_mcu.connected) { | 1739 | if (!_mcu.connected) { |
| @@ -1934,7 +1982,7 @@ export default class MessageEntrance extends Emiter { | @@ -1934,7 +1982,7 @@ export default class MessageEntrance extends Emiter { | ||
| 1934 | 1982 | ||
| 1935 | joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; | 1983 | joinClassSuccessCallBackData.ssTunnelAppURL = GlobalConfig.ssTunnelAppURL; |
| 1936 | joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示 | 1984 | joinClassSuccessCallBackData.currentSceneTableId = GlobalConfig.currentSceneTableId; //文档区域的模块显示 |
| 1937 | - joinClassSuccessCallBackData.serverAndLoacTimeDistanc=GlobalConfig.serverAndLoacTimeDistanc; | 1985 | + joinClassSuccessCallBackData.serverAndLoacTimeDistanc = GlobalConfig.serverAndLoacTimeDistanc; |
| 1938 | loger.log(joinClassSuccessCallBackData); | 1986 | loger.log(joinClassSuccessCallBackData); |
| 1939 | //和加入课堂成功使用同样的消息处理 | 1987 | //和加入课堂成功使用同样的消息处理 |
| 1940 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); | 1988 | this._emit(MessageTypes.CLASS_JOIN_SUCCESS, joinClassSuccessCallBackData); |
| @@ -89,6 +89,10 @@ MessageTypes.DOC_BROADCAST = "doc_broadcast"; // | @@ -89,6 +89,10 @@ MessageTypes.DOC_BROADCAST = "doc_broadcast"; // | ||
| 89 | MessageTypes.MEDIA_SHARED_DELETE = "media_shared_delete"; //删除媒体文件 | 89 | MessageTypes.MEDIA_SHARED_DELETE = "media_shared_delete"; //删除媒体文件 |
| 90 | MessageTypes.MEDIA_SHARED_UPDATE = "media_shared_update"; //更新媒体文件(添加、变更) | 90 | MessageTypes.MEDIA_SHARED_UPDATE = "media_shared_update"; //更新媒体文件(添加、变更) |
| 91 | 91 | ||
| 92 | +//音频共享 | ||
| 93 | +MessageTypes.MUSIC_SHARED_DELETE = "music_shared_delete"; //删除音频文件 | ||
| 94 | +MessageTypes.MUSIC_SHARED_UPDATE = "music_shared_update"; //更新音频文件(添加、变更) | ||
| 95 | + | ||
| 92 | //答题卡和点名共用 | 96 | //答题卡和点名共用 |
| 93 | MessageTypes.START_ANSWER_QUESTION = "start_answer_question"; //开始答题 | 97 | MessageTypes.START_ANSWER_QUESTION = "start_answer_question"; //开始答题 |
| 94 | MessageTypes.UPDATE_ANSWER_QUESTION = "update_answer_question"; //更新答题数据 | 98 | MessageTypes.UPDATE_ANSWER_QUESTION = "update_answer_question"; //更新答题数据 |
| @@ -151,6 +155,10 @@ MessageTypes.ERR_SDK_FAILED = 700; // sdk还没初始化 | @@ -151,6 +155,10 @@ MessageTypes.ERR_SDK_FAILED = 700; // sdk还没初始化 | ||
| 151 | MessageTypes.ERR_INTERFACE_NONE = 701; //调用的接口不存在 | 155 | MessageTypes.ERR_INTERFACE_NONE = 701; //调用的接口不存在 |
| 152 | MessageTypes.ERR_INTERFACE_PARAMS_ERROR = 702; //调用的接口,传递的参数不正确 | 156 | MessageTypes.ERR_INTERFACE_PARAMS_ERROR = 702; //调用的接口,传递的参数不正确 |
| 153 | 157 | ||
| 158 | +//音频共享 | ||
| 159 | +MessageTypes.ERR_MUSICSHARE_DELETE_FAILED = 720; //删除媒体共享文件失败 | ||
| 160 | +MessageTypes.ERR_MUSICSHARE_DELETE_FAILED_PARAM = 721; //删除媒体共享文件,参数错误 | ||
| 161 | + | ||
| 154 | MessageTypes.ERR_INIT_RECORD_PLAY_BACK_FAILED = 910; //初始化录制回放失败 | 162 | MessageTypes.ERR_INIT_RECORD_PLAY_BACK_FAILED = 910; //初始化录制回放失败 |
| 155 | MessageTypes.ERR_GET_RECORD_PLAY_BACK_DATA_FAILED = 911; //获取录制回放数据失败 | 163 | MessageTypes.ERR_GET_RECORD_PLAY_BACK_DATA_FAILED = 911; //获取录制回放数据失败 |
| 156 | 164 |
| @@ -234,7 +234,7 @@ class Sass extends Emiter { | @@ -234,7 +234,7 @@ class Sass extends Emiter { | ||
| 234 | meetingNumber String 课堂号 对应的是classId | 234 | meetingNumber String 课堂号 对应的是classId |
| 235 | */ | 235 | */ |
| 236 | var timestamp = new Date().getTime(); | 236 | var timestamp = new Date().getTime(); |
| 237 | - var authId = MD5(GlobalConfig.classId + "" + timestamp);//课堂号+时间戳 的字符串,转成MD5 | 237 | + var authId = MD5(GlobalConfig.classId + "" + timestamp); //课堂号+时间戳 的字符串,转成MD5 |
| 238 | let url = `http://${GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; | 238 | let url = `http://${GlobalConfig.portal}/3m/api/meeting/detail.do?meetingNumber=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; |
| 239 | loger.log('5.获取课堂课堂的完整信息 '); | 239 | loger.log('5.获取课堂课堂的完整信息 '); |
| 240 | loger.log(url); | 240 | loger.log(url); |
| @@ -279,12 +279,12 @@ class Sass extends Emiter { | @@ -279,12 +279,12 @@ class Sass extends Emiter { | ||
| 279 | 0 成功, 1 验证信息错误 | 279 | 0 成功, 1 验证信息错误 |
| 280 | */ | 280 | */ |
| 281 | sassDeleteDocument(_param) { | 281 | sassDeleteDocument(_param) { |
| 282 | - if(GlobalConfig.isRecordPlayBack){ | 282 | + if (GlobalConfig.isRecordPlayBack) { |
| 283 | loger.log('录制回放中,能删除文档'); | 283 | loger.log('录制回放中,能删除文档'); |
| 284 | return; | 284 | return; |
| 285 | } | 285 | } |
| 286 | var timestamp = new Date().getTime(); | 286 | var timestamp = new Date().getTime(); |
| 287 | - var authId = MD5(_param.docId + "" + _param.classId + "" + timestamp);// docId+classId+timestamp的字符串,转成MD5 | 287 | + var authId = MD5(_param.docId + "" + _param.classId + "" + timestamp); // docId+classId+timestamp的字符串,转成MD5 |
| 288 | let url = `http://${GlobalConfig.portal}/3m/api/document/deleteRelation.do?docId=${_param.docId}&classId=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; | 288 | let url = `http://${GlobalConfig.portal}/3m/api/document/deleteRelation.do?docId=${_param.docId}&classId=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; |
| 289 | loger.log('sassDeleteDocument', url); | 289 | loger.log('sassDeleteDocument', url); |
| 290 | 290 | ||
| @@ -316,14 +316,55 @@ class Sass extends Emiter { | @@ -316,14 +316,55 @@ class Sass extends Emiter { | ||
| 316 | }); | 316 | }); |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | + //删除Music共享文件 | ||
| 320 | + sassDeletMusicShare(_param) { | ||
| 321 | + if (GlobalConfig.isRecordPlayBack) { | ||
| 322 | + loger.log('录制回放中,能删除文件'); | ||
| 323 | + return; | ||
| 324 | + } | ||
| 325 | + console.warn('删除Music共享实现...'); | ||
| 326 | + var timestamp = new Date().getTime(); | ||
| 327 | + var authId = MD5(_param.fileId + "" + _param.classId + "" + timestamp); // docId+classId+timestamp的字符串,转成MD5 | ||
| 328 | + let url = `http://${GlobalConfig.portal}/3m/api/media/deleteRelation.do?mediaId=${_param.fileId}&classId=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; | ||
| 329 | + loger.log('删除媒体共享文件', url); | ||
| 330 | + | ||
| 331 | + fetch(url, { | ||
| 332 | + timeout: 5000 | ||
| 333 | + }) | ||
| 334 | + .then(ret => { | ||
| 335 | + if (ret.ok) { | ||
| 336 | + return ret.json(); | ||
| 337 | + } else { | ||
| 338 | + loger.error(`删除媒体共享文件-网络异常.状态码:${ret.status}`); | ||
| 339 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_MUSICSHARE_DELETE_FAILED); | ||
| 340 | + | ||
| 341 | + throw ''; | ||
| 342 | + } | ||
| 343 | + }) | ||
| 344 | + .then(ret => { | ||
| 345 | + //code 0 成功, 1 验证信息错误 | ||
| 346 | + if (ret.code === 0) { | ||
| 347 | + loger.log('删除媒体共享文件 完成'); | ||
| 348 | + this._emit(Sass.DELETE_MUSICSHARE_SUCCESS, _param); | ||
| 349 | + } else { | ||
| 350 | + loger.warn('删除媒体共享文件 失败.'); | ||
| 351 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_MUSICSHARE_DELETE_FAILED); | ||
| 352 | + } | ||
| 353 | + }) | ||
| 354 | + .catch(err => { | ||
| 355 | + loger.error(`删除媒体共享文件-异常.状态码:${err}`); | ||
| 356 | + this._emit(MessageTypes.MCU_ERROR, MessageTypes.ERR_MUSICSHARE_DELETE_FAILED); | ||
| 357 | + }); | ||
| 358 | + } | ||
| 359 | + | ||
| 319 | //删除媒体共享文件 | 360 | //删除媒体共享文件 |
| 320 | sassDeletMediaShare(_param) { | 361 | sassDeletMediaShare(_param) { |
| 321 | - if(GlobalConfig.isRecordPlayBack){ | 362 | + if (GlobalConfig.isRecordPlayBack) { |
| 322 | loger.log('录制回放中,能删除文件'); | 363 | loger.log('录制回放中,能删除文件'); |
| 323 | return; | 364 | return; |
| 324 | } | 365 | } |
| 325 | var timestamp = new Date().getTime(); | 366 | var timestamp = new Date().getTime(); |
| 326 | - var authId = MD5(_param.fileId + "" + _param.classId + "" + timestamp);// docId+classId+timestamp的字符串,转成MD5 | 367 | + var authId = MD5(_param.fileId + "" + _param.classId + "" + timestamp); // docId+classId+timestamp的字符串,转成MD5 |
| 327 | let url = `http://${GlobalConfig.portal}/3m/api/sharedMedia/deleteRelation.do?fileId=${_param.fileId}&classId=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; | 368 | let url = `http://${GlobalConfig.portal}/3m/api/sharedMedia/deleteRelation.do?fileId=${_param.fileId}&classId=${GlobalConfig.classId}×tamp=${timestamp}&authId=${authId}`; |
| 328 | loger.log('删除媒体共享文件', url); | 369 | loger.log('删除媒体共享文件', url); |
| 329 | 370 | ||
| @@ -356,7 +397,6 @@ class Sass extends Emiter { | @@ -356,7 +397,6 @@ class Sass extends Emiter { | ||
| 356 | }); | 397 | }); |
| 357 | } | 398 | } |
| 358 | 399 | ||
| 359 | - | ||
| 360 | //保存课堂的当前信息----------------------------------------------------- | 400 | //保存课堂的当前信息----------------------------------------------------- |
| 361 | /*保存课堂的当前信息,首次是插入,后面是更新 | 401 | /*保存课堂的当前信息,首次是插入,后面是更新 |
| 362 | /api/meeting/saveInfo.do | 402 | /api/meeting/saveInfo.do |
| @@ -370,13 +410,13 @@ class Sass extends Emiter { | @@ -370,13 +410,13 @@ class Sass extends Emiter { | ||
| 370 | code 0 成功 1 课堂号为空 2 无效的课堂号 3 验证信息错误*/ | 410 | code 0 成功 1 课堂号为空 2 无效的课堂号 3 验证信息错误*/ |
| 371 | 411 | ||
| 372 | saveClassStatusInfo(_param) { | 412 | saveClassStatusInfo(_param) { |
| 373 | - if(GlobalConfig.isRecordPlayBack){ | 413 | + if (GlobalConfig.isRecordPlayBack) { |
| 374 | loger.log('录制回放中,不需要保存课堂信息'); | 414 | loger.log('录制回放中,不需要保存课堂信息'); |
| 375 | return; | 415 | return; |
| 376 | } | 416 | } |
| 377 | //{"classStatusInfo":classStatusInfo} | 417 | //{"classStatusInfo":classStatusInfo} |
| 378 | var timestamp = new Date().getTime(); | 418 | var timestamp = new Date().getTime(); |
| 379 | - var authId = MD5(GlobalConfig.classId + "" + timestamp);// (classId+timestamp)的字符串,转成MD5 | 419 | + var authId = MD5(GlobalConfig.classId + "" + timestamp); // (classId+timestamp)的字符串,转成MD5 |
| 380 | let classStatusInfo = JSON.stringify(_param.classStatusInfo); | 420 | let classStatusInfo = JSON.stringify(_param.classStatusInfo); |
| 381 | let url = `http://${GlobalConfig.portal}/3m/api/meeting/saveInfo.do`; | 421 | let url = `http://${GlobalConfig.portal}/3m/api/meeting/saveInfo.do`; |
| 382 | loger.log('saveClassStatusInfo', url); | 422 | loger.log('saveClassStatusInfo', url); |
| @@ -420,7 +460,7 @@ class Sass extends Emiter { | @@ -420,7 +460,7 @@ class Sass extends Emiter { | ||
| 420 | 460 | ||
| 421 | //保存录制的信息,主要是录制文件的名称,必须和MCU录制的文件名相同 | 461 | //保存录制的信息,主要是录制文件的名称,必须和MCU录制的文件名相同 |
| 422 | saveClassRecordContrlInfo(_param) { | 462 | saveClassRecordContrlInfo(_param) { |
| 423 | - if(GlobalConfig.isRecordPlayBack){ | 463 | + if (GlobalConfig.isRecordPlayBack) { |
| 424 | loger.log('录制回放中,不需要保存'); | 464 | loger.log('录制回放中,不需要保存'); |
| 425 | return; | 465 | return; |
| 426 | } | 466 | } |
| @@ -445,7 +485,7 @@ class Sass extends Emiter { | @@ -445,7 +485,7 @@ class Sass extends Emiter { | ||
| 445 | let url = `http://${GlobalConfig.portal}/3m/recordingMeeting/insertRecordingMeeting.do`; | 485 | let url = `http://${GlobalConfig.portal}/3m/recordingMeeting/insertRecordingMeeting.do`; |
| 446 | loger.log('saveClassRecordContrlInfo', url); | 486 | loger.log('saveClassRecordContrlInfo', url); |
| 447 | 487 | ||
| 448 | - fetch( encodeURI(url), { | 488 | + fetch(encodeURI(url), { |
| 449 | method: 'POST', | 489 | method: 'POST', |
| 450 | headers: { | 490 | headers: { |
| 451 | "Content-Type": "application/x-www-form-urlencoded" | 491 | "Content-Type": "application/x-www-form-urlencoded" |
| @@ -475,11 +515,10 @@ class Sass extends Emiter { | @@ -475,11 +515,10 @@ class Sass extends Emiter { | ||
| 475 | }); | 515 | }); |
| 476 | } | 516 | } |
| 477 | 517 | ||
| 478 | - | ||
| 479 | //答题卡------------------------------------------------------- | 518 | //答题卡------------------------------------------------------- |
| 480 | //创建答题数据 | 519 | //创建答题数据 |
| 481 | - creatQuestion(_param){ | ||
| 482 | - if(GlobalConfig.isRecordPlayBack){ | 520 | + creatQuestion(_param) { |
| 521 | + if (GlobalConfig.isRecordPlayBack) { | ||
| 483 | loger.log('录制回放中->创建答题数据->不做操作'); | 522 | loger.log('录制回放中->创建答题数据->不做操作'); |
| 484 | return; | 523 | return; |
| 485 | } | 524 | } |
| @@ -491,17 +530,17 @@ class Sass extends Emiter { | @@ -491,17 +530,17 @@ class Sass extends Emiter { | ||
| 491 | "options": {},//选项数组,没有就传[] | 530 | "options": {},//选项数组,没有就传[] |
| 492 | "option": []//学生选择的答案,没有就传[] | 531 | "option": []//学生选择的答案,没有就传[] |
| 493 | }*/ | 532 | }*/ |
| 494 | - if(!_param){ | ||
| 495 | - loger.warn('创建答题数据->参数错误->param:',_param); | 533 | + if (!_param) { |
| 534 | + loger.warn('创建答题数据->参数错误->param:', _param); | ||
| 496 | this._emit(Sass.SASS_CREAT_QUESTION_FAILED); | 535 | this._emit(Sass.SASS_CREAT_QUESTION_FAILED); |
| 497 | return; | 536 | return; |
| 498 | } | 537 | } |
| 499 | - let classId=GlobalConfig.classId;//课堂号 | 538 | + let classId = GlobalConfig.classId; //课堂号 |
| 500 | var timestamp = new Date().getTime(); | 539 | var timestamp = new Date().getTime(); |
| 501 | - let authId = MD5(classId+""+timestamp); | 540 | + let authId = MD5(classId + "" + timestamp); |
| 502 | 541 | ||
| 503 | - let type = parseInt(_param.type);//1单选,2多选,3判断,4点名 | ||
| 504 | - let content =_param.content||""; | 542 | + let type = parseInt(_param.type); //1单选,2多选,3判断,4点名 |
| 543 | + let content = _param.content || ""; | ||
| 505 | let timeLimit = parseInt(_param.timeLimit); | 544 | let timeLimit = parseInt(_param.timeLimit); |
| 506 | let correct = _param.correct.toString(); | 545 | let correct = _param.correct.toString(); |
| 507 | let options = JSON.stringify(_param.options); | 546 | let options = JSON.stringify(_param.options); |
| @@ -509,7 +548,7 @@ class Sass extends Emiter { | @@ -509,7 +548,7 @@ class Sass extends Emiter { | ||
| 509 | let url = `http://${GlobalConfig.portal}/3m/api/question/add.do`; | 548 | let url = `http://${GlobalConfig.portal}/3m/api/question/add.do`; |
| 510 | loger.log('创建答题数据', url); | 549 | loger.log('创建答题数据', url); |
| 511 | 550 | ||
| 512 | - fetch( encodeURI(url), { | 551 | + fetch(encodeURI(url), { |
| 513 | method: 'POST', | 552 | method: 'POST', |
| 514 | headers: { | 553 | headers: { |
| 515 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" | 554 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" |
| @@ -529,17 +568,17 @@ class Sass extends Emiter { | @@ -529,17 +568,17 @@ class Sass extends Emiter { | ||
| 529 | } | 568 | } |
| 530 | }) | 569 | }) |
| 531 | .then(ret => { | 570 | .then(ret => { |
| 532 | - if (ret.code== 0) { | 571 | + if (ret.code == 0) { |
| 533 | //errorCode int 0 正常 1 没有指定的课堂 4 验证信息错误(authId) | 572 | //errorCode int 0 正常 1 没有指定的课堂 4 验证信息错误(authId) |
| 534 | // {"code":0,"id":1} | 573 | // {"code":0,"id":1} |
| 535 | - let question={}; | ||
| 536 | - question.questionId=ret.id; | ||
| 537 | - question.type=type; | ||
| 538 | - question.content=_param.content||[]; | ||
| 539 | - question.timeLimit=timeLimit; | ||
| 540 | - question.correct=_param.correct||[]; | ||
| 541 | - question.options=_param.options||[]; | ||
| 542 | - loger.log('创建答题数据->完成->',question); | 574 | + let question = {}; |
| 575 | + question.questionId = ret.id; | ||
| 576 | + question.type = type; | ||
| 577 | + question.content = _param.content || []; | ||
| 578 | + question.timeLimit = timeLimit; | ||
| 579 | + question.correct = _param.correct || []; | ||
| 580 | + question.options = _param.options || []; | ||
| 581 | + loger.log('创建答题数据->完成->', question); | ||
| 543 | this._emit(Sass.SASS_CREAT_QUESTION_SUCCESS, question); | 582 | this._emit(Sass.SASS_CREAT_QUESTION_SUCCESS, question); |
| 544 | } else { | 583 | } else { |
| 545 | loger.warn('创建答题数据->失败.', ret); | 584 | loger.warn('创建答题数据->失败.', ret); |
| @@ -552,13 +591,13 @@ class Sass extends Emiter { | @@ -552,13 +591,13 @@ class Sass extends Emiter { | ||
| 552 | }); | 591 | }); |
| 553 | } | 592 | } |
| 554 | //保存答题数据 | 593 | //保存答题数据 |
| 555 | - sendAnswer(_param){ | ||
| 556 | - if(GlobalConfig.isRecordPlayBack){ | 594 | + sendAnswer(_param) { |
| 595 | + if (GlobalConfig.isRecordPlayBack) { | ||
| 557 | loger.log('录制回放中->保存答题数据->不做操作'); | 596 | loger.log('录制回放中->保存答题数据->不做操作'); |
| 558 | return; | 597 | return; |
| 559 | } | 598 | } |
| 560 | - if(!_param){ | ||
| 561 | - loger.warn('保存答题数据->参数错误->param:',_param); | 599 | + if (!_param) { |
| 600 | + loger.warn('保存答题数据->参数错误->param:', _param); | ||
| 562 | this._emit(Sass.SASS_SEND_ANSWER_FAILED); | 601 | this._emit(Sass.SASS_SEND_ANSWER_FAILED); |
| 563 | return; | 602 | return; |
| 564 | } | 603 | } |
| @@ -571,13 +610,13 @@ class Sass extends Emiter { | @@ -571,13 +610,13 @@ class Sass extends Emiter { | ||
| 571 | userId String 用户id | 610 | userId String 用户id |
| 572 | userName String 用户名字*/ | 611 | userName String 用户名字*/ |
| 573 | 612 | ||
| 574 | - let classId=GlobalConfig.classId;//课堂号 | 613 | + let classId = GlobalConfig.classId; //课堂号 |
| 575 | var timestamp = new Date().getTime(); | 614 | var timestamp = new Date().getTime(); |
| 576 | - let authId = MD5(classId+""+timestamp); | 615 | + let authId = MD5(classId + "" + timestamp); |
| 577 | 616 | ||
| 578 | - let type = parseInt(_param.type);//1单选,2多选,3判断,4点名 | 617 | + let type = parseInt(_param.type); //1单选,2多选,3判断,4点名 |
| 579 | 618 | ||
| 580 | - let questionId = parseInt(_param.questionId);//题目id | 619 | + let questionId = parseInt(_param.questionId); //题目id |
| 581 | let answer = _param.answer.toString(); | 620 | let answer = _param.answer.toString(); |
| 582 | let userId = _param.userId; | 621 | let userId = _param.userId; |
| 583 | let userName = _param.userName; | 622 | let userName = _param.userName; |
| @@ -585,7 +624,7 @@ class Sass extends Emiter { | @@ -585,7 +624,7 @@ class Sass extends Emiter { | ||
| 585 | let url = `http://${GlobalConfig.portal}/3m/api/question/answer.do`; | 624 | let url = `http://${GlobalConfig.portal}/3m/api/question/answer.do`; |
| 586 | loger.log('保存答题数据', url); | 625 | loger.log('保存答题数据', url); |
| 587 | 626 | ||
| 588 | - fetch( encodeURI(url), { | 627 | + fetch(encodeURI(url), { |
| 589 | method: 'POST', | 628 | method: 'POST', |
| 590 | headers: { | 629 | headers: { |
| 591 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" | 630 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" |
| @@ -605,10 +644,10 @@ class Sass extends Emiter { | @@ -605,10 +644,10 @@ class Sass extends Emiter { | ||
| 605 | } | 644 | } |
| 606 | }) | 645 | }) |
| 607 | .then(ret => { | 646 | .then(ret => { |
| 608 | - if (ret.code== 0) { | 647 | + if (ret.code == 0) { |
| 609 | // 0 正常 1 没有指定的课堂 4 验证信息错误(authId) 5 没有指定的题目 6 题目不属于该课堂 | 648 | // 0 正常 1 没有指定的课堂 4 验证信息错误(authId) 5 没有指定的题目 6 题目不属于该课堂 |
| 610 | //{"code":0} | 649 | //{"code":0} |
| 611 | - let question=_param; | 650 | + let question = _param; |
| 612 | loger.log('保存答题数据->完成'); | 651 | loger.log('保存答题数据->完成'); |
| 613 | this._emit(Sass.SASS_SEND_ANSWER_SUCCESS, question); | 652 | this._emit(Sass.SASS_SEND_ANSWER_SUCCESS, question); |
| 614 | } else { | 653 | } else { |
| @@ -622,23 +661,23 @@ class Sass extends Emiter { | @@ -622,23 +661,23 @@ class Sass extends Emiter { | ||
| 622 | }); | 661 | }); |
| 623 | } | 662 | } |
| 624 | //查询题目数据 | 663 | //查询题目数据 |
| 625 | - getQuestion(_param){ | ||
| 626 | - if(GlobalConfig.isRecordPlayBack){ | 664 | + getQuestion(_param) { |
| 665 | + if (GlobalConfig.isRecordPlayBack) { | ||
| 627 | loger.log('录制回放中->查询题目数据->不做操作'); | 666 | loger.log('录制回放中->查询题目数据->不做操作'); |
| 628 | return; | 667 | return; |
| 629 | } | 668 | } |
| 630 | - if(!_param){ | ||
| 631 | - loger.warn('查询题目数据->参数错误->param:',_param); | 669 | + if (!_param) { |
| 670 | + loger.warn('查询题目数据->参数错误->param:', _param); | ||
| 632 | this._emit(Sass.SASS_GET_QUESTION_FAILED); | 671 | this._emit(Sass.SASS_GET_QUESTION_FAILED); |
| 633 | return; | 672 | return; |
| 634 | } | 673 | } |
| 635 | //questionId long 题目id | 674 | //questionId long 题目id |
| 636 | 675 | ||
| 637 | - let questionId = parseInt(_param.questionId);//题目id | 676 | + let questionId = parseInt(_param.questionId); //题目id |
| 638 | let url = `http://${GlobalConfig.portal}/3m/api/question/get.do`; | 677 | let url = `http://${GlobalConfig.portal}/3m/api/question/get.do`; |
| 639 | loger.log('查询题目数据', url); | 678 | loger.log('查询题目数据', url); |
| 640 | //接口中用的是GET | 679 | //接口中用的是GET |
| 641 | - fetch( encodeURI(url), { | 680 | + fetch(encodeURI(url), { |
| 642 | method: 'POST', | 681 | method: 'POST', |
| 643 | headers: { | 682 | headers: { |
| 644 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" | 683 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" |
| @@ -657,16 +696,16 @@ class Sass extends Emiter { | @@ -657,16 +696,16 @@ class Sass extends Emiter { | ||
| 657 | } | 696 | } |
| 658 | }) | 697 | }) |
| 659 | .then(ret => { | 698 | .then(ret => { |
| 660 | - if (ret.code== 0) { | 699 | + if (ret.code == 0) { |
| 661 | //0 正常 5 没有指定的题目 | 700 | //0 正常 5 没有指定的题目 |
| 662 | //{"timeLimit":90,"code":0,"options":"[\"A\",\"B\",\"C\"]","id":22,"type":2,"content":"题目"} | 701 | //{"timeLimit":90,"code":0,"options":"[\"A\",\"B\",\"C\"]","id":22,"type":2,"content":"题目"} |
| 663 | loger.log('查询题目数据->完成'); | 702 | loger.log('查询题目数据->完成'); |
| 664 | - let question={}; | ||
| 665 | - question.questionId=ret.id||questionId; | ||
| 666 | - question.type=ret.type; | ||
| 667 | - question.timeLimit=ret.timeLimit; | ||
| 668 | - question.options=ret.options; | ||
| 669 | - question.content=ret.content; | 703 | + let question = {}; |
| 704 | + question.questionId = ret.id || questionId; | ||
| 705 | + question.type = ret.type; | ||
| 706 | + question.timeLimit = ret.timeLimit; | ||
| 707 | + question.options = ret.options; | ||
| 708 | + question.content = ret.content; | ||
| 670 | 709 | ||
| 671 | this._emit(Sass.SASS_GET_QUESTION_SUCCESS, question); | 710 | this._emit(Sass.SASS_GET_QUESTION_SUCCESS, question); |
| 672 | } else { | 711 | } else { |
| @@ -680,23 +719,23 @@ class Sass extends Emiter { | @@ -680,23 +719,23 @@ class Sass extends Emiter { | ||
| 680 | }); | 719 | }); |
| 681 | } | 720 | } |
| 682 | //查询答题结果数据 | 721 | //查询答题结果数据 |
| 683 | - getQuestionResult(_param){ | ||
| 684 | - if(GlobalConfig.isRecordPlayBack){ | 722 | + getQuestionResult(_param) { |
| 723 | + if (GlobalConfig.isRecordPlayBack) { | ||
| 685 | loger.log('录制回放中->查询答题结果数据->不做操作'); | 724 | loger.log('录制回放中->查询答题结果数据->不做操作'); |
| 686 | return; | 725 | return; |
| 687 | } | 726 | } |
| 688 | - if(!_param){ | ||
| 689 | - loger.warn('查询答题结果数据->参数错误->param:',_param); | 727 | + if (!_param) { |
| 728 | + loger.warn('查询答题结果数据->参数错误->param:', _param); | ||
| 690 | this._emit(Sass.SASS_GET_QUESTION_RESULT_FAILED); | 729 | this._emit(Sass.SASS_GET_QUESTION_RESULT_FAILED); |
| 691 | return; | 730 | return; |
| 692 | } | 731 | } |
| 693 | //questionId long 题目id | 732 | //questionId long 题目id |
| 694 | 733 | ||
| 695 | - let questionId = parseInt(_param.questionId);//题目id | 734 | + let questionId = parseInt(_param.questionId); //题目id |
| 696 | let url = `http://${GlobalConfig.portal}/3m/api/question/results.do`; | 735 | let url = `http://${GlobalConfig.portal}/3m/api/question/results.do`; |
| 697 | loger.log('查询答题结果数据', url); | 736 | loger.log('查询答题结果数据', url); |
| 698 | 737 | ||
| 699 | - fetch( encodeURI(url), { | 738 | + fetch(encodeURI(url), { |
| 700 | method: 'POST', | 739 | method: 'POST', |
| 701 | headers: { | 740 | headers: { |
| 702 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" | 741 | "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" |
| @@ -715,7 +754,7 @@ class Sass extends Emiter { | @@ -715,7 +754,7 @@ class Sass extends Emiter { | ||
| 715 | } | 754 | } |
| 716 | }) | 755 | }) |
| 717 | .then(ret => { | 756 | .then(ret => { |
| 718 | - if (ret.code== 0) { | 757 | + if (ret.code == 0) { |
| 719 | //int 0 正常5 没有指定的题目 | 758 | //int 0 正常5 没有指定的题目 |
| 720 | /* list array 数组 | 759 | /* list array 数组 |
| 721 | userId string 用户id | 760 | userId string 用户id |
| @@ -724,9 +763,9 @@ class Sass extends Emiter { | @@ -724,9 +763,9 @@ class Sass extends Emiter { | ||
| 724 | {"timeLimit":0,"content":"test question","id":11,"code":0,"type":3,"options":"["True", "False"]"}*/ | 763 | {"timeLimit":0,"content":"test question","id":11,"code":0,"type":3,"options":"["True", "False"]"}*/ |
| 725 | 764 | ||
| 726 | loger.log('查询答题结果数据->完成'); | 765 | loger.log('查询答题结果数据->完成'); |
| 727 | - let result=_param||{}; | ||
| 728 | - result.questionId=questionId; | ||
| 729 | - result.list=ret.list; | 766 | + let result = _param || {}; |
| 767 | + result.questionId = questionId; | ||
| 768 | + result.list = ret.list; | ||
| 730 | this._emit(Sass.SASS_GET_QUESTION_RESULT_SUCCESS, result); | 769 | this._emit(Sass.SASS_GET_QUESTION_RESULT_SUCCESS, result); |
| 731 | } else { | 770 | } else { |
| 732 | loger.warn('查询答题结果数据->失败.', ret); | 771 | loger.warn('查询答题结果数据->失败.', ret); |
| @@ -746,24 +785,25 @@ Sass.prototype.SUCCESS = Sass.SUCCESS = 'Sass_success'; | @@ -746,24 +785,25 @@ Sass.prototype.SUCCESS = Sass.SUCCESS = 'Sass_success'; | ||
| 746 | Sass.prototype.CLASS_INIT_SUCCESS = Sass.CLASS_INIT_SUCCESS = 'sass_class_init_success'; | 785 | Sass.prototype.CLASS_INIT_SUCCESS = Sass.CLASS_INIT_SUCCESS = 'sass_class_init_success'; |
| 747 | Sass.prototype.CLASS_GET_CLASS_PARAM = Sass.CLASS_GET_CLASS_PARAM = 'sass_class_getClassParam.message'; | 786 | Sass.prototype.CLASS_GET_CLASS_PARAM = Sass.CLASS_GET_CLASS_PARAM = 'sass_class_getClassParam.message'; |
| 748 | Sass.prototype.CLASS_GET_CLASS_DETAIL = Sass.CLASS_GET_CLASS_DETAIL = 'sass_class_getClassDetail_message'; | 787 | Sass.prototype.CLASS_GET_CLASS_DETAIL = Sass.CLASS_GET_CLASS_DETAIL = 'sass_class_getClassDetail_message'; |
| 749 | -Sass.prototype.DELETE_DOCUMENT_SUCCESS = Sass.DELETE_DOCUMENT_SUCCESS = 'sass_class_deleteDocumentSuccess_message';//删除文档成功 | ||
| 750 | -Sass.prototype.DELETE_MEDIASHARE_SUCCESS = Sass.DELETE_MEDIASHARE_SUCCESS = 'sass_class_deleteMediaShareSuccess_message';//删除文档成功 | 788 | +Sass.prototype.DELETE_DOCUMENT_SUCCESS = Sass.DELETE_DOCUMENT_SUCCESS = 'sass_class_deleteDocumentSuccess_message'; //删除文档成功 |
| 789 | +Sass.prototype.DELETE_MEDIASHARE_SUCCESS = Sass.DELETE_MEDIASHARE_SUCCESS = 'sass_class_deleteMediaShareSuccess_message'; //删除文档成功 | ||
| 790 | +Sass.prototype.DELETE_MUSICSHARE_SUCCESS = Sass.DELETE_MUSICSHARE_SUCCESS = 'sass_class_deleteMusicShareSuccess_message'; //删除文档成功 | ||
| 751 | 791 | ||
| 752 | -Sass.prototype.CLASS_SAVE_STATUS_INFO_SUCCESS = Sass.CLASS_SAVE_STATUS_INFO_SUCCESS = 'sass_class_saveClassStatusInfoSuccess_message';//保存课堂状态信息 | ||
| 753 | -Sass.prototype.CLASS_SAVE_RECORD_INFO_SUCCESS = Sass.CLASS_SAVE_RECORD_INFO_SUCCESS = 'sass_class_saveClassRecordInfoSuccess_message';//保存录制课堂信息 | 792 | +Sass.prototype.CLASS_SAVE_STATUS_INFO_SUCCESS = Sass.CLASS_SAVE_STATUS_INFO_SUCCESS = 'sass_class_saveClassStatusInfoSuccess_message'; //保存课堂状态信息 |
| 793 | +Sass.prototype.CLASS_SAVE_RECORD_INFO_SUCCESS = Sass.CLASS_SAVE_RECORD_INFO_SUCCESS = 'sass_class_saveClassRecordInfoSuccess_message'; //保存录制课堂信息 | ||
| 754 | 794 | ||
| 755 | //答题卡和点名 | 795 | //答题卡和点名 |
| 756 | -Sass.prototype.SASS_CREAT_QUESTION_SUCCESS = Sass.SASS_CREAT_QUESTION_SUCCESS = 'sass_creat_question_success';//创建答题卡问题成功 | ||
| 757 | -Sass.prototype.SASS_CREAT_QUESTION_FAILED = Sass.SASS_CREAT_QUESTION_FAILED = 'sass_creat_question_failed';//创建答题卡失败 | 796 | +Sass.prototype.SASS_CREAT_QUESTION_SUCCESS = Sass.SASS_CREAT_QUESTION_SUCCESS = 'sass_creat_question_success'; //创建答题卡问题成功 |
| 797 | +Sass.prototype.SASS_CREAT_QUESTION_FAILED = Sass.SASS_CREAT_QUESTION_FAILED = 'sass_creat_question_failed'; //创建答题卡失败 | ||
| 758 | 798 | ||
| 759 | -Sass.prototype.SASS_GET_QUESTION_SUCCESS = Sass.SASS_GET_QUESTION_SUCCESS = 'sass_get_question_success';//获取问题成功 | ||
| 760 | -Sass.prototype.SASS_GET_QUESTION_FAILED = Sass.SASS_GET_QUESTION_FAILED = 'sass_get_question_failed';//获取问题失败 | 799 | +Sass.prototype.SASS_GET_QUESTION_SUCCESS = Sass.SASS_GET_QUESTION_SUCCESS = 'sass_get_question_success'; //获取问题成功 |
| 800 | +Sass.prototype.SASS_GET_QUESTION_FAILED = Sass.SASS_GET_QUESTION_FAILED = 'sass_get_question_failed'; //获取问题失败 | ||
| 761 | 801 | ||
| 762 | -Sass.prototype.SASS_GET_QUESTION_RESULT_SUCCESS = Sass.SASS_GET_QUESTION_RESULT_SUCCESS = 'sass_get_question_result_success';//获取问题结果成功 | ||
| 763 | -Sass.prototype.SASS_GET_QUESTION_RESULT_FAILED = Sass.SASS_GET_QUESTION_RESULT_FAILED = 'sass_get_question_result_failed';//获取问题结果失败 | 802 | +Sass.prototype.SASS_GET_QUESTION_RESULT_SUCCESS = Sass.SASS_GET_QUESTION_RESULT_SUCCESS = 'sass_get_question_result_success'; //获取问题结果成功 |
| 803 | +Sass.prototype.SASS_GET_QUESTION_RESULT_FAILED = Sass.SASS_GET_QUESTION_RESULT_FAILED = 'sass_get_question_result_failed'; //获取问题结果失败 | ||
| 764 | 804 | ||
| 765 | -Sass.prototype.SASS_SEND_ANSWER_SUCCESS = Sass.SASS_SEND_ANSWER_SUCCESS = 'sass_send_answer_success';//保存答案成功 | ||
| 766 | -Sass.prototype.SASS_SEND_ANSWER_FAILED = Sass.SASS_SEND_ANSWER_FAILED = 'sass_send_answer_failed';//保存答案失败 | 805 | +Sass.prototype.SASS_SEND_ANSWER_SUCCESS = Sass.SASS_SEND_ANSWER_SUCCESS = 'sass_send_answer_success'; //保存答案成功 |
| 806 | +Sass.prototype.SASS_SEND_ANSWER_FAILED = Sass.SASS_SEND_ANSWER_FAILED = 'sass_send_answer_failed'; //保存答案失败 | ||
| 767 | 807 | ||
| 768 | export default new Sass; | 808 | export default new Sass; |
| 769 | 809 |
| @@ -95,7 +95,7 @@ class ConferApe extends Ape { | @@ -95,7 +95,7 @@ class ConferApe extends Ape { | ||
| 95 | getNodeInfo() { | 95 | getNodeInfo() { |
| 96 | let nodeInfoRecordPdu = new pdu['RCNodeInfoRecordPdu']; | 96 | let nodeInfoRecordPdu = new pdu['RCNodeInfoRecordPdu']; |
| 97 | nodeInfoRecordPdu.nodeId = GlobalConfig.nodeId; | 97 | nodeInfoRecordPdu.nodeId = GlobalConfig.nodeId; |
| 98 | - nodeInfoRecordPdu.selfSilence = JSON.stringify(GlobalConfig.selfSilence)||""; | 98 | + nodeInfoRecordPdu.selfSilence = JSON.stringify(GlobalConfig.selfSilence) || ""; |
| 99 | nodeInfoRecordPdu.name = GlobalConfig.userName; | 99 | nodeInfoRecordPdu.name = GlobalConfig.userName; |
| 100 | nodeInfoRecordPdu.role = ApeConsts.userTypesToId[GlobalConfig.userRole] || 1; //NR_NORMAL用户的身份,根据用户登录时的身份设置; | 100 | nodeInfoRecordPdu.role = ApeConsts.userTypesToId[GlobalConfig.userRole] || 1; //NR_NORMAL用户的身份,根据用户登录时的身份设置; |
| 101 | nodeInfoRecordPdu.level = GlobalConfig.level; | 101 | nodeInfoRecordPdu.level = GlobalConfig.level; |
| @@ -333,11 +333,11 @@ class ConferApe extends Ape { | @@ -333,11 +333,11 @@ class ConferApe extends Ape { | ||
| 333 | 333 | ||
| 334 | // 全局禁言 | 334 | // 全局禁言 |
| 335 | silenceClass(params) { | 335 | silenceClass(params) { |
| 336 | - if (GlobalConfig.isHost) { | 336 | + if (!GlobalConfig.isNormal) { |
| 337 | //同步禁言状态 | 337 | //同步禁言状态 |
| 338 | this.sendUpdaterClassStatusInfo(params); | 338 | this.sendUpdaterClassStatusInfo(params); |
| 339 | } else { | 339 | } else { |
| 340 | - loger.warn('没有开始课堂的权限'); | 340 | + loger.warn('老师/监客拥有改权限'); |
| 341 | } | 341 | } |
| 342 | } | 342 | } |
| 343 | 343 | ||
| @@ -415,13 +415,13 @@ class ConferApe extends Ape { | @@ -415,13 +415,13 @@ class ConferApe extends Ape { | ||
| 415 | } | 415 | } |
| 416 | let msgObj = {}; | 416 | let msgObj = {}; |
| 417 | msgObj.nodeId = _param.nodeId; | 417 | msgObj.nodeId = _param.nodeId; |
| 418 | - msgObj.silence = _param.silence ||{}; | 418 | + msgObj.silence = _param.silence || {}; |
| 419 | this.sendConferMsg({ "to": _param.nodeId, "message": JSON.stringify(msgObj), "actionType": ApeConsts.USER_ACTION_SILENCE_STATUS_CHANGE }); | 419 | this.sendConferMsg({ "to": _param.nodeId, "message": JSON.stringify(msgObj), "actionType": ApeConsts.USER_ACTION_SILENCE_STATUS_CHANGE }); |
| 420 | } | 420 | } |
| 421 | 421 | ||
| 422 | changeSilenceStatus(_param) { | 422 | changeSilenceStatus(_param) { |
| 423 | loger.log('切换禁言状态->', _param); | 423 | loger.log('切换禁言状态->', _param); |
| 424 | - GlobalConfig.selfSilence = _param.silence||{}; | 424 | + GlobalConfig.selfSilence = _param.silence || {}; |
| 425 | this.updateUserInfo(); | 425 | this.updateUserInfo(); |
| 426 | } | 426 | } |
| 427 | 427 |
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | // Author: AlexWang | 8 | // Author: AlexWang |
| 9 | // Date: 2016-08-26 17:36:20 | 9 | // Date: 2016-08-26 17:36:20 |
| 10 | // QQ Email: 1669499355@qq.com | 10 | // QQ Email: 1669499355@qq.com |
| 11 | -// Last Modified time: 2017-06-27 18:13:39 | 11 | +// Last Modified time: 2017-06-29 14:09:25 |
| 12 | // Description: LiveClass-CursorApe | 12 | // Description: LiveClass-CursorApe |
| 13 | // | 13 | // |
| 14 | // ////////////////////////////////////////////////////////////////////////////// | 14 | // ////////////////////////////////////////////////////////////////////////////// |
| @@ -54,7 +54,7 @@ class CursorApe extends Ape { | @@ -54,7 +54,7 @@ class CursorApe extends Ape { | ||
| 54 | return; | 54 | return; |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | - let itemIdx = EngineUtils.creatSoleNumberFromTimestamp(); //创建时间戳,保证每条数据的唯一 | 57 | + let itemIdx = ApeConsts.CURSOR_OBJ_TABLE_ID; |
| 58 | let cursorModelPdu = this.packPdu(_param, itemIdx); | 58 | let cursorModelPdu = this.packPdu(_param, itemIdx); |
| 59 | if (cursorModelPdu == null) { | 59 | if (cursorModelPdu == null) { |
| 60 | loger.warn('添加标注失败-->参数错误->', _param); | 60 | loger.warn('添加标注失败-->参数错误->', _param); |
| @@ -68,13 +68,14 @@ class CursorApe extends Ape { | @@ -68,13 +68,14 @@ class CursorApe extends Ape { | ||
| 68 | tableItemPdu.owner = 0; //收到flash的是这个值,不清楚先写固定 | 68 | tableItemPdu.owner = 0; //收到flash的是这个值,不清楚先写固定 |
| 69 | tableItemPdu.itemData = cursorModelPdu.toArrayBuffer(); | 69 | tableItemPdu.itemData = cursorModelPdu.toArrayBuffer(); |
| 70 | 70 | ||
| 71 | - //insert | ||
| 72 | - let tableInsertItemPdu = new pdu['RCRegistryTableInsertItemPdu']; | ||
| 73 | - tableInsertItemPdu.type = pdu.RCPDU_REG_TABLE_INSERT_PDU; // | 71 | + let tableInsertItemPdu = new pdu['RCRegistryTableUpdateItemPdu']; |
| 72 | + //optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU]; | ||
| 73 | + //repeated RCRegistryTableItemPdu items = 2; | ||
| 74 | + tableInsertItemPdu.type = pdu.RCPDU_REG_TABLE_UPDATE_PDU; // | ||
| 74 | tableInsertItemPdu.items.push(tableItemPdu); | 75 | tableInsertItemPdu.items.push(tableItemPdu); |
| 75 | 76 | ||
| 76 | let updateObjPdu = new pdu['RCRegistryUpdateObjPdu']; | 77 | let updateObjPdu = new pdu['RCRegistryUpdateObjPdu']; |
| 77 | - updateObjPdu.objId = ApeConsts.CURSOR_OBJ_TABLE_ID; | 78 | + updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID; // updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5; |
| 78 | updateObjPdu.subType = tableInsertItemPdu.type; | 79 | updateObjPdu.subType = tableInsertItemPdu.type; |
| 79 | updateObjPdu.userData = tableInsertItemPdu.toArrayBuffer(); | 80 | updateObjPdu.userData = tableInsertItemPdu.toArrayBuffer(); |
| 80 | 81 | ||
| @@ -87,14 +88,14 @@ class CursorApe extends Ape { | @@ -87,14 +88,14 @@ class CursorApe extends Ape { | ||
| 87 | adapterPdu.type = pdu.RCPDU_REG_ADAPTER; | 88 | adapterPdu.type = pdu.RCPDU_REG_ADAPTER; |
| 88 | adapterPdu.item.push(adapterItemPdu); | 89 | adapterPdu.item.push(adapterItemPdu); |
| 89 | 90 | ||
| 90 | - loger.log("添加标注->itemIdx=" + tableItemPdu.itemIdx); | 91 | + loger.log("发送更新.itemIdx=" + tableItemPdu.itemIdx); |
| 91 | this.sendUniform(adapterPdu, true); | 92 | this.sendUniform(adapterPdu, true); |
| 92 | } | 93 | } |
| 93 | 94 | ||
| 94 | /////鼠标数据接受///////////////////////////////////////////////////////////////////////////////// | 95 | /////鼠标数据接受///////////////////////////////////////////////////////////////////////////////// |
| 95 | - tableInsertHandler(owner, itemIdx, itemData) { | 96 | + tableUpdateHandler(owner, itemIdx, itemData) { |
| 96 | let cursorModel = this.unPackPdu(owner, itemIdx, itemData); | 97 | let cursorModel = this.unPackPdu(owner, itemIdx, itemData); |
| 97 | - loger.log('tableInsertHandler', "activeDocId->", GlobalConfig.activeDocId, "parentId->", cursorModel.parentId); | 98 | + loger.log('tableUpdateHandler', "activeDocId->", GlobalConfig.activeDocId, "parentId->", cursorModel.parentId); |
| 98 | loger.log(cursorModel); | 99 | loger.log(cursorModel); |
| 99 | if (cursorModel) { | 100 | if (cursorModel) { |
| 100 | this._emit(MessageTypes.CURSOR_UPDATE, cursorModel); | 101 | this._emit(MessageTypes.CURSOR_UPDATE, cursorModel); |
| @@ -131,8 +132,8 @@ class CursorApe extends Ape { | @@ -131,8 +132,8 @@ class CursorApe extends Ape { | ||
| 131 | unPackPdu(owner, itemIdx, itemData) { | 132 | unPackPdu(owner, itemIdx, itemData) { |
| 132 | try { | 133 | try { |
| 133 | loger.log("鼠标标注数据->unPackPdu"); | 134 | loger.log("鼠标标注数据->unPackPdu"); |
| 134 | - let cursorModelPdu = pdu['RCCursorDataModelPdu'].decode(itemData); | ||
| 135 | - let _pointGroup = EngineUtils.arrayFromJsonString(cursorModelPdu.pointGroup); | 135 | + const cursorModelPdu = pdu['RCCursorDataModelPdu'].decode(itemData); |
| 136 | + const _pointGroup = EngineUtils.arrayFromJsonString(cursorModelPdu.pointGroup); | ||
| 136 | cursorModelPdu.pointGroup = _pointGroup; | 137 | cursorModelPdu.pointGroup = _pointGroup; |
| 137 | return cursorModelPdu; | 138 | return cursorModelPdu; |
| 138 | } catch (err) { | 139 | } catch (err) { |
| @@ -102,7 +102,7 @@ class MusicSharedApe extends Ape { | @@ -102,7 +102,7 @@ class MusicSharedApe extends Ape { | ||
| 102 | adapterPdu.type = pdu.RCPDU_REG_ADAPTER; | 102 | adapterPdu.type = pdu.RCPDU_REG_ADAPTER; |
| 103 | adapterPdu.item.push(adapterItemPdu); | 103 | adapterPdu.item.push(adapterItemPdu); |
| 104 | 104 | ||
| 105 | - loger.log("媒体文件发送删除数据=============>" + tableDeleteItemPdu.itemIdx); | 105 | + loger.log("MUSIC文件发送删除数据=============>" + tableDeleteItemPdu.itemIdx); |
| 106 | this.sendUniform(adapterPdu, true); | 106 | this.sendUniform(adapterPdu, true); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| @@ -347,7 +347,7 @@ class MusicSharedApe extends Ape { | @@ -347,7 +347,7 @@ class MusicSharedApe extends Ape { | ||
| 347 | loger.log('添加媒体文件->设置当前激活的媒体文件id'); | 347 | loger.log('添加媒体文件->设置当前激活的媒体文件id'); |
| 348 | } | 348 | } |
| 349 | let getMusicPackFullInfo = this._musicSharedPackFullInfo(itemDataInfo); | 349 | let getMusicPackFullInfo = this._musicSharedPackFullInfo(itemDataInfo); |
| 350 | - this._emit(MessageTypes.MEDIA_SHARED_UPDATE, getMusicPackFullInfo); | 350 | + this._emit(MessageTypes.MUSIC_SHARED_UPDATE, getMusicPackFullInfo); |
| 351 | } | 351 | } |
| 352 | } | 352 | } |
| 353 | //媒体文件数据更新完毕,如果当前没有显示的媒体文件,默认选择一个显示 | 353 | //媒体文件数据更新完毕,如果当前没有显示的媒体文件,默认选择一个显示 |
| @@ -367,7 +367,7 @@ class MusicSharedApe extends Ape { | @@ -367,7 +367,7 @@ class MusicSharedApe extends Ape { | ||
| 367 | GlobalConfig.activeMusicSeek = 1; //当前激活的媒体文件的当前页 | 367 | GlobalConfig.activeMusicSeek = 1; //当前激活的媒体文件的当前页 |
| 368 | loger.log('删除媒体文件数据->清除当前显示的媒体文件'); | 368 | loger.log('删除媒体文件数据->清除当前显示的媒体文件'); |
| 369 | } | 369 | } |
| 370 | - this._emit(MessageTypes.MEDIA_SHARED_DELETE, { "itemIdx": itemIdxs[i] }); | 370 | + this._emit(MessageTypes.MUSIC_SHARED_DELETE, { "itemIdx": itemIdxs[i] }); |
| 371 | delete this.musicSharedList[itemIdxs[i]]; | 371 | delete this.musicSharedList[itemIdxs[i]]; |
| 372 | } | 372 | } |
| 373 | } | 373 | } |
| @@ -393,7 +393,7 @@ class MusicSharedApe extends Ape { | @@ -393,7 +393,7 @@ class MusicSharedApe extends Ape { | ||
| 393 | loger.log('更新媒体文件->设置当前激活的媒体文件id->', GlobalConfig.activeMusicId, "curPageNum->", GlobalConfig.activeMusicSeek); | 393 | loger.log('更新媒体文件->设置当前激活的媒体文件id->', GlobalConfig.activeMusicId, "curPageNum->", GlobalConfig.activeMusicSeek); |
| 394 | } | 394 | } |
| 395 | let getMusicPackFullInfo = this._musicSharedPackFullInfo(itemDataInfo); | 395 | let getMusicPackFullInfo = this._musicSharedPackFullInfo(itemDataInfo); |
| 396 | - this._emit(MessageTypes.MEDIA_SHARED_UPDATE, getMusicPackFullInfo); | 396 | + this._emit(MessageTypes.MUSIC_SHARED_UPDATE, getMusicPackFullInfo); |
| 397 | } else { | 397 | } else { |
| 398 | loger.log('更新媒体文件-> 数据无效--> itemIdx', itemIdx); | 398 | loger.log('更新媒体文件-> 数据无效--> itemIdx', itemIdx); |
| 399 | } | 399 | } |
-
请 注册 或 登录 后发表评论