crabatool 1.0.396 → 1.0.397

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/apis/data.js CHANGED
@@ -1,156 +1,156 @@
1
- var path = require('path');
2
- var crabatool = require('../index.js');
3
- var utils = crabatool.utils;
4
- var JSONCRUD = crabatool.JSONCRUD;
5
-
6
- class data {
7
- constructor() {
8
-
9
- }
10
-
11
- _init(req) {
12
- if (req.app.jsoncrud) { // 每个server只创建1个实例
13
- return;
14
- }
15
- req.app.jsoncrud = new JSONCRUD({ storagePath: path.join(req.app.webPath, '../data/data.json') });
16
- }
17
-
18
- _getDb(req) {
19
- return req.app.jsoncrud;
20
- }
21
-
22
- async get(req, res) {
23
- var body = utils.getReqBody(req);
24
- var that = this;
25
-
26
- var queryParams = body.queryParams;
27
- var filterParams = body.filter;
28
- var items = null;
29
- if (filterParams && filterParams.items && filterParams.items.length > 0) {
30
- items = filterParams.items;
31
- }
32
-
33
- if (queryParams) {
34
- var keys = Object.keys(queryParams);
35
- if (!items) {
36
- items = [];
37
- }
38
-
39
- keys.forEach(function(key) {
40
- if (that._isEmpty(queryParams[key])) {
41
- return;
42
- }
43
-
44
- var index = items.findIndex(function(item) {
45
- return item.dataField == key;
46
- });
47
- if (index > -1) {
48
- items.splice(index, 1); // 删除filter里面的字段,queryParams优先级大于filter
49
- }
50
- items.push({ dataField: key, type: 0, value: queryParams[key] });
51
- });
52
- }
53
-
54
- var info = await this._getDb(req).find(body.name, {
55
- page: body.pageIndex,
56
- pageSize: body.pageSize,
57
- filterFunc: function(item) {
58
- if (items && items.length > 0) {
59
- return that._locateRowToCache(item, items);
60
- }
61
- return true;
62
- }
63
- });
64
-
65
- crabatool.utils.end(res, {
66
- code: 200,
67
- msg: '操作成功',
68
- data: info.data,
69
- count: info.pageData.count
70
- });
71
- }
72
-
73
- async save(req, res) {
74
- var body = utils.getReqBody(req);
75
-
76
- var newData;
77
- if (body.data.id) {
78
- newData = await this._getDb(req).update(body.name, body.data.id, body.data);
79
- } else {
80
- newData = await this._getDb(req).create(body.name, body.data);
81
- }
82
-
83
- crabatool.utils.end(res, {
84
- code: 200,
85
- msg: '操作成功',
86
- data: newData
87
- });
88
- }
89
-
90
- async delete(req, res) {
91
- var body = utils.getReqBody(req);
92
-
93
- var result = await this._getDb(req).delete(body.name, body.data.id);
94
-
95
- crabatool.utils.end(res, {
96
- code: 200,
97
- msg: '操作成功',
98
- data: result
99
- });
100
- }
101
-
102
- _locateRowToCache(record, items) {
103
- var ok = false;
104
- var like = true;
105
-
106
- for (var j = 0, count2 = items.length; j < count2; j++) {
107
- var item = items[j];
108
-
109
- var propName = item.dataField;
110
- var propValue = item.value;
111
- var v = record[propName];
112
- var useLike = like && item.type != 2;
113
-
114
- if (item.type == 7) {
115
- ok = item.value.includes(v);
116
- if (ok == false) break;
117
- } else if (item.type == 1) {
118
- if (item.value1 instanceof Date && typeof v == 'string') {
119
- v = Date.strToDateTime(v);
120
- }
121
- if (v >= item.value1 && v <= item.value2) {
122
- ok = true;
123
- } else if (v >= item.value1 && this._isUndefinedOrNull(item.value2) || v <= item.value2 && this._isUndefinedOrNull(item.value1)) {
124
- ok = true;
125
- } else {
126
- ok = false;
127
- break;
128
- }
129
- } else if (useLike) {
130
- if (!this._isUndefinedOrNull(v) && v.toString().toLowerCase().indexOf(propValue.toString().toLowerCase()) > -1) {
131
- ok = true;
132
- } else {
133
- ok = false;
134
- break;
135
- }
136
- } else {
137
- if (v == propValue) {
138
- ok = true;
139
- } else {
140
- ok = false;
141
- break;
142
- }
143
- }
144
- }
145
- return ok;
146
- }
147
-
148
- _isUndefinedOrNull(v) {
149
- return v === null || v === undefined;
150
- }
151
-
152
- _isEmpty(v) {
153
- return v === '' || this._isUndefinedOrNull(v);
154
- }
155
- }
1
+ var path = require('path');
2
+ var crabatool = require('../index.js');
3
+ var utils = crabatool.utils;
4
+ var JSONCRUD = crabatool.JSONCRUD;
5
+
6
+ class data {
7
+ constructor() {
8
+
9
+ }
10
+
11
+ _init(req) {
12
+ if (req.app.jsoncrud) { // 每个server只创建1个实例
13
+ return;
14
+ }
15
+ req.app.jsoncrud = new JSONCRUD({ storagePath: path.join(req.app.webPath, '../data/data.json') });
16
+ }
17
+
18
+ _getDb(req) {
19
+ return req.app.jsoncrud;
20
+ }
21
+
22
+ async get(req, res) {
23
+ var body = utils.getReqBody(req);
24
+ var that = this;
25
+
26
+ var queryParams = body.queryParams;
27
+ var filterParams = body.filter;
28
+ var items = null;
29
+ if (filterParams && filterParams.items && filterParams.items.length > 0) {
30
+ items = filterParams.items;
31
+ }
32
+
33
+ if (queryParams) {
34
+ var keys = Object.keys(queryParams);
35
+ if (!items) {
36
+ items = [];
37
+ }
38
+
39
+ keys.forEach(function(key) {
40
+ if (that._isEmpty(queryParams[key])) {
41
+ return;
42
+ }
43
+
44
+ var index = items.findIndex(function(item) {
45
+ return item.dataField == key;
46
+ });
47
+ if (index > -1) {
48
+ items.splice(index, 1); // 删除filter里面的字段,queryParams优先级大于filter
49
+ }
50
+ items.push({ dataField: key, type: 0, value: queryParams[key] });
51
+ });
52
+ }
53
+
54
+ var info = await this._getDb(req).find(body.name, {
55
+ page: body.pageIndex,
56
+ pageSize: body.pageSize,
57
+ filterFunc: function(item) {
58
+ if (items && items.length > 0) {
59
+ return that._locateRowToCache(item, items);
60
+ }
61
+ return true;
62
+ }
63
+ });
64
+
65
+ crabatool.utils.end(res, {
66
+ code: 200,
67
+ msg: '操作成功',
68
+ data: info.data,
69
+ count: info.pageData.count
70
+ });
71
+ }
72
+
73
+ async save(req, res) {
74
+ var body = utils.getReqBody(req);
75
+
76
+ var newData;
77
+ if (body.data.id) {
78
+ newData = await this._getDb(req).update(body.name, body.data.id, body.data);
79
+ } else {
80
+ newData = await this._getDb(req).create(body.name, body.data);
81
+ }
82
+
83
+ crabatool.utils.end(res, {
84
+ code: 200,
85
+ msg: '操作成功',
86
+ data: newData
87
+ });
88
+ }
89
+
90
+ async delete(req, res) {
91
+ var body = utils.getReqBody(req);
92
+
93
+ var result = await this._getDb(req).delete(body.name, body.data.id);
94
+
95
+ crabatool.utils.end(res, {
96
+ code: 200,
97
+ msg: '操作成功',
98
+ data: result
99
+ });
100
+ }
101
+
102
+ _locateRowToCache(record, items) {
103
+ var ok = false;
104
+ var like = true;
105
+
106
+ for (var j = 0, count2 = items.length; j < count2; j++) {
107
+ var item = items[j];
108
+
109
+ var propName = item.dataField;
110
+ var propValue = item.value;
111
+ var v = record[propName];
112
+ var useLike = like && item.type != 2;
113
+
114
+ if (item.type == 7) {
115
+ ok = item.value.includes(v);
116
+ if (ok == false) break;
117
+ } else if (item.type == 1) {
118
+ if (item.value1 instanceof Date && typeof v == 'string') {
119
+ v = Date.strToDateTime(v);
120
+ }
121
+ if (v >= item.value1 && v <= item.value2) {
122
+ ok = true;
123
+ } else if (v >= item.value1 && this._isUndefinedOrNull(item.value2) || v <= item.value2 && this._isUndefinedOrNull(item.value1)) {
124
+ ok = true;
125
+ } else {
126
+ ok = false;
127
+ break;
128
+ }
129
+ } else if (useLike) {
130
+ if (!this._isUndefinedOrNull(v) && v.toString().toLowerCase().indexOf(propValue.toString().toLowerCase()) > -1) {
131
+ ok = true;
132
+ } else {
133
+ ok = false;
134
+ break;
135
+ }
136
+ } else {
137
+ if (v == propValue) {
138
+ ok = true;
139
+ } else {
140
+ ok = false;
141
+ break;
142
+ }
143
+ }
144
+ }
145
+ return ok;
146
+ }
147
+
148
+ _isUndefinedOrNull(v) {
149
+ return v === null || v === undefined;
150
+ }
151
+
152
+ _isEmpty(v) {
153
+ return v === '' || this._isUndefinedOrNull(v);
154
+ }
155
+ }
156
156
  exports = module.exports = new data();