Browse Source

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/CocoRoboDesktop into beta

lsc 1 năm trước cách đây
mục cha
commit
90dc4c3747
1 tập tin đã thay đổi với 59 bổ sung18 xóa
  1. 59 18
      node/message.js

+ 59 - 18
node/message.js

@@ -601,6 +601,8 @@ us.send = function (response, messageinfo) {
                 break;
             //未来课堂交互                                                                                      
             case "us.cscl":
+                console.log("================aaaaa===================");
+                console.log(_messageobj[i]);
                 _messagearr = _messageobj[i]; //获取word消息
                 //得到word所有的用户
                 for (j = 0; j < _messagearr.length; j++) {
@@ -614,8 +616,10 @@ us.send = function (response, messageinfo) {
                         _messagelist[_messagearr[j].receiveId] = [_message];
                     }
                     us.cscl[_messagearr[j].receiveId] && us.cscl[_messagearr[j].receiveId].history.push(_message);
-                    us.updatecscl(_message.messageInfo);
+                    us.updatecscl(_message.messageInfo, _messagearr[j].receiveId);
                 }
+                // console.log(_messagelist)
+                // console.log(_messagearr)
                 //调用群发函数
                 _messagearr[0] && us.broadcast(_messagelist, _messagearr[0].messageInfo.pageId, 'cscl');
                 break;
@@ -736,21 +740,49 @@ us.updatemindNetwork = function (messageInfo) {
 * @param {object} message 消息信息
 */
 us.updatecscl = function (messageInfo, classId) {
+    messageInfo = messageInfo;
+    console.log("------------s------------");
+    console.log(us.cscl[classId])
     if (us.cscl[classId]) {
         var i, j, _is;
         var _obj = us.cscl[classId].content;
         _obj.backgroundUrl = messageInfo.backgroundUrl;
-        _obj.edges = messageInfo.edges;
-        _obj.nodes = messageInfo.nodes;
-        // for (j = 0; j < messageInfo.edges.length; j++) {
-        //     _is = true;
-        //     for (i = 0; i < _obj.edges.length; i++) {
-        //         if (_obj.edges[i].id == messageInfo.edges[i].id) {
-        //             _obj.edges[i] = messageInfo.edges[i];
-        //             break;
-        //         }
-        //     }
-        // }
+        _obj.edges = _obj.edges || [];
+        _obj.nodes = _obj.nodes || [];
+        for (j = 0; j < messageInfo.edges.length; j++) {
+            _is = true;
+            for (i = 0; i < _obj.edges.length; i++) {
+                if (_obj.edges[i].id == messageInfo.edges[j].id) {
+                    _obj.edges[i] = messageInfo.edges[j];
+                    _is = false;
+                    break;
+                }
+            }
+            if (_is) {
+                _obj.edges.push(messageInfo.edges[j])
+            }
+        }
+        console.log("------------a------------");
+        console.log(messageInfo.nodes)
+        console.log(_obj.nodes)
+        for (j = 0; j < messageInfo.nodes.length; j++) {
+            _is = true;
+            for (i = 0; i < _obj.nodes.length; i++) {
+                if (_obj.nodes[i].id == messageInfo.nodes[j].id) {
+                    _obj.nodes[i] = messageInfo.nodes[j];
+                    _is = false;
+                    break;
+                }
+            }
+            if (_is) {
+                _obj.nodes.push(messageInfo.nodes[j])
+            }
+        }
+        //如果不存在则去数据库查找
+        us.mysql.usselect(['172.16.12.5', 'pbl', 'updateRoomData', JSON.stringify(_obj), classId],
+            function (ret) {
+            });
+
 
         //"nodes":[{"id":"9f6d7459-d376-4c0c-944b-a6b140085903","type":"icon-start","x":625,"y":145,"properties":{},"zIndex":1002,"text":{"x":625,"y":145,"value":"起始"}},{"id":"16e18308-7517-4162-8b32-a877b7cf42a0","type":"icon-card","x":325,"y":445,"properties":{},"zIndex":1002},{"id":"5c492b0d-092d-4d84-bd70-4d5734de9266","type":"icon-select","x":970,"y":510,"properties":{},"zIndex":1002}],
         //"edges":[],
@@ -1403,19 +1435,26 @@ us.broadcast = function (messageinfo, pageid, type) {
     for (i in messageinfo) {
         _messageinfo = messageinfo[i]; //记录消息消息
         _users = us[type][i] ? us[type][i].user : {}; //记录用户集合
+        // console.log("=================e=============");
+        // console.log(us[type][i]);
+        // console.log(us.connect);
+        // console.log(_messageinfo);
         for (j in _users) { //循环处理每个用户处理 给每个用户集合下的用户发送消息
             _pageids = _users[j]; //记录当前用户在每个端登录的页面唯一识别ID
+            console.log(_pageids);
             for (o = 0; o < _pageids.length; o++) { //循环发送给当前用户在每个端登录的用户
                 _recievedpageid = _pageids[o]; //记录接受者页面唯一识别ID  用于区分是否是发送用户
                 if (_recievedpageid != pageid) { //如果接受用户不等于发送用户则发送消息
                     try {
-                        _issend = _userconnect[j][_recievedpageid].response.end(JSON.stringify(_messageinfo)); //发送消息
-                        if (!_issend) { //如果用户下线了,那么发送消息就会失败
-                            us.offLineMessage[_recievedpageid].message.push(_messageinfo); //将消息加入用户离线消息中
+                        if (_userconnect[j] && _userconnect[j][_recievedpageid]) {
+                            _issend = _userconnect[j][_recievedpageid].response.end(JSON.stringify(_messageinfo)); //发送消息
+                            if (!_issend) { //如果用户下线了,那么发送消息就会失败
+                                us.offLineMessage[_recievedpageid].message.push(_messageinfo); //将消息加入用户离线消息中
+                            }
                         }
                     }
                     catch (e) {
-                        console.error(e.message)
+                        console.log(e)
                     }
                 }
             }
@@ -1960,7 +1999,7 @@ us.getcscl = function (response, calssid, pageid, userid) {
         if (!us.cscl[calssid].user[userid]) {
             us.cscl[calssid].user[userid] = [pageid];
         }
-        else {
+        else if (us.cscl[calssid].user[userid].indexOf(pageid) == -1) {
             us.cscl[calssid].user[userid].push(pageid);
         }
         try {
@@ -1973,6 +2012,7 @@ us.getcscl = function (response, calssid, pageid, userid) {
         us.mysql.usselect(['172.16.12.5', 'pbl', 'select_room', calssid],
             function (ret) {
                 if (ret) {
+                    console.log(ret[0][0].data)
                     ret[0][0].data = us.cscl[calssid].content; //把思维网格的内容转化成数组
                     response.end(JSON.stringify(ret)); //返回文档内容
                 }
@@ -1994,11 +2034,12 @@ us.getcscl = function (response, calssid, pageid, userid) {
         us.mysql.usselect(['172.16.12.5', 'pbl', 'select_room', calssid],
             function (ret) {
                 if (ret) {
+                    console.log(ret[0][0].data)
                     us.cscl[calssid].content = JSON.parse(ret[0][0].data); //把思维网格的内容转化成数组
                     response.end(JSON.stringify(ret)); //返回文档内容
                 }
                 else {
-                    us.cscl[calssid].content = []; //创建一个空数组
+                    us.cscl[calssid].content = {}; //创建一个空数组
                     response.end(''); //返回文档内容 
                 }
             });