mm_mysql 1.8.5 → 1.8.6

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.
Files changed (3) hide show
  1. package/package.json +37 -37
  2. package/sql.js +263 -131
  3. package/test.js +57 -0
package/package.json CHANGED
@@ -1,37 +1,37 @@
1
- {
2
- "name": "mm_mysql",
3
- "version": "1.8.5",
4
- "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
- "main": "index.js",
6
- "dependencies": {
7
- "mm_logs": "^1.1.5",
8
- "mysql": "^2.18.1"
9
- },
10
- "scripts": {
11
- "test": "node test.js",
12
- "dev": "nodemon test.js"
13
- },
14
- "author": "邱文武",
15
- "license": "ISC",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/qiuwenwu/mm_mysql.git"
19
- },
20
- "keywords": [
21
- "mysql",
22
- "async",
23
- "await",
24
- "promise",
25
- "add",
26
- "del",
27
- "set",
28
- "get",
29
- "query",
30
- "run",
31
- "exec"
32
- ],
33
- "bugs": {
34
- "url": "https://github.com/qiuwenwu/mm_mysql/issues"
35
- },
36
- "homepage": "https://github.com/qiuwenwu/mm_mysql#readme"
37
- }
1
+ {
2
+ "name": "mm_mysql",
3
+ "version": "1.8.6",
4
+ "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
+ "main": "index.js",
6
+ "dependencies": {
7
+ "mm_logs": "^1.1.6",
8
+ "mysql": "^2.18.1"
9
+ },
10
+ "scripts": {
11
+ "test": "node test.js",
12
+ "dev": "nodemon test.js"
13
+ },
14
+ "author": "邱文武",
15
+ "license": "ISC",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/qiuwenwu/mm_mysql.git"
19
+ },
20
+ "keywords": [
21
+ "mysql",
22
+ "async",
23
+ "await",
24
+ "promise",
25
+ "add",
26
+ "del",
27
+ "set",
28
+ "get",
29
+ "query",
30
+ "run",
31
+ "exec"
32
+ ],
33
+ "bugs": {
34
+ "url": "https://github.com/qiuwenwu/mm_mysql/issues"
35
+ },
36
+ "homepage": "https://github.com/qiuwenwu/mm_mysql#readme"
37
+ }
package/sql.js CHANGED
@@ -15,7 +15,7 @@ const {
15
15
  */
16
16
  class Sql {
17
17
  /**
18
- * @description 数据库管理器
18
+ * 数据库管理器
19
19
  * @param {Function} run 查询函数
20
20
  * @param {Function} exec 更改函数
21
21
  */
@@ -144,7 +144,7 @@ class Sql {
144
144
  }
145
145
 
146
146
  /**
147
- * @description 清理存储的数据
147
+ * 清理存储的数据
148
148
  */
149
149
  Sql.prototype.clear = async function() {
150
150
  this.run = run;
@@ -162,7 +162,7 @@ Sql.prototype.clear = async function() {
162
162
  };
163
163
 
164
164
  /**
165
- * @description 过滤查询参数
165
+ * 过滤查询参数
166
166
  * @param {Object} query 查询参数
167
167
  */
168
168
  Sql.prototype.filter = function(query) {
@@ -177,7 +177,7 @@ Sql.prototype.filter = function(query) {
177
177
  };
178
178
 
179
179
  /**
180
- * @description 查询条件拼接
180
+ * 查询条件拼接
181
181
  * @param {String} where 查询条件
182
182
  * @param {String} sort 排序
183
183
  * @param {String} view 返回的字段
@@ -203,7 +203,7 @@ Sql.prototype.toQuery = function(where, sort, view) {
203
203
  };
204
204
  /* === 传字符串参数 === */
205
205
  /**
206
- * @description 增加数据
206
+ * 增加数据
207
207
  * @param {String} key 用作增加的键集合
208
208
  * @param {String} val 用作增加的值集合
209
209
  * @return {Promise|Object} 执行结果
@@ -214,7 +214,7 @@ Sql.prototype.addSql = function(key, val) {
214
214
  return this.exec(sql);
215
215
  };
216
216
  /**
217
- * @description 删除数据
217
+ * 删除数据
218
218
  * @param {String} where 删除条件
219
219
  * @return {Promise|Object} 执行结果
220
220
  */
@@ -235,7 +235,7 @@ Sql.prototype.setSql = function(where, set) {
235
235
  return this.exec(sql);
236
236
  };
237
237
  /**
238
- * @description 查询数据
238
+ * 查询数据
239
239
  * @param {String} where 查询条件
240
240
  * @param {String} sort 排序
241
241
  * @param {String} view 显示的字段
@@ -247,53 +247,7 @@ Sql.prototype.getSql = function(where, sort, view) {
247
247
  };
248
248
 
249
249
  /**
250
- * @description 添加或修改
251
- * @param {String} where 查询条件
252
- * @param {String} set 修改的键值
253
- * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
254
- * @return {Promise|Object} 执行结果
255
- */
256
- Sql.prototype.addOrSetSql = async function(where, set, like) {
257
- if (!where || !set) {
258
- return -1;
259
- }
260
- if (typeof(where) === "object") {
261
- where = await this.toWhere(where, like);
262
- }
263
- var count = await this.countSql(where);
264
- if (count === 0) {
265
- var key = "";
266
- var value = "";
267
- if (typeof(set) === "string") {
268
- var arr = set.split(",");
269
- for (var i = 0; i < arr.length; i++) {
270
- var o = arr[i];
271
- var ar = o.split('=');
272
- if (ar.length === 2) {
273
- key += "," + ar[0];
274
- value += "," + ar[1];
275
- }
276
- }
277
- } else {
278
- for (var k in set) {
279
- key += "," + escapeId(k);
280
- var val = set[k];
281
- if (val && typeof(val) === "string") {
282
- val = val.trim("'");
283
- }
284
- value += "," + escape(val);
285
- }
286
- }
287
- return await this.addSql(key.replace(",", ""), value.replace(",", ""));
288
- }
289
- if (typeof(set) === "object") {
290
- set = await this.toSet(set);
291
- }
292
- return await this.setSql(where, set);
293
- };
294
-
295
- /**
296
- * @description 查询符合结果总数
250
+ * 查询符合结果总数
297
251
  * @param {String} where 查询条件
298
252
  * @return {Promise|Number} 返回结果总数
299
253
  */
@@ -311,7 +265,7 @@ Sql.prototype.countSql = async function(where) {
311
265
  };
312
266
 
313
267
  /**
314
- * @description 查询数据并返回符合条件总数
268
+ * 查询数据并返回符合条件总数
315
269
  * @param {String} where 查询条件
316
270
  * @param {String} sort 排序
317
271
  * @param {String} view 返回的字段
@@ -331,7 +285,7 @@ Sql.prototype.getCountSql = async function(where, sort, view) {
331
285
  };
332
286
 
333
287
  /**
334
- * @description 统计学
288
+ * 统计学
335
289
  * @param {String} where 查询条件
336
290
  * @param {String} groupby 分组的字段
337
291
  * @param {String} view 返回的字段
@@ -373,7 +327,7 @@ Sql.prototype.groupMathSql = async function(where, groupby, view, sort, method)
373
327
 
374
328
 
375
329
  /**
376
- * @description 分组求平均值
330
+ * 分组求平均值
377
331
  * @param {String} where 查询条件
378
332
  * @param {String} groupby 分组的字段
379
333
  * @param {String} view 返回的字段
@@ -385,7 +339,7 @@ Sql.prototype.groupAvgSql = async function(where, groupby, view, sort) {
385
339
  };
386
340
 
387
341
  /**
388
- * @description 分组合计数值
342
+ * 分组合计数值
389
343
  * @param {String} where 查询条件
390
344
  * @param {String} groupby 分组的字段
391
345
  * @param {String} view 返回的字段
@@ -397,7 +351,7 @@ Sql.prototype.groupSumSql = async function(where, groupby, view, sort) {
397
351
  };
398
352
 
399
353
  /**
400
- * @description 分组合计不同条数
354
+ * 分组合计不同条数
401
355
  * @param {String} where 查询条件
402
356
  * @param {String} groupby 分组的字段
403
357
  * @param {String} view 返回的字段
@@ -408,7 +362,7 @@ Sql.prototype.groupCountSql = async function(where, groupby, view, sort) {
408
362
  };
409
363
 
410
364
  /**
411
- * @description 统计学
365
+ * 统计学
412
366
  * @param {Object} query 查询条件
413
367
  * @param {String} groupby 分组的字段
414
368
  * @param {String} view 返回的字段
@@ -422,7 +376,7 @@ Sql.prototype.groupMath = async function(query, groupby, view, sort, method, lik
422
376
  };
423
377
 
424
378
  /**
425
- * @description 分组求平均值
379
+ * 分组求平均值
426
380
  * @param {Object} query 查询条件
427
381
  * @param {String} groupby 分组的字段
428
382
  * @param {String} view 返回的字段
@@ -434,7 +388,7 @@ Sql.prototype.groupAvg = async function(query, groupby, view, sort) {
434
388
  };
435
389
 
436
390
  /**
437
- * @description 分组合计数值
391
+ * 分组合计数值
438
392
  * @param {Object} query 查询条件
439
393
  * @param {String} groupby 分组的字段
440
394
  * @param {String} view 返回的字段
@@ -446,7 +400,7 @@ Sql.prototype.groupSum = async function(query, groupby, view, sort) {
446
400
  };
447
401
 
448
402
  /**
449
- * @description 分组合计不同条数
403
+ * 分组合计不同条数
450
404
  * @param {Object} query 查询条件
451
405
  * @param {String} groupby 分组的字段
452
406
  * @param {String} view 返回的字段
@@ -458,7 +412,7 @@ Sql.prototype.groupCount = async function(query, groupby, view, sort) {
458
412
 
459
413
  /* === sql语句拼接函数 === */
460
414
  /**
461
- * @description 转为where语句
415
+ * 转为where语句
462
416
  * @param {Object} obj 用作拼接的对象
463
417
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
464
418
  * @return {String} where格式sql语句字符串
@@ -523,7 +477,7 @@ Sql.prototype.toWhere = function(obj, like) {
523
477
  };
524
478
 
525
479
  /**
526
- * @description 转为set语句
480
+ * 转为set语句
527
481
  * @param {Object} obj 用作拼接的对象
528
482
  * @return {String} set格式sql语句字符串
529
483
  */
@@ -549,7 +503,7 @@ Sql.prototype.toSet = function(obj) {
549
503
  };
550
504
 
551
505
  /**
552
- * @description 转添加sql语句
506
+ * 转添加sql语句
553
507
  * @param {Object} item 用作添加的键值
554
508
  * @return {String} sql语句
555
509
  */
@@ -570,7 +524,7 @@ Sql.prototype.toAddSql = function(item) {
570
524
  };
571
525
 
572
526
  /**
573
- * @description 转删除sql语句
527
+ * 转删除sql语句
574
528
  * @param {Object} query 查询键值
575
529
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
576
530
  * @return {String} sql语句
@@ -582,7 +536,7 @@ Sql.prototype.toDelSql = function(query, like) {
582
536
  };
583
537
 
584
538
  /**
585
- * @description 转修改sql语句
539
+ * 转修改sql语句
586
540
  * @param {Object} query 查询的键值集合
587
541
  * @param {Object} item 修改的键值集合
588
542
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
@@ -596,7 +550,7 @@ Sql.prototype.toSetSql = function(query, item, like) {
596
550
  };
597
551
 
598
552
  /**
599
- * @description 转查询sql语句
553
+ * 转查询sql语句
600
554
  * @param {Object} query 查询键值集合
601
555
  * @param {String} sort 排序规则
602
556
  * @param {String} view 显示的字段
@@ -610,64 +564,273 @@ Sql.prototype.toGetSql = function(query, sort, view, like) {
610
564
  };
611
565
  /* === 传入对象操作 === */
612
566
  /**
613
- * @description 增加数据
614
- * @param {Object} item 添加的对象
567
+ * 增加数据
568
+ * @param {Object} body 添加的对象
615
569
  * @return {Promise|Object} 执行结果
616
570
  */
617
- Sql.prototype.add = function(item) {
618
- var sql = this.toAddSql(item);
619
- return this.exec(sql);
571
+ Sql.prototype.add = async function(body) {
572
+ await $.eventer.run("mysql_add_before:" + this.table, {
573
+ body
574
+ });
575
+ var sql = this.toAddSql(body);
576
+ var bl = await this.exec(sql);
577
+ await $.eventer.run("mysql_add_after:" + this.table, {
578
+ body,
579
+ sql: this.sql,
580
+ error: this.error,
581
+ bl
582
+ });
583
+ return bl
620
584
  };
621
585
 
622
586
  /**
623
- * @description 删除数据
587
+ * 删除数据
624
588
  * @param {Object} query 查询条件集合
625
589
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
626
590
  * @return {Promise|Object} 执行结果
627
591
  */
628
- Sql.prototype.del = function(query, like) {
592
+ Sql.prototype.del = async function(query, like) {
593
+ await $.eventer.run("mysql_del_before:" + this.table, {
594
+ query,
595
+ like
596
+ });
629
597
  var sql = this.toDelSql(query, like);
630
- return this.exec(sql);
598
+ var bl = await this.exec(sql);
599
+ await $.eventer.run("mysql_del_after:" + this.table, {
600
+ query,
601
+ like,
602
+ sql: this.sql,
603
+ error: this.error,
604
+ bl
605
+ });
606
+ return bl
631
607
  };
632
608
 
633
609
  /**
634
- * @description 修改数据
610
+ * 修改数据
635
611
  * @param {Object} query 查询条件集合
636
- * @param {Object} item 修改的键值集合
612
+ * @param {Object} body 修改的键值集合
637
613
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
638
614
  * @return {Promise|Object} 执行结果
639
615
  */
640
- Sql.prototype.set = function(query, item, like) {
641
- var sql = this.toSetSql(query, item, like);
642
- return this.exec(sql);
616
+ Sql.prototype.set = async function(query, body, like) {
617
+ await $.eventer.run("mysql_set_before:" + this.table, {
618
+ query,
619
+ body,
620
+ like,
621
+ page: this.page,
622
+ size: this.size
623
+ });
624
+ var sql = this.toSetSql(query, body, like);
625
+ var bl = await this.exec(sql);
626
+ await $.eventer.run("mysql_set_after:" + this.table, {
627
+ query,
628
+ body,
629
+ like,
630
+ page: this.page,
631
+ size: this.size,
632
+ sql: this.sql,
633
+ error: this.error,
634
+ bl
635
+ });
636
+ return bl
643
637
  };
644
638
 
645
639
  /**
646
- * @description 查询数据
640
+ * 添加或修改
641
+ * @param {String} where 查询条件
642
+ * @param {String} set 修改的键值
643
+ * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
644
+ * @return {Promise|Object} 执行结果
645
+ */
646
+ Sql.prototype.addOrSetSql = async function(where, set, like) {
647
+ if (!where || !set) {
648
+ return -1;
649
+ }
650
+ var query = where;
651
+ var body = set;
652
+ if (typeof(where) === "object") {
653
+ where = await this.toWhere(where, like);
654
+ }
655
+ var count = await this.countSql(where);
656
+ if (count === 0) {
657
+ var key = "";
658
+ var value = "";
659
+ if (typeof(set) === "string") {
660
+ var arr = set.split(",");
661
+ for (var i = 0; i < arr.length; i++) {
662
+ var o = arr[i];
663
+ var ar = o.split('=');
664
+ if (ar.length === 2) {
665
+ key += "," + ar[0];
666
+ value += "," + ar[1];
667
+ }
668
+ }
669
+ } else {
670
+ if (typeof(body) === "object") {
671
+ await $.eventer.run("mysql_add_before:" + this.table, {
672
+ body
673
+ });
674
+ }
675
+ for (var k in set) {
676
+ key += "," + escapeId(k);
677
+ var val = set[k];
678
+ if (val && typeof(val) === "string") {
679
+ val = val.trim("'");
680
+ }
681
+ value += "," + escape(val);
682
+ }
683
+ }
684
+ var bl = await this.addSql(key.replace(",", ""), value.replace(",", ""));
685
+ if (typeof(body) === "object") {
686
+ await $.eventer.run("mysql_add_after:" + this.table, {
687
+ body,
688
+ sql: this.sql,
689
+ error: this.error,
690
+ bl
691
+ });
692
+ }
693
+ return bl
694
+ }
695
+
696
+ if (typeof(set) === "object") {
697
+ await $.eventer.run("mysql_set_before:" + this.table, {
698
+ query,
699
+ body,
700
+ like,
701
+ page: this.page,
702
+ size: this.size,
703
+ sql: this.sql
704
+ });
705
+ set = await this.toSet(set);
706
+ }
707
+ var bl1 = await this.setSql(where, set);
708
+ if (typeof(body) === "object") {
709
+ await $.eventer.run("mysql_set_after:" + this.table, {
710
+ query,
711
+ body,
712
+ like,
713
+ page: this.page,
714
+ size: this.size,
715
+ sql: this.sql,
716
+ error: this.error,
717
+ bl: bl1
718
+ });
719
+ }
720
+ return bl1
721
+ };
722
+
723
+ /**
724
+ * 查询数据
647
725
  * @param {Object} query 查询条件
648
726
  * @param {String} sort 排序
649
727
  * @param {String} view 返回的字段
650
728
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
651
729
  * @return {Promise|Array} 查询结果
652
730
  */
653
- Sql.prototype.get = function(query, sort, view, like) {
731
+ Sql.prototype.get = async function(query, sort, view, like) {
732
+ await $.eventer.run("mysql_get_before:" + this.table, {
733
+ query,
734
+ sort,
735
+ view,
736
+ like,
737
+ page: this.page,
738
+ size: this.size
739
+ });
654
740
  var sql = this.toGetSql(query, sort, view, like);
655
- return this.run(sql);
741
+ var list = await this.run(sql);
742
+ await $.eventer.run("mysql_get_after:" + this.table, {
743
+ query,
744
+ sort,
745
+ view,
746
+ like,
747
+ page: this.page,
748
+ size: this.size,
749
+ sql: this.sql,
750
+ error: this.error,
751
+ list
752
+ });
753
+ return list
754
+ };
755
+
756
+ /**
757
+ * 查询一条数据
758
+ * @param {Object} query 查询条件
759
+ * @param {String} sort 排序
760
+ * @param {String} view 返回的字段
761
+ * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
762
+ * @return {Promise|Array} 查询结果
763
+ */
764
+ Sql.prototype.getObj = async function(query, sort, view, like) {
765
+ await $.eventer.run("mysql_getObj_before:" + this.table, {
766
+ query,
767
+ sort,
768
+ view,
769
+ like
770
+ });
771
+
772
+ this.page = 1;
773
+ this.size = 1;
774
+ var key = this.key;
775
+ if (key) {
776
+ if (view && view.indexOf(key) === -1 && view.indexOf('*') === -1) {
777
+ view += "," + escapeId(key);
778
+ }
779
+ }
780
+ var sql = this.toGetSql(query, sort, view, like);
781
+ var list = await this.run(sql);
782
+
783
+ var obj = null;
784
+ if (list.length > 0) {
785
+ obj = list[0];
786
+ if (key) {
787
+ obj = this.model(obj);
788
+ }
789
+ }
790
+
791
+ await $.eventer.run("mysql_getObj_after:" + this.table, {
792
+ query,
793
+ sort,
794
+ view,
795
+ like,
796
+ sql: this.sql,
797
+ error: this.error,
798
+ obj
799
+ });
800
+ return obj;
656
801
  };
657
802
 
658
803
  /**
659
- * @description 添加或修改
660
- * @param {Object} where 查询条件集合
804
+ * 添加或修改
805
+ * @param {Object} query 查询条件集合
661
806
  * @param {Object} set 修改的键值
662
807
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
663
808
  * @return {Promise|Object} 执行结果
664
809
  */
665
- Sql.prototype.addOrSet = async function(where, set, like) {
666
- return await this.addOrSetSql(where, set, like);
810
+ Sql.prototype.addOrSet = async function(query, set, like) {
811
+ await $.eventer.run("mysql_addOrSet_before:" + this.table, {
812
+ query,
813
+ set,
814
+ like,
815
+ page: this.page,
816
+ size: this.size
817
+ });
818
+ var bl = await this.addOrSetSql(query, set, like);
819
+ await $.eventer.run("mysql_addOrSet_after:" + this.table, {
820
+ query,
821
+ set,
822
+ like,
823
+ page: this.page,
824
+ size: this.size,
825
+ sql: this.sql,
826
+ error: this.error,
827
+ bl
828
+ });
829
+ return bl
667
830
  };
668
831
 
669
832
  /**
670
- * @description 查询符合结果总数
833
+ * 查询符合结果总数
671
834
  * @param {Object} query 查询条件集合
672
835
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
673
836
  * @return {Promise|Number} 查询结果
@@ -677,7 +840,7 @@ Sql.prototype.count = function(query, like) {
677
840
  };
678
841
 
679
842
  /**
680
- * @description 查询数据并返回符合条件总数
843
+ * 查询数据并返回符合条件总数
681
844
  * @param {Object} query 查询条件
682
845
  * @param {String} sort 排序
683
846
  * @param {String} view 返回的字段
@@ -690,7 +853,7 @@ Sql.prototype.getCount = async function(query, sort, view, like) {
690
853
 
691
854
  /* === 传入数组操作 === */
692
855
  /**
693
- * @description 添加多条数据
856
+ * 添加多条数据
694
857
  * @param {Array} list 对象数组
695
858
  * @param {Boolean} lock 是否锁定
696
859
  * @return {Promise|Object} 执行结果
@@ -705,7 +868,7 @@ Sql.prototype.addList = function(list, lock = true) {
705
868
  return this.exec(sql);
706
869
  };
707
870
  /**
708
- * @description 删除多条数据
871
+ * 删除多条数据
709
872
  * @param {Array} list 对象数组
710
873
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
711
874
  * @return {Promise|Object} 执行结果
@@ -719,7 +882,7 @@ Sql.prototype.delList = function(list, like) {
719
882
  return this.exec(sql);
720
883
  };
721
884
  /**
722
- * @description 修改多条数据
885
+ * 修改多条数据
723
886
  * @param {Array} list 对象数组
724
887
  * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
725
888
  * @return {Promise|Object} 执行结果
@@ -735,7 +898,7 @@ Sql.prototype.setList = function(list, like) {
735
898
 
736
899
  /* 辅助类 */
737
900
  /**
738
- * @description 判断SQL模板是否包含某些参数
901
+ * 判断SQL模板是否包含某些参数
739
902
  * @param {Object} paramDt 参数集合
740
903
  * @param {Object} sqlDt sql模板集合
741
904
  * @return {Bool} 有则返回true,没有则返回false
@@ -753,7 +916,7 @@ Sql.prototype.has_param = function(paramDt, sqlDt) {
753
916
  };
754
917
 
755
918
  /**
756
- * @description 判断某些参数是否没有SQL模板
919
+ * 判断某些参数是否没有SQL模板
757
920
  * @param {Object} paramDt 参数集合
758
921
  * @param {Object} sqlDt sql模板集合
759
922
  * @return {Bool} 没有模板则返回名称,都有则返回undefined
@@ -770,7 +933,7 @@ Sql.prototype.not_param = function(paramDt, sqlDt) {
770
933
  };
771
934
 
772
935
  /**
773
- * @description 过滤参数,仅保留没有sql模板的参数
936
+ * 过滤参数,仅保留没有sql模板的参数
774
937
  * @param {Object} paramDt 参数集合
775
938
  * @param {Object} sqlDt sql模板集合
776
939
  * @return {Object} 返回过滤后的参数集合
@@ -786,7 +949,7 @@ Sql.prototype.filter_param = function(paramDt, sqlDt) {
786
949
  };
787
950
 
788
951
  /**
789
- * @description 通过模板拼接查询参数
952
+ * 通过模板拼接查询参数
790
953
  * @param {Object} paramDt 参数集合
791
954
  * @param {Object} sqlDt 模板集合
792
955
  * @return {String} 返回拼接的查询参数
@@ -888,7 +1051,7 @@ Sql.prototype.tpl_query = function(paramDt, sqlDt) {
888
1051
  };
889
1052
 
890
1053
  /**
891
- * @description 通过模板拼接修改参数
1054
+ * 通过模板拼接修改参数
892
1055
  * @param {Object} paramDt 参数集合
893
1056
  * @param {Object} sqlDt 模板集合
894
1057
  * @return {String} 返回拼接的查询参数
@@ -913,7 +1076,7 @@ Sql.prototype.tpl_body = function(paramDt, sqlDt) {
913
1076
  };
914
1077
 
915
1078
  /**
916
- * @description 构建实体模型
1079
+ * 构建实体模型
917
1080
  * @param {Object} obj 模型对象
918
1081
  * @return {Object} 返回监听操作的对象
919
1082
  */
@@ -954,35 +1117,4 @@ Sql.prototype.model = function(model) {
954
1117
  });
955
1118
  };
956
1119
 
957
- /**
958
- * @description 查询一条数据
959
- * @param {Object} query 查询条件
960
- * @param {String} sort 排序
961
- * @param {String} view 返回的字段
962
- * @param {Boolean} like 是否使用like匹配, 为空使用默认方式
963
- * @return {Promise|Array} 查询结果
964
- */
965
- Sql.prototype.getObj = async function(query, sort, view, like) {
966
- this.page = 1;
967
- this.size = 1;
968
- var key = this.key;
969
- if (key) {
970
- if (view && view.indexOf(key) === -1 && view.indexOf('*') === -1) {
971
- view += "," + escapeId(key);
972
- }
973
- }
974
- var sql = this.toGetSql(query, sort, view, like);
975
- var list = await this.run(sql);
976
- if (list.length > 0) {
977
- var obj = list[0];
978
- if (key) {
979
- return this.model(obj);
980
- } else {
981
- return obj;
982
- }
983
- } else {
984
- return null;
985
- }
986
- };
987
-
988
1120
  module.exports = Sql;
package/test.js CHANGED
@@ -90,6 +90,44 @@ async function test() {
90
90
  });
91
91
  sql.open();
92
92
 
93
+ // --- 测试事件 ---
94
+ $.eventer.on("mysql_add_before:user_account", function(json) {
95
+ console.log("添加前", json);
96
+ });
97
+ $.eventer.on("mysql_add_after:user_account", function(json) {
98
+ console.log("添加后", json);
99
+ });
100
+ $.eventer.on("mysql_del_before:user_account", function(json) {
101
+ console.log("删除前", json);
102
+ });
103
+ $.eventer.on("mysql_del_after:user_account", function(json) {
104
+ console.log("删除后", json);
105
+ });
106
+ $.eventer.on("mysql_set_before:user_account", function(json) {
107
+ console.log("修改前", json);
108
+ });
109
+ $.eventer.on("mysql_set_after:user_account", function(json) {
110
+ console.log("修改后", json);
111
+ });
112
+ $.eventer.on("mysql_addOrSet_before:user_account", function(json) {
113
+ console.log("添加或修改前", json);
114
+ });
115
+ $.eventer.on("mysql_addOrSet_after:user_account", function(json) {
116
+ console.log("添加或修改后", json);
117
+ });
118
+ $.eventer.on("mysql_get_before:user_account", function(json) {
119
+ console.log("查询列表前", json);
120
+ });
121
+ $.eventer.on("mysql_get_after:user_account", function(json) {
122
+ console.log("查询列表后", json);
123
+ });
124
+ $.eventer.on("mysql_getObj_before:user_account", function(json) {
125
+ console.log("查询对象前", json);
126
+ });
127
+ $.eventer.on("mysql_getObj_after:user_account", function(json) {
128
+ console.log("查询对象后", json);
129
+ });
130
+
93
131
  db.table = "user_account";
94
132
  db.key = "user_id,username";
95
133
  var obj = await db.getObj({
@@ -121,7 +159,26 @@ async function test() {
121
159
  user_id: "1"
122
160
  }, null, null, true);
123
161
  console.log("模糊查询语法", db.sql, list.length);
162
+
163
+ var obj = await db.getObj({
164
+ user_id_has: "1,2,a-3,4,5"
165
+ });
166
+ console.log("语法", db.sql, obj);
167
+
168
+ var bl = await db.addOrSet({
169
+ user_id: obj.user_id
170
+ }, obj);
171
+ console.log("语法", db.sql, bl);
172
+
173
+ var obj = await db.getObj({}, "user_id desc");
174
+ var obj_new = Object.assign({}, obj);
175
+ obj_new.user_id += 1;
176
+ var bl = await db.addOrSet({
177
+ user_id: obj_new.user_id
178
+ }, obj_new);
179
+ console.log("语法", db.sql, bl);
124
180
  }
181
+
125
182
  test();
126
183
 
127
184
  // 测试模板查询