cgserver 12.0.8 → 12.2.0

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 (176) hide show
  1. package/README.md +9 -0
  2. package/dist/lib/Framework/AI/AiObject.js +10 -10
  3. package/dist/lib/Framework/AI/Astar.js +133 -133
  4. package/dist/lib/Framework/AI/BehaviorAI.js +340 -307
  5. package/dist/lib/Framework/AI/Entity.js +33 -33
  6. package/dist/lib/Framework/AI/Point.js +68 -68
  7. package/dist/lib/Framework/AI/TriggerMgr.js +201 -201
  8. package/dist/lib/Framework/Config/Config.js +74 -41
  9. package/dist/lib/Framework/Config/DbConfig.js +14 -14
  10. package/dist/lib/Framework/Config/FrameworkConfig.js +139 -173
  11. package/dist/lib/Framework/Config/IServerConfig.js +31 -31
  12. package/dist/lib/Framework/Config/_error_.js +35 -35
  13. package/dist/lib/Framework/Core/ByteTool.js +85 -85
  14. package/dist/lib/Framework/Core/Core.js +724 -688
  15. package/dist/lib/Framework/Core/Timer.js +116 -116
  16. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +10 -11
  17. package/dist/lib/Framework/Database/Decorator/DBCache.js +98 -65
  18. package/dist/lib/Framework/Database/Decorator/NotNull.js +10 -11
  19. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +10 -11
  20. package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
  21. package/dist/lib/Framework/Database/Decorator/Table.js +14 -15
  22. package/dist/lib/Framework/Database/Decorator/Type.js +19 -20
  23. package/dist/lib/Framework/Database/MSSql/MSSqlManager.js +86 -53
  24. package/dist/lib/Framework/Database/Mongo/MongoBaseService.js +141 -141
  25. package/dist/lib/Framework/Database/Mongo/MongoManager.js +595 -547
  26. package/dist/lib/Framework/Database/Mongo/MongoServiceManager.js +52 -52
  27. package/dist/lib/Framework/Database/Mysql/MysqlBaseService.js +280 -280
  28. package/dist/lib/Framework/Database/Mysql/MysqlManager.js +138 -105
  29. package/dist/lib/Framework/Database/Redis/RedisManager.js +94 -61
  30. package/dist/lib/Framework/Decorator/AdminValidate.js +18 -19
  31. package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
  32. package/dist/lib/Framework/Decorator/CreatorValidate.js +18 -19
  33. package/dist/lib/Framework/Decorator/JsonAdminValidate.js +14 -15
  34. package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
  35. package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +18 -19
  36. package/dist/lib/Framework/Decorator/SyncCall.js +41 -42
  37. package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
  38. package/dist/lib/Framework/Logic/CacheTool.js +106 -73
  39. package/dist/lib/Framework/Logic/EventTool.js +31 -28
  40. package/dist/lib/Framework/Logic/HttpTool.js +138 -105
  41. package/dist/lib/Framework/Logic/Log.js +121 -88
  42. package/dist/lib/Framework/Logic/SyncQueueTool.js +44 -44
  43. package/dist/lib/Framework/Server/ProtoFilter/GoogleProtoFilter.js +90 -57
  44. package/dist/lib/Framework/Server/ProtoFilter/IProtoFilter.js +9 -9
  45. package/dist/lib/Framework/Server/ProtoFilter/JsonProtoFilter.js +29 -29
  46. package/dist/lib/Framework/Server/ProtoFilter/ProtoFactory.js +35 -35
  47. package/dist/lib/Framework/Server/RpcWebSocketServer/CgMq.js +180 -180
  48. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpc.js +38 -38
  49. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpcClientWebSocket.js +253 -253
  50. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpcServerWebSocket.js +94 -94
  51. package/dist/lib/Framework/Server/SocketServer/IClientSocket.js +44 -44
  52. package/dist/lib/Framework/Server/SocketServer/IServerSocket.js +114 -81
  53. package/dist/lib/Framework/Server/SocketServer/ISocket.js +255 -222
  54. package/dist/lib/Framework/Server/SocketServer/ISocketServer.js +177 -144
  55. package/dist/lib/Framework/Server/SocketServer/PacketParser.js +40 -40
  56. package/dist/lib/Framework/Server/WebServer/Controller/BaseController.js +119 -119
  57. package/dist/lib/Framework/Server/WebServer/Controller/MongoBaseUserController.js +171 -171
  58. package/dist/lib/Framework/Server/WebServer/Controller/MysqlBaseUserController.js +169 -169
  59. package/dist/lib/Framework/Server/WebServer/Engine/ControllerManager.js +115 -115
  60. package/dist/lib/Framework/Server/WebServer/Engine/Engine.js +254 -218
  61. package/dist/lib/Framework/Server/WebServer/Engine/RazorJs.js +543 -543
  62. package/dist/lib/Framework/Server/WebServer/Engine/Request.js +226 -226
  63. package/dist/lib/Framework/Server/WebServer/Engine/Response.js +120 -87
  64. package/dist/lib/Framework/Server/WebServer/IWebServer.js +55 -55
  65. package/dist/lib/Framework/Server/WebSocketServer/IClientWebSocket.js +44 -44
  66. package/dist/lib/Framework/Server/WebSocketServer/IServerWebSocket.js +128 -95
  67. package/dist/lib/Framework/Server/WebSocketServer/IWebSocket.js +248 -215
  68. package/dist/lib/Framework/Server/WebSocketServer/IWebSocketServer.js +250 -217
  69. package/dist/lib/Framework/Service/MongoAccountService.js +339 -339
  70. package/dist/lib/Framework/Service/MongoCacheService.js +50 -50
  71. package/dist/lib/Framework/Service/MongoUserService.js +129 -96
  72. package/dist/lib/Framework/Service/MysqlAccountService.js +411 -411
  73. package/dist/lib/Framework/Service/MysqlUserService.js +204 -171
  74. package/dist/lib/Framework/Service/ini.js +36 -36
  75. package/dist/lib/Framework/ThirdParty/AlipayTool.js +117 -205
  76. package/dist/lib/Framework/ThirdParty/Alisms.js +61 -50
  77. package/dist/lib/Framework/ThirdParty/AppleTool.js +271 -235
  78. package/dist/lib/Framework/ThirdParty/CgRankTool.js +215 -215
  79. package/dist/lib/Framework/ThirdParty/EmailTool.js +71 -38
  80. package/dist/lib/Framework/ThirdParty/QQTool.js +162 -129
  81. package/dist/lib/Framework/ThirdParty/QiniuTool.js +62 -29
  82. package/dist/lib/Framework/ThirdParty/Rpc.js +79 -79
  83. package/dist/lib/Framework/ThirdParty/WechatTool.js +167 -134
  84. package/dist/lib/Framework/cgserver.js +215 -212
  85. package/dist/lib/Framework/global.js +74 -74
  86. package/dist/lib/Framework/index.js +38 -5
  87. package/dist/lib/Framework/index_export_.js +180 -177
  88. package/dist/lib/test/test.js +21 -21
  89. package/dist/types/Framework/AI/AiObject.d.ts +5 -5
  90. package/dist/types/Framework/AI/Astar.d.ts +38 -38
  91. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
  92. package/dist/types/Framework/AI/Entity.d.ts +12 -12
  93. package/dist/types/Framework/AI/Point.d.ts +17 -17
  94. package/dist/types/Framework/AI/TriggerMgr.d.ts +51 -51
  95. package/dist/types/Framework/Config/Config.d.ts +9 -9
  96. package/dist/types/Framework/Config/DbConfig.d.ts +11 -11
  97. package/dist/types/Framework/Config/FrameworkConfig.d.ts +146 -178
  98. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
  99. package/dist/types/Framework/Config/_error_.d.ts +99 -99
  100. package/dist/types/Framework/Core/ByteTool.d.ts +21 -21
  101. package/dist/types/Framework/Core/Core.d.ts +119 -120
  102. package/dist/types/Framework/Core/Timer.d.ts +16 -16
  103. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
  104. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +22 -22
  105. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
  106. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
  107. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
  108. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
  109. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
  110. package/dist/types/Framework/Database/MSSql/MSSqlManager.d.ts +26 -26
  111. package/dist/types/Framework/Database/Mongo/MongoBaseService.d.ts +116 -116
  112. package/dist/types/Framework/Database/Mongo/MongoManager.d.ts +207 -204
  113. package/dist/types/Framework/Database/Mongo/MongoServiceManager.d.ts +13 -13
  114. package/dist/types/Framework/Database/Mysql/MysqlBaseService.d.ts +34 -34
  115. package/dist/types/Framework/Database/Mysql/MysqlManager.d.ts +30 -30
  116. package/dist/types/Framework/Database/Redis/RedisManager.d.ts +24 -24
  117. package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
  118. package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
  119. package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
  120. package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
  121. package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
  122. package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
  123. package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
  124. package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
  125. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
  126. package/dist/types/Framework/Logic/EventTool.d.ts +11 -12
  127. package/dist/types/Framework/Logic/HttpTool.d.ts +19 -19
  128. package/dist/types/Framework/Logic/Log.d.ts +18 -18
  129. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
  130. package/dist/types/Framework/Server/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
  131. package/dist/types/Framework/Server/ProtoFilter/IProtoFilter.d.ts +10 -10
  132. package/dist/types/Framework/Server/ProtoFilter/JsonProtoFilter.d.ts +6 -6
  133. package/dist/types/Framework/Server/ProtoFilter/ProtoFactory.d.ts +12 -12
  134. package/dist/types/Framework/Server/RpcWebSocketServer/CgMq.d.ts +59 -59
  135. package/dist/types/Framework/Server/RpcWebSocketServer/IRpc.d.ts +33 -33
  136. package/dist/types/Framework/Server/RpcWebSocketServer/IRpcClientWebSocket.d.ts +34 -34
  137. package/dist/types/Framework/Server/RpcWebSocketServer/IRpcServerWebSocket.d.ts +23 -23
  138. package/dist/types/Framework/Server/SocketServer/IClientSocket.d.ts +16 -18
  139. package/dist/types/Framework/Server/SocketServer/IServerSocket.d.ts +27 -29
  140. package/dist/types/Framework/Server/SocketServer/ISocket.d.ts +78 -81
  141. package/dist/types/Framework/Server/SocketServer/ISocketServer.d.ts +44 -45
  142. package/dist/types/Framework/Server/SocketServer/PacketParser.d.ts +8 -10
  143. package/dist/types/Framework/Server/WebServer/Controller/BaseController.d.ts +34 -34
  144. package/dist/types/Framework/Server/WebServer/Controller/MongoBaseUserController.d.ts +28 -28
  145. package/dist/types/Framework/Server/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
  146. package/dist/types/Framework/Server/WebServer/Engine/ControllerManager.d.ts +37 -37
  147. package/dist/types/Framework/Server/WebServer/Engine/Engine.d.ts +42 -44
  148. package/dist/types/Framework/Server/WebServer/Engine/RazorJs.d.ts +21 -21
  149. package/dist/types/Framework/Server/WebServer/Engine/Request.d.ts +47 -50
  150. package/dist/types/Framework/Server/WebServer/Engine/Response.d.ts +26 -26
  151. package/dist/types/Framework/Server/WebServer/IWebServer.d.ts +22 -22
  152. package/dist/types/Framework/Server/WebSocketServer/IClientWebSocket.d.ts +17 -17
  153. package/dist/types/Framework/Server/WebSocketServer/IServerWebSocket.d.ts +37 -38
  154. package/dist/types/Framework/Server/WebSocketServer/IWebSocket.d.ts +76 -76
  155. package/dist/types/Framework/Server/WebSocketServer/IWebSocketServer.d.ts +49 -49
  156. package/dist/types/Framework/Service/MongoAccountService.d.ts +62 -62
  157. package/dist/types/Framework/Service/MongoCacheService.d.ts +19 -19
  158. package/dist/types/Framework/Service/MongoUserService.d.ts +31 -31
  159. package/dist/types/Framework/Service/MysqlAccountService.d.ts +67 -67
  160. package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
  161. package/dist/types/Framework/Service/ini.d.ts +29 -29
  162. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +76 -108
  163. package/dist/types/Framework/ThirdParty/Alisms.d.ts +23 -13
  164. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
  165. package/dist/types/Framework/ThirdParty/CgRankTool.d.ts +107 -107
  166. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +4 -4
  167. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
  168. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +5 -5
  169. package/dist/types/Framework/ThirdParty/Rpc.d.ts +28 -28
  170. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +30 -30
  171. package/dist/types/Framework/cgserver.d.ts +63 -63
  172. package/dist/types/Framework/global.d.ts +45 -45
  173. package/dist/types/Framework/index.d.ts +2 -2
  174. package/dist/types/Framework/index_export_.d.ts +81 -79
  175. package/dist/types/test/test.d.ts +1 -1
  176. package/package.json +8 -4
@@ -1,52 +1,52 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gMongoServiceMgr = exports.MongoServiceManager = void 0;
4
- const index_export_1 = require("../../index_export_");
5
- const MongoManager_1 = require("./MongoManager");
6
- class MongoServiceManager {
7
- _services = {};
8
- addService(service) {
9
- let dbname = service.dbname;
10
- dbname = this._tryDef(dbname);
11
- let table = service.table;
12
- if (!this._services[dbname][table]) {
13
- this._services[dbname][table] = service;
14
- }
15
- return this._services[dbname][table];
16
- }
17
- _tryDef(dbname) {
18
- if (!dbname) {
19
- dbname = MongoManager_1.gMongoMgr.defdbname;
20
- if (dbname && !this._services[dbname]) {
21
- this._services[dbname] = this._services[""];
22
- delete this._services[""];
23
- }
24
- }
25
- else {
26
- if (dbname == MongoManager_1.gMongoMgr.defdbname && !this._services[dbname]) {
27
- this._services[dbname] = this._services[""];
28
- delete this._services[""];
29
- }
30
- }
31
- if (!this._services[dbname]) {
32
- this._services[dbname] = {};
33
- }
34
- return dbname;
35
- }
36
- getService(table, dbname = "") {
37
- dbname = this._tryDef(dbname);
38
- let tablename = "";
39
- if (index_export_1.core.isString(table)) {
40
- tablename = table;
41
- }
42
- else {
43
- tablename = table.table;
44
- }
45
- if (!this._services[dbname][tablename]) {
46
- return null;
47
- }
48
- return this._services[dbname][tablename];
49
- }
50
- }
51
- exports.MongoServiceManager = MongoServiceManager;
52
- exports.gMongoServiceMgr = new MongoServiceManager();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gMongoServiceMgr = exports.MongoServiceManager = void 0;
4
+ const index_export_1 = require("../../index_export_");
5
+ const MongoManager_1 = require("./MongoManager");
6
+ class MongoServiceManager {
7
+ _services = {};
8
+ addService(service) {
9
+ let dbname = service.dbname;
10
+ dbname = this._tryDef(dbname);
11
+ let table = service.table;
12
+ if (!this._services[dbname][table]) {
13
+ this._services[dbname][table] = service;
14
+ }
15
+ return this._services[dbname][table];
16
+ }
17
+ _tryDef(dbname) {
18
+ if (!dbname) {
19
+ dbname = MongoManager_1.gMongoMgr.defdbname;
20
+ if (dbname && !this._services[dbname]) {
21
+ this._services[dbname] = this._services[""];
22
+ delete this._services[""];
23
+ }
24
+ }
25
+ else {
26
+ if (dbname == MongoManager_1.gMongoMgr.defdbname && !this._services[dbname]) {
27
+ this._services[dbname] = this._services[""];
28
+ delete this._services[""];
29
+ }
30
+ }
31
+ if (!this._services[dbname]) {
32
+ this._services[dbname] = {};
33
+ }
34
+ return dbname;
35
+ }
36
+ getService(table, dbname = "") {
37
+ dbname = this._tryDef(dbname);
38
+ let tablename = "";
39
+ if (index_export_1.core.isString(table)) {
40
+ tablename = table;
41
+ }
42
+ else {
43
+ tablename = table.table;
44
+ }
45
+ if (!this._services[dbname][tablename]) {
46
+ return null;
47
+ }
48
+ return this._services[dbname][tablename];
49
+ }
50
+ }
51
+ exports.MongoServiceManager = MongoServiceManager;
52
+ exports.gMongoServiceMgr = new MongoServiceManager();
@@ -1,280 +1,280 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MysqlBaseService = exports.BaseModel = void 0;
4
- const Log_1 = require("../../Logic/Log");
5
- const DBCache_1 = require("../Decorator/DBCache");
6
- const Property_1 = require("../Decorator/Property");
7
- const MysqlManager_1 = require("./MysqlManager");
8
- class BaseModel {
9
- }
10
- exports.BaseModel = BaseModel;
11
- class MysqlBaseService {
12
- _table = "";
13
- get table() {
14
- return this._table;
15
- }
16
- get version() {
17
- let table = this._t_type.prototype[Property_1.TableProperty.key];
18
- return table.version;
19
- }
20
- _inited = false;
21
- get isInited() {
22
- return this._inited;
23
- }
24
- _t_type = null;
25
- constructor(type) {
26
- this._t_type = type;
27
- if (MysqlManager_1.gMysqlMgr.isValid) {
28
- this._init();
29
- }
30
- else {
31
- MysqlManager_1.gMysqlMgr.registerInitCb(this._init.bind(this));
32
- }
33
- }
34
- async _init() {
35
- if (this._inited) {
36
- return;
37
- }
38
- this._inited = true;
39
- let table = this._t_type.prototype[Property_1.TableProperty.key];
40
- if (!table || !table.table) {
41
- throw new Error("数据表的类必须要具有Table装饰器");
42
- }
43
- this._table = "`" + table.table + "`";
44
- if (!MysqlManager_1.gMysqlMgr.cfg.auto) {
45
- //未开启自动创建数据表
46
- return;
47
- }
48
- let droped = await this._checkDropTable(table.version);
49
- if (!droped) {
50
- Log_1.gLog.info("table(" + this._table + ")无需升级...");
51
- //既然版本号没变,就快速返回
52
- return;
53
- }
54
- let primary_key = null;
55
- let sql = "create table if not exists " + this._table + " (";
56
- for (let key in table.items) {
57
- let item = table.items[key];
58
- sql += "`" + key + "`" + " " + item.type;
59
- if (item.type == Property_1.EPropertyType.Varchar
60
- || item.type == Property_1.EPropertyType.Char
61
- || item.type == Property_1.EPropertyType.NVarchar) {
62
- sql += "(" + item.type_len + ")";
63
- }
64
- if (item.is_notnull) {
65
- sql += " not null";
66
- }
67
- if (item.default != undefined && !item.is_primary) {
68
- sql += " default \'" + item.default + "\'";
69
- }
70
- if (item.auto_increment) {
71
- sql += " auto_increment";
72
- }
73
- if (item.is_primary) {
74
- primary_key = key;
75
- }
76
- sql += ",";
77
- }
78
- if (primary_key) {
79
- sql += "primary key (`" + primary_key + "`),";
80
- sql += "unique key `" + primary_key + "_unique` (`" + primary_key + "`)";
81
- }
82
- else {
83
- //去掉最后一个逗号
84
- sql = sql.substr(0, sql.length - 1);
85
- }
86
- sql += ")";
87
- sql += " engine=" + table.engine;
88
- if (table.auto_increment != null) {
89
- sql += " auto_increment=" + table.auto_increment;
90
- }
91
- sql += " default charset=" + table.charset;
92
- if (table.comment) {
93
- sql += " comment=\'" + table.comment + "\';";
94
- }
95
- let sr = await MysqlManager_1.gMysqlMgr.query(sql);
96
- if (sr.error) {
97
- Log_1.gLog.error(sr.error);
98
- throw Error("table(" + this._table + ")创建失败...");
99
- }
100
- else {
101
- DBCache_1.gDbCache.setVersion(this.table, table.version);
102
- Log_1.gLog.info("table(" + this._table + ")初始化成功...");
103
- await this._onReCreated();
104
- }
105
- }
106
- async _onReCreated() {
107
- }
108
- async _onDroped() {
109
- }
110
- async _checkDropTable(cur_version) {
111
- let local_version = DBCache_1.gDbCache.getVersion(this._table);
112
- if (local_version == cur_version) {
113
- return false;
114
- }
115
- let sql = "drop table if exists " + this._table;
116
- let sr = await MysqlManager_1.gMysqlMgr.query(sql);
117
- if (sr.error) {
118
- Log_1.gLog.error(sr.error);
119
- throw Error(sr.error);
120
- }
121
- else {
122
- Log_1.gLog.info("table(" + this._table + ")删除成功...");
123
- await this._onDroped();
124
- }
125
- return true;
126
- }
127
- /**
128
- * 没有id的表不能使用该函数
129
- * @param id
130
- */
131
- async getById(id) {
132
- let tm = null;
133
- let sr = await MysqlManager_1.gMysqlMgr.query("select * from " + this._table + " where id=? limit 1", [id]);
134
- if (sr.error || sr.queryResult.length <= 0) {
135
- return tm;
136
- }
137
- tm = sr.result[0];
138
- return tm;
139
- }
140
- async get(proterty, where, args) {
141
- let sql = "select ";
142
- sql += proterty || "*";
143
- sql += " from " + this._table;
144
- if (where) {
145
- sql += " where " + where;
146
- }
147
- sql += " limit 1";
148
- let tm = null;
149
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
150
- if (sr.queryResult && sr.queryResult.length > 0) {
151
- tm = sr.queryResult[0];
152
- }
153
- return tm;
154
- }
155
- async getTotal(where, args) {
156
- let sql = "select ";
157
- sql += "count(*) as num";
158
- sql += " from " + this._table;
159
- if (where) {
160
- sql += " where " + where;
161
- }
162
- let total = 0;
163
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
164
- if (sr.queryResult && sr.queryResult.length > 0) {
165
- total = sr.queryResult[0].num || 0;
166
- }
167
- return total;
168
- }
169
- async gets(proterty, where, args) {
170
- let sql = "select ";
171
- sql += proterty || "*";
172
- sql += " from " + this._table;
173
- if (where) {
174
- sql += " where " + where;
175
- }
176
- let tms = null;
177
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
178
- tms = sr.queryResult;
179
- return tms;
180
- }
181
- async getCount(where, args) {
182
- let sql = "select count(*) as num from " + this._table;
183
- if (where) {
184
- sql += " where " + where;
185
- }
186
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
187
- if (sr.error || sr.queryResult.length <= 0) {
188
- return 0;
189
- }
190
- return sr.result[0]["num"] || 0;
191
- }
192
- async getRandoms(num, proterty, where, args) {
193
- num = num || 5;
194
- let sql = "select ";
195
- sql += proterty || "*";
196
- sql += " from " + this._table;
197
- if (where) {
198
- sql += " where " + where;
199
- }
200
- sql += " order by rand() limit ?";
201
- args = args || [];
202
- args.push(num);
203
- let tms = null;
204
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
205
- tms = sr.queryResult;
206
- return tms;
207
- }
208
- async updateProperty(set, where, args, limit) {
209
- let sql = "update " + this._table + " set ";
210
- if (set) {
211
- sql += set;
212
- }
213
- else {
214
- sql += "?";
215
- }
216
- if (where) {
217
- sql += " where " + where;
218
- }
219
- if (limit) {
220
- sql += " limit " + limit;
221
- }
222
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
223
- return sr;
224
- }
225
- async update(model, where, args, limit) {
226
- let sql = "update " + this._table + " set ?";
227
- if (!where) {
228
- where = " id=?";
229
- }
230
- sql += " where " + where;
231
- let id = model["id"];
232
- delete model["id"];
233
- let u_m = JSON.parse(JSON.stringify(model));
234
- if (!args) {
235
- args = [u_m, id];
236
- }
237
- else {
238
- args.unshift(u_m);
239
- }
240
- if (limit) {
241
- sql += " limit " + limit;
242
- }
243
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
244
- if (id) {
245
- model["id"] = id;
246
- }
247
- return sr;
248
- }
249
- async insert(model, ip) {
250
- let table = model[Property_1.TableProperty.key];
251
- let id_property = table.items["id"];
252
- if (id_property) {
253
- if (id_property.auto_increment) {
254
- delete model["id"];
255
- }
256
- }
257
- if (table.items["create_time"] && model["create_time"] <= 0) {
258
- model["create_time"] = Date.now();
259
- }
260
- if (table.items["create_ip"] && ip) {
261
- model["create_ip"] = ip;
262
- }
263
- let sql = "insert into " + this._table + " set ?";
264
- //这步的做法是为了去掉model种的TableProperty.key(___table___)
265
- model = JSON.parse(JSON.stringify(model));
266
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, [model]);
267
- return sr;
268
- }
269
- async removeById(id) {
270
- let sql = "delete from " + this._table + " where id=?";
271
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, [id]);
272
- return sr;
273
- }
274
- async remove(where, args) {
275
- let sql = "delete from " + this._table + " where " + where;
276
- let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
277
- return sr;
278
- }
279
- }
280
- exports.MysqlBaseService = MysqlBaseService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MysqlBaseService = exports.BaseModel = void 0;
4
+ const Log_1 = require("../../Logic/Log");
5
+ const DBCache_1 = require("../Decorator/DBCache");
6
+ const Property_1 = require("../Decorator/Property");
7
+ const MysqlManager_1 = require("./MysqlManager");
8
+ class BaseModel {
9
+ }
10
+ exports.BaseModel = BaseModel;
11
+ class MysqlBaseService {
12
+ _table = "";
13
+ get table() {
14
+ return this._table;
15
+ }
16
+ get version() {
17
+ let table = this._t_type.prototype[Property_1.TableProperty.key];
18
+ return table.version;
19
+ }
20
+ _inited = false;
21
+ get isInited() {
22
+ return this._inited;
23
+ }
24
+ _t_type = null;
25
+ constructor(type) {
26
+ this._t_type = type;
27
+ if (MysqlManager_1.gMysqlMgr.isValid) {
28
+ this._init();
29
+ }
30
+ else {
31
+ MysqlManager_1.gMysqlMgr.registerInitCb(this._init.bind(this));
32
+ }
33
+ }
34
+ async _init() {
35
+ if (this._inited) {
36
+ return;
37
+ }
38
+ this._inited = true;
39
+ let table = this._t_type.prototype[Property_1.TableProperty.key];
40
+ if (!table || !table.table) {
41
+ throw new Error("数据表的类必须要具有Table装饰器");
42
+ }
43
+ this._table = "`" + table.table + "`";
44
+ if (!MysqlManager_1.gMysqlMgr.cfg.auto) {
45
+ //未开启自动创建数据表
46
+ return;
47
+ }
48
+ let droped = await this._checkDropTable(table.version);
49
+ if (!droped) {
50
+ Log_1.gLog.info("table(" + this._table + ")无需升级...");
51
+ //既然版本号没变,就快速返回
52
+ return;
53
+ }
54
+ let primary_key = null;
55
+ let sql = "create table if not exists " + this._table + " (";
56
+ for (let key in table.items) {
57
+ let item = table.items[key];
58
+ sql += "`" + key + "`" + " " + item.type;
59
+ if (item.type == Property_1.EPropertyType.Varchar
60
+ || item.type == Property_1.EPropertyType.Char
61
+ || item.type == Property_1.EPropertyType.NVarchar) {
62
+ sql += "(" + item.type_len + ")";
63
+ }
64
+ if (item.is_notnull) {
65
+ sql += " not null";
66
+ }
67
+ if (item.default != undefined && !item.is_primary) {
68
+ sql += " default \'" + item.default + "\'";
69
+ }
70
+ if (item.auto_increment) {
71
+ sql += " auto_increment";
72
+ }
73
+ if (item.is_primary) {
74
+ primary_key = key;
75
+ }
76
+ sql += ",";
77
+ }
78
+ if (primary_key) {
79
+ sql += "primary key (`" + primary_key + "`),";
80
+ sql += "unique key `" + primary_key + "_unique` (`" + primary_key + "`)";
81
+ }
82
+ else {
83
+ //去掉最后一个逗号
84
+ sql = sql.substr(0, sql.length - 1);
85
+ }
86
+ sql += ")";
87
+ sql += " engine=" + table.engine;
88
+ if (table.auto_increment != null) {
89
+ sql += " auto_increment=" + table.auto_increment;
90
+ }
91
+ sql += " default charset=" + table.charset;
92
+ if (table.comment) {
93
+ sql += " comment=\'" + table.comment + "\';";
94
+ }
95
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql);
96
+ if (sr.error) {
97
+ Log_1.gLog.error(sr.error);
98
+ throw Error("table(" + this._table + ")创建失败...");
99
+ }
100
+ else {
101
+ DBCache_1.gDbCache.setVersion(this.table, table.version);
102
+ Log_1.gLog.info("table(" + this._table + ")初始化成功...");
103
+ await this._onReCreated();
104
+ }
105
+ }
106
+ async _onReCreated() {
107
+ }
108
+ async _onDroped() {
109
+ }
110
+ async _checkDropTable(cur_version) {
111
+ let local_version = DBCache_1.gDbCache.getVersion(this._table);
112
+ if (local_version == cur_version) {
113
+ return false;
114
+ }
115
+ let sql = "drop table if exists " + this._table;
116
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql);
117
+ if (sr.error) {
118
+ Log_1.gLog.error(sr.error);
119
+ throw Error(sr.error);
120
+ }
121
+ else {
122
+ Log_1.gLog.info("table(" + this._table + ")删除成功...");
123
+ await this._onDroped();
124
+ }
125
+ return true;
126
+ }
127
+ /**
128
+ * 没有id的表不能使用该函数
129
+ * @param id
130
+ */
131
+ async getById(id) {
132
+ let tm = null;
133
+ let sr = await MysqlManager_1.gMysqlMgr.query("select * from " + this._table + " where id=? limit 1", [id]);
134
+ if (sr.error || sr.queryResult.length <= 0) {
135
+ return tm;
136
+ }
137
+ tm = sr.result[0];
138
+ return tm;
139
+ }
140
+ async get(proterty, where, args) {
141
+ let sql = "select ";
142
+ sql += proterty || "*";
143
+ sql += " from " + this._table;
144
+ if (where) {
145
+ sql += " where " + where;
146
+ }
147
+ sql += " limit 1";
148
+ let tm = null;
149
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
150
+ if (sr.queryResult && sr.queryResult.length > 0) {
151
+ tm = sr.queryResult[0];
152
+ }
153
+ return tm;
154
+ }
155
+ async getTotal(where, args) {
156
+ let sql = "select ";
157
+ sql += "count(*) as num";
158
+ sql += " from " + this._table;
159
+ if (where) {
160
+ sql += " where " + where;
161
+ }
162
+ let total = 0;
163
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
164
+ if (sr.queryResult && sr.queryResult.length > 0) {
165
+ total = sr.queryResult[0].num || 0;
166
+ }
167
+ return total;
168
+ }
169
+ async gets(proterty, where, args) {
170
+ let sql = "select ";
171
+ sql += proterty || "*";
172
+ sql += " from " + this._table;
173
+ if (where) {
174
+ sql += " where " + where;
175
+ }
176
+ let tms = null;
177
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
178
+ tms = sr.queryResult;
179
+ return tms;
180
+ }
181
+ async getCount(where, args) {
182
+ let sql = "select count(*) as num from " + this._table;
183
+ if (where) {
184
+ sql += " where " + where;
185
+ }
186
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
187
+ if (sr.error || sr.queryResult.length <= 0) {
188
+ return 0;
189
+ }
190
+ return sr.result[0]["num"] || 0;
191
+ }
192
+ async getRandoms(num, proterty, where, args) {
193
+ num = num || 5;
194
+ let sql = "select ";
195
+ sql += proterty || "*";
196
+ sql += " from " + this._table;
197
+ if (where) {
198
+ sql += " where " + where;
199
+ }
200
+ sql += " order by rand() limit ?";
201
+ args = args || [];
202
+ args.push(num);
203
+ let tms = null;
204
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
205
+ tms = sr.queryResult;
206
+ return tms;
207
+ }
208
+ async updateProperty(set, where, args, limit) {
209
+ let sql = "update " + this._table + " set ";
210
+ if (set) {
211
+ sql += set;
212
+ }
213
+ else {
214
+ sql += "?";
215
+ }
216
+ if (where) {
217
+ sql += " where " + where;
218
+ }
219
+ if (limit) {
220
+ sql += " limit " + limit;
221
+ }
222
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
223
+ return sr;
224
+ }
225
+ async update(model, where, args, limit) {
226
+ let sql = "update " + this._table + " set ?";
227
+ if (!where) {
228
+ where = " id=?";
229
+ }
230
+ sql += " where " + where;
231
+ let id = model["id"];
232
+ delete model["id"];
233
+ let u_m = JSON.parse(JSON.stringify(model));
234
+ if (!args) {
235
+ args = [u_m, id];
236
+ }
237
+ else {
238
+ args.unshift(u_m);
239
+ }
240
+ if (limit) {
241
+ sql += " limit " + limit;
242
+ }
243
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
244
+ if (id) {
245
+ model["id"] = id;
246
+ }
247
+ return sr;
248
+ }
249
+ async insert(model, ip) {
250
+ let table = model[Property_1.TableProperty.key];
251
+ let id_property = table.items["id"];
252
+ if (id_property) {
253
+ if (id_property.auto_increment) {
254
+ delete model["id"];
255
+ }
256
+ }
257
+ if (table.items["create_time"] && model["create_time"] <= 0) {
258
+ model["create_time"] = Date.now();
259
+ }
260
+ if (table.items["create_ip"] && ip) {
261
+ model["create_ip"] = ip;
262
+ }
263
+ let sql = "insert into " + this._table + " set ?";
264
+ //这步的做法是为了去掉model种的TableProperty.key(___table___)
265
+ model = JSON.parse(JSON.stringify(model));
266
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, [model]);
267
+ return sr;
268
+ }
269
+ async removeById(id) {
270
+ let sql = "delete from " + this._table + " where id=?";
271
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, [id]);
272
+ return sr;
273
+ }
274
+ async remove(where, args) {
275
+ let sql = "delete from " + this._table + " where " + where;
276
+ let sr = await MysqlManager_1.gMysqlMgr.query(sql, args);
277
+ return sr;
278
+ }
279
+ }
280
+ exports.MysqlBaseService = MysqlBaseService;