Explorar o código

add reSettleRelatedID function and some test cases

TonyKang %!s(int64=8) %!d(string=hai) anos
pai
achega
99db7f84d6

+ 2 - 2
modules/reports/models/cfg_control.js

@@ -25,7 +25,7 @@ CtrlDAO.prototype.get = function(id, callback){
             callback(false, templates[0]);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }
@@ -36,7 +36,7 @@ CtrlDAO.prototype.getAll = function(id, callback){
             callback(false, templates);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }

+ 2 - 2
modules/reports/models/cfg_font.js

@@ -28,7 +28,7 @@ FontDAO.prototype.get = function(id, callback){
             callback(false, templates[0]);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }
@@ -39,7 +39,7 @@ FontDAO.prototype.getAll = function(id, callback){
             callback(false, templates);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }

+ 2 - 2
modules/reports/models/cfg_style.js

@@ -21,7 +21,7 @@ StyleDAO.prototype.get = function(id, callback){
             callback(false, templates[0]);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }
@@ -32,7 +32,7 @@ StyleDAO.prototype.getAll = function(id, callback){
             callback(false, templates);
         }
         else{
-            callback('查找不到报表模板!');
+            callback('no record was found!');
         }
     })
 }

+ 11 - 52
public/treeUtil.js

@@ -2,58 +2,17 @@
  * Created by Tony on 2017/3/14.
  */
 
-const NODE_ID = "ID", P_ID = "ParentID", NEXT_ID = "NextSiblingID", ADHOC_PRE_ID="Previous_ID", CHILDREN_NODE = "items", SUB_ID = "sub_ids", EMPTY_ID_VAL = -1;
+const fs = require('fs');
+var treeNodeUtil = null;
 
-module.exports = {
-    buildTreeNodeDirectly: function(data) {
-        var me = this, topArr = [], rst = [], tmpNodes = {}, prefix = "id_";
-        private_getTopNode = function (idArr) {
-            var rst = null;
-            for (var i = 0; i < idArr.length; i++) {
-                if (tmpNodes[prefix + idArr[i]][ADHOC_PRE_ID] == EMPTY_ID_VAL) {
-                    rst = tmpNodes[prefix + idArr[i]];
-                    break;
-                }
-            }
-            return rst;
-        }
-        private_buildNodeData = function(parentItem, idArr) {
-            var iter = [], nextNode = private_getTopNode(idArr);
-            while (nextNode != null && nextNode != undefined ) {
-                if (parentItem) {
-                    parentItem[CHILDREN_NODE].push(nextNode);
-                } else {
-                    rst.push(nextNode);
-                }
-                iter.push(nextNode);
-                nextNode = tmpNodes[prefix + nextNode[NEXT_ID]];
-            }
-            for (var i = 0; i < iter.length; i++) {
-                private_buildNodeData(iter[i], iter[i][SUB_ID]);
-            }
-        }
-
-        for (var i = 0; i < data.length; i++) {
-            tmpNodes[prefix + data[i][NODE_ID]] = data[i];
-            data[i][ADHOC_PRE_ID] = EMPTY_ID_VAL;
-            data[i][SUB_ID] = [];
-            data[i][CHILDREN_NODE] = [];
-            if (data[i][P_ID] == EMPTY_ID_VAL) {
-                topArr.push(data[i][NODE_ID]);
-            }
-        }
-        for (var i = 0; i < data.length; i++) {
-            if (data[i][NEXT_ID] != EMPTY_ID_VAL) {
-                tmpNodes[prefix + data[i][NEXT_ID]][ADHOC_PRE_ID] = data[i][NODE_ID];
-            }
-            if (data[i][P_ID] != EMPTY_ID_VAL) {
-                tmpNodes[prefix + data[i][P_ID]][SUB_ID].push(data[i][NODE_ID]);
-            }
-        }
-        private_buildNodeData(null, topArr);
-        //try to release and return
-        tmpNodes = null;
-        topArr.length = 0;
-        return rst;
+getTreeNodeUtil = function() {
+    if (!(treeNodeUtil)) {
+        var data = fs.readFileSync(__dirname + '/web/treeDataHelper.js', 'utf8', 'r');
+        //console.log(data);
+        eval(data);
+        treeNodeUtil = tree_Data_Helper;
     }
+    return treeNodeUtil;
 }
+
+exports.getUtil = getTreeNodeUtil;

+ 30 - 0
web/scripts/treeDataHelper.js

@@ -54,5 +54,35 @@ var tree_Data_Helper = {
         tmpNodes = null;
         topArr.length = 0;
         return rst;
+    },
+    reSettleRelatedID: function(treeData) {
+        if (treeData && treeData.length > 0) {
+            for (var i = 0; i < treeData[CHILDREN_NODE].length; i++) {
+                var nI = null;
+                if (i < treeData[CHILDREN_NODE].length - 1) {
+                    nI = treeData[CHILDREN_NODE][i+1];
+                }
+                settleNodeRelatedID(null, nI, treeData[CHILDREN_NODE][i]);
+            }
+        }
+    },
+    settleNodeRelatedID : function(parentItem, nextItem, node) {
+        if (parentItem) {
+            node[P_ID] = parentItem[NODE_ID];
+        } else {
+            node[P_ID] = EMPTY_ID_VAL;
+        }
+        if (nextItem) {
+            node[NEXT_ID] = nextItem[NODE_ID];
+        } else {
+            node[NEXT_ID] = EMPTY_ID_VAL;
+        }
+        for (var i = 0; i < node[CHILDREN_NODE].length; i++) {
+            var nI = null;
+            if (i < node[CHILDREN_NODE].length - 1) {
+                nI = node[CHILDREN_NODE][i+1];
+            }
+            private_settleNodeRelatedID(node, nI, node[CHILDREN_NODE][i]);
+        }
     }
 }

+ 1 - 1
test/demo/demo.js

@@ -7,6 +7,6 @@ var test = require('tape');
 test('basic arithmetic', function (t) {
     t.plan(2);
 
-    t.equal(2 + 3, 6);
+    t.equal(2 + 3, 5);
     t.equal(7 * 8 + 9, 65);
 });

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 3 - 0
test/tmp_data/test_bills_data.js


+ 11 - 0
test/unit/cache/testCacheUsage.js

@@ -0,0 +1,11 @@
+/**
+ * Created by Tony on 2017/3/20.
+ */
+var test = require('tape');
+var cache = require('../../../public/cache/cacheUtil');
+
+test('test cache usage:', function(t) {
+    cache.setCache("unit_TestKey","hello my cache!");
+    t.equal(cache.getCache("unit_TestKey"), "hello my cache!")
+    t.end();
+})

+ 14 - 0
test/unit/reports/testBills.js

@@ -0,0 +1,14 @@
+/**
+ * Created by Tony on 2017/3/20.
+ */
+var test = require('tape');
+var treeU = require('../../../public/treeUtil').getUtil();
+var testData = require('../../tmp_data/test_bills_data');
+
+test('test treeUtil buildTreeNodeDirectly: ', function (t) {
+    t.plan(1);
+    var rst = treeU.buildTreeNodeDirectly(testData);
+    console.log(rst.length);
+    t.equal(rst.length > 5 && rst.length < 20, true);
+    //t.end();
+});

+ 37 - 2
test/unit/reports/testRpt.js

@@ -2,10 +2,45 @@
  * Created by Tony on 2017/3/17.
  */
 var test = require('tape');
+var cmn_ctrl = require('../../../modules/reports/models/cfg_control');
+var cmn_font = require('../../../modules/reports/models/cfg_font');
+var cmn_style = require('../../../modules/reports/models/cfg_style');
 
 test('test get report pages function: ', function (t) {
-    t.plan(2);
+    /*/
+    t.plan(1);
+    t.equal(2 + 3, 5);
+    /*/
+    cmn_ctrl.getAll(null, function(err, ctrls){
+        t.notEqual(ctrls, null);
+        t.end();
+        return true;
+    });
+    //*/
+});
 
-    t.equal(2 + 3, 6);
+test('test get report pages function: ', function (t) {
+    /*/
+    t.plan(1);
     t.equal(7 * 8 + 9, 65);
+    /*/
+    cmn_font.getAll(null, function(err, fonts){
+        t.notEqual(fonts, null);
+        t.end();
+        return true;
+    });
+    //*/
+});
+
+test('test get report pages function: ', function (t) {
+    /*/
+    t.plan(1);
+    t.equal(1+2, 65);
+    /*/
+    cmn_style.getAll(null, function(err, styles){
+        t.notEqual(styles, null);
+        t.end();
+        return true;
+    });
+    //*/
 });