李勇

增加从后台读取站点的白板配置,允许不同站点设置不同的白板文档

@@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter { @@ -63,7 +63,7 @@ export default class MessageEntrance extends Emiter {
63 super(); 63 super();
64 this.lastClassActiveTime=0;//最后一次课堂激活的时间戳 64 this.lastClassActiveTime=0;//最后一次课堂激活的时间戳
65 //sdk 信息 65 //sdk 信息
66 - GlobalConfig.sdkVersion = "v2.38.1.201712011"; 66 + GlobalConfig.sdkVersion = "v2.38.3.201712011";
67 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion); 67 loger.warn("sdkVersion:" + GlobalConfig.sdkVersion);
68 console.log("sdkVersion:" + GlobalConfig.sdkVersion); 68 console.log("sdkVersion:" + GlobalConfig.sdkVersion);
69 //设置 69 //设置
@@ -767,12 +767,56 @@ export default class MessageEntrance extends Emiter { @@ -767,12 +767,56 @@ export default class MessageEntrance extends Emiter {
767 767
768 // 通过SASS平台验证(密码和MD5) 768 // 通过SASS平台验证(密码和MD5)
769 _sassJoinSuccessHandler(_data) { 769 _sassJoinSuccessHandler(_data) {
770 - //SAAS获取课堂最完整的数据 770 + //先获取白板配置再获取课堂完整信息
  771 + try{
  772 + if(_ipManager){
  773 +
  774 + _ipManager.loadWhiteboardJosn((_callbackInfo)=>{
  775 + loger.log("获取白板配置JOSN返回->",_callbackInfo);
  776 + if(_callbackInfo&&_callbackInfo.data){
  777 + let siteWhiteboradData=_callbackInfo.data[GlobalConfig.siteId];
  778 + if(siteWhiteboradData){
  779 + /* itemIdx: GlobalConfig.whiteboardId,//指定的白板文档ID
  780 + name: "白板.pdf",
  781 + creatUserId: 0,
  782 + md5: "b153313f6f390328a30db5389b6cee53",
  783 + pageNum: 30,
  784 + docId: "b153313f6f390328a30db5389b6cee53",
  785 + url: "http://pclive.xuedianyun.com/DocSharing/data/whiteboard/default/whiteboard.pdf",
  786 + dynamicTransferStatic: "0",
  787 + relativeUrl: "/DocSharing/data/whiteboard/default/whiteboard.pdf",
  788 + fileType: "pdf",
  789 + type:"pdf"*/
  790 + GlobalConfig.whiteboardForSiteId={};
  791 + GlobalConfig.whiteboardForSiteId.itemIdx=GlobalConfig.whiteboardId;
  792 + GlobalConfig.whiteboardForSiteId.name=siteWhiteboradData.name;
  793 + GlobalConfig.whiteboardForSiteId. creatUserId= siteWhiteboradData.creatUserId;
  794 + GlobalConfig.whiteboardForSiteId. md5=siteWhiteboradData.md5;
  795 + GlobalConfig.whiteboardForSiteId. pageNum= parseInt(siteWhiteboradData.pageNum);
  796 + GlobalConfig.whiteboardForSiteId. docId=siteWhiteboradData.docId;
  797 + GlobalConfig.whiteboardForSiteId. url=siteWhiteboradData.url;
  798 + GlobalConfig.whiteboardForSiteId.dynamicTransferStatic=siteWhiteboradData.dynamicTransferStatic;
  799 + GlobalConfig.whiteboardForSiteId.relativeUrl=siteWhiteboradData.relativeUrl;
  800 + GlobalConfig.whiteboardForSiteId. fileType=siteWhiteboradData.fileType;
  801 + GlobalConfig.whiteboardForSiteId. type=siteWhiteboradData.type;
  802 + loger.log("站点已经有配置白板文档->使用站点私有的白板");
  803 + }
  804 + }
  805 + this._getClassFullParam();
  806 + });
  807 + }else {
  808 + this._getClassFullParam();
  809 + }
  810 + }catch (err){
  811 + this._getClassFullParam();
  812 + }
  813 + }
  814 + //SAAS获取课堂最完整的数据
  815 + _getClassFullParam(){
771 if (_sass) { 816 if (_sass) {
772 _sass.getClassParam(); 817 _sass.getClassParam();
773 } 818 }
774 } 819 }
775 -  
776 //加载本地Server.json文件,UserIp获取ip信息,选点 820 //加载本地Server.json文件,UserIp获取ip信息,选点
777 loadServerJsonAndgetUserIpInfo() { 821 loadServerJsonAndgetUserIpInfo() {
778 let _this = this; 822 let _this = this;
@@ -1897,6 +1941,7 @@ export default class MessageEntrance extends Emiter { @@ -1897,6 +1941,7 @@ export default class MessageEntrance extends Emiter {
1897 GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr); //cdn加速的拉流地址,直播的时候才使用 1941 GlobalConfig.setVideoCDNAddr(_data.videoCDNAddr); //cdn加速的拉流地址,直播的时候才使用
1898 GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表 1942 GlobalConfig.setMediaShareList(_data.sharedMediaList); //提前上传的媒体共享文件列表
1899 1943
  1944 + /*
1900 //设置白板文档,固定ID 1945 //设置白板文档,固定ID
1901 let whiteBoradData = { 1946 let whiteBoradData = {
1902 itemIdx: GlobalConfig.whiteboardId,//指定的白板文档ID 1947 itemIdx: GlobalConfig.whiteboardId,//指定的白板文档ID
@@ -1911,7 +1956,14 @@ export default class MessageEntrance extends Emiter { @@ -1911,7 +1956,14 @@ export default class MessageEntrance extends Emiter {
1911 fileType: "pdf", 1956 fileType: "pdf",
1912 type:"pdf" 1957 type:"pdf"
1913 } 1958 }
1914 - GlobalConfig.docListPrepare.push(whiteBoradData); 1959 + GlobalConfig.docListPrepare.push(whiteBoradData);
  1960 + */
  1961 + if(GlobalConfig.whiteboardForSiteId&&Object.keys(GlobalConfig.whiteboardForSiteId).length>1){
  1962 + GlobalConfig.docListPrepare.push(GlobalConfig.whiteboardForSiteId);
  1963 + }else {
  1964 + loger.log("站点没有配置白板文档->使用默认白板");
  1965 + GlobalConfig.docListPrepare.push(GlobalConfig.whiteboardDefault);
  1966 + }
1915 1967
1916 let appConfigStr = _data.appConfig; 1968 let appConfigStr = _data.appConfig;
1917 appConfigStr = _base64.decode(appConfigStr); 1969 appConfigStr = _base64.decode(appConfigStr);
@@ -651,10 +651,31 @@ GlobalConfig.updateRecordTimeDelay = 5; //(绉)锛屽悓姝ヤ竴娆¤鍫傚綍鍒剁姸鎬 @@ -651,10 +651,31 @@ GlobalConfig.updateRecordTimeDelay = 5; //(绉)锛屽悓姝ヤ竴娆¤鍫傚綍鍒剁姸鎬
651 GlobalConfig.updateClassInfoDelay = 10; //(秒),同步一次课堂状态的并保存到Sass 651 GlobalConfig.updateClassInfoDelay = 10; //(秒),同步一次课堂状态的并保存到Sass
652 GlobalConfig.msDynamicChooseIpDelay = 60 * 3; //(秒)MS动态选点的间隔 652 GlobalConfig.msDynamicChooseIpDelay = 60 * 3; //(秒)MS动态选点的间隔
653 //GlobalConfig.serverTimestamp=0;//当前的系统时间戳 用get set 获取 653 //GlobalConfig.serverTimestamp=0;//当前的系统时间戳 用get set 获取
654 -GlobalConfig.whiteboardId = 2359297;//白板文档的ID 654 +
655 GlobalConfig.activeDocId = 0; //当前激活的文档ID 655 GlobalConfig.activeDocId = 0; //当前激活的文档ID
656 GlobalConfig.activeDocCurPage = 1; //当前激活的文档的当前页 656 GlobalConfig.activeDocCurPage = 1; //当前激活的文档的当前页
657 657
  658 +//白板
  659 +GlobalConfig.whiteboardId = 2359297;//白板文档的ID
  660 +GlobalConfig.whiteboardJsonPath = "pclive.xuedianyun.com/DocSharing/data/whiteboard/whiteboard.json";//白板文档配置地址
  661 +//默认的白板数据
  662 +GlobalConfig.whiteboardDefault={
  663 + itemIdx: GlobalConfig.whiteboardId,//指定的白板文档ID
  664 + name: "白板.pdf",
  665 + creatUserId: 0,
  666 + md5: "b153313f6f390328a30db5389b6cee53",
  667 + pageNum: 30,
  668 + docId: "b153313f6f390328a30db5389b6cee53",
  669 + url: "http://pclive.xuedianyun.com/DocSharing/data/whiteboard/default/whiteboard.pdf",
  670 + dynamicTransferStatic: "0",
  671 + relativeUrl: "/DocSharing/data/whiteboard/default/whiteboard.pdf",
  672 + fileType: "pdf",
  673 + type:"pdf"
  674 +};
  675 +
  676 +GlobalConfig.whiteboardForSiteId=null;//站点私有的白板数据
  677 +
  678 +
658 GlobalConfig.activeMediaId = 0; //当前显示的媒体文件的id 679 GlobalConfig.activeMediaId = 0; //当前显示的媒体文件的id
659 GlobalConfig.activeMediaSeek = 1; //当前的媒体文件的播放进度seek点 680 GlobalConfig.activeMediaSeek = 1; //当前的媒体文件的播放进度seek点
660 681
@@ -695,6 +716,8 @@ GlobalConfig.appRecordingKey = ""; @@ -695,6 +716,8 @@ GlobalConfig.appRecordingKey = "";
695 GlobalConfig.channelId = ""; 716 GlobalConfig.channelId = "";
696 GlobalConfig.channelKey = ""; 717 GlobalConfig.channelKey = "";
697 GlobalConfig.userUid = 0; 718 GlobalConfig.userUid = 0;
  719 +
  720 +GlobalConfig.videoScale = 1;//视频的缩放倍数,默认1倍无缩放
698 GlobalConfig.recordInterfaces = "";//控制开启录制和录制状态改变的接口 721 GlobalConfig.recordInterfaces = "";//控制开启录制和录制状态改变的接口
699 GlobalConfig.getRecordInfoInterfaces = "";//获取媒体录制信息数据的接口 722 GlobalConfig.getRecordInfoInterfaces = "";//获取媒体录制信息数据的接口
700 GlobalConfig.stopRecordingInterfaces = "";//停止录制的接口 723 GlobalConfig.stopRecordingInterfaces = "";//停止录制的接口
@@ -702,7 +725,6 @@ GlobalConfig.getTxRecordInfoInterfaces = "";//鑾峰彇濯掍綋褰曞埗淇℃伅鏁版嵁鐨勬 @@ -702,7 +725,6 @@ GlobalConfig.getTxRecordInfoInterfaces = "";//鑾峰彇濯掍綋褰曞埗淇℃伅鏁版嵁鐨勬
702 GlobalConfig.getRecordFileURLAgoInterfaces = "";//获取媒体录制信息数据的接口(ago) 725 GlobalConfig.getRecordFileURLAgoInterfaces = "";//获取媒体录制信息数据的接口(ago)
703 GlobalConfig.getChannelToken = "";//获取token的地址 726 GlobalConfig.getChannelToken = "";//获取token的地址
704 GlobalConfig.recordFileSever = "";//录制文件路径和文件地址(ago) 727 GlobalConfig.recordFileSever = "";//录制文件路径和文件地址(ago)
705 -GlobalConfig.videoScale = 1;//视频的缩放倍数,默认1倍无缩放  
706 728
707 export default GlobalConfig; 729 export default GlobalConfig;
708 730
@@ -22,6 +22,47 @@ class IpManager extends Emiter { @@ -22,6 +22,47 @@ class IpManager extends Emiter {
22 constructor() { 22 constructor() {
23 super(); 23 super();
24 } 24 }
  25 + //获取本地白板配置json
  26 + loadWhiteboardJosn(_callback){
  27 + //-------------加载本地数据的代码-------------------
  28 + let callbackInfo = {
  29 + ret: -1
  30 + };
  31 + let timestamp=new Date().getTime();
  32 + let url = `${GlobalConfig.locationProtocol+GlobalConfig.whiteboardJsonPath}?v=${timestamp}`;
  33 + loger.log("获取白板配置信息->", url);
  34 + fetch(url, {
  35 + timeout: 3000
  36 + })
  37 + .then(ret => {
  38 + if (ret.ok) {
  39 + return ret.json();
  40 + } else {
  41 + loger.error(`获取白板配置信息-网络异常.状态码:${ret.status}`);
  42 + if (_callback) {
  43 + _callback(callbackInfo);
  44 + }
  45 + return;
  46 + }
  47 + })
  48 + .then(ret => {
  49 + if (ret) {
  50 + callbackInfo.data=ret;
  51 + callbackInfo.ret=1;
  52 + }
  53 + loger.log('获取白板配置信息->完成->');
  54 + if (_callback) {
  55 + _callback(callbackInfo);
  56 + }
  57 + })
  58 + .catch(err => {
  59 + loger.error(`获取白板配置信息-异常.状态码:${err}`);
  60 + if (_callback) {
  61 + _callback(callbackInfo);
  62 + }
  63 + });
  64 + }
  65 +
25 //获取本地Server JSON 66 //获取本地Server JSON
26 loadServerJosn(_callback){ 67 loadServerJosn(_callback){
27 //20170803-不再加载本地的server.json数据,以后都从Sass获取 68 //20170803-不再加载本地的server.json数据,以后都从Sass获取