cgserver 5.4.12 → 5.4.13

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 (199) hide show
  1. package/lib/Framework/AI/AiObject.d.ts +5 -0
  2. package/lib/Framework/AI/AiObject.js +11 -0
  3. package/lib/Framework/AI/AiObject.js.map +1 -0
  4. package/lib/Framework/AI/Astar.d.ts +38 -0
  5. package/lib/Framework/AI/Astar.js +134 -0
  6. package/lib/Framework/AI/Astar.js.map +1 -0
  7. package/lib/Framework/AI/BehaviorAI.d.ts +24 -0
  8. package/lib/Framework/AI/BehaviorAI.js +308 -0
  9. package/lib/Framework/AI/BehaviorAI.js.map +1 -0
  10. package/lib/Framework/AI/Entity.d.ts +12 -0
  11. package/lib/Framework/AI/Entity.js +34 -0
  12. package/lib/Framework/AI/Entity.js.map +1 -0
  13. package/lib/Framework/AI/Point.d.ts +17 -0
  14. package/lib/Framework/AI/Point.js +69 -0
  15. package/lib/Framework/AI/Point.js.map +1 -0
  16. package/lib/Framework/AI/TriggerMgr.d.ts +52 -0
  17. package/lib/Framework/AI/TriggerMgr.js +202 -0
  18. package/lib/Framework/AI/TriggerMgr.js.map +1 -0
  19. package/lib/Framework/Config/Config.d.ts +7 -0
  20. package/lib/Framework/Config/Config.js +38 -0
  21. package/lib/Framework/Config/Config.js.map +1 -0
  22. package/lib/Framework/Config/FrameworkConfig.d.ts +219 -0
  23. package/lib/Framework/Config/FrameworkConfig.js +225 -0
  24. package/lib/Framework/Config/FrameworkConfig.js.map +1 -0
  25. package/lib/Framework/Config/ServerConfig.d.ts +9 -0
  26. package/lib/Framework/Config/ServerConfig.js +19 -0
  27. package/lib/Framework/Config/ServerConfig.js.map +1 -0
  28. package/lib/Framework/Config/_error_.d.ts +95 -0
  29. package/lib/Framework/Config/_error_.js +35 -0
  30. package/lib/Framework/Config/_error_.js.map +1 -0
  31. package/lib/Framework/Core/Core.d.ts +101 -0
  32. package/lib/Framework/Core/Core.js +562 -0
  33. package/lib/Framework/Core/Core.js.map +1 -0
  34. package/lib/Framework/Core/Timer.d.ts +16 -0
  35. package/lib/Framework/Core/Timer.js +117 -0
  36. package/lib/Framework/Core/Timer.js.map +1 -0
  37. package/lib/Framework/Database/BaseMongoService.d.ts +67 -0
  38. package/lib/Framework/Database/BaseMongoService.js +80 -0
  39. package/lib/Framework/Database/BaseMongoService.js.map +1 -0
  40. package/lib/Framework/Database/BaseService.d.ts +34 -0
  41. package/lib/Framework/Database/BaseService.js +282 -0
  42. package/lib/Framework/Database/BaseService.js.map +1 -0
  43. package/lib/Framework/Database/Decorator/AutoIncrement.d.ts +1 -0
  44. package/lib/Framework/Database/Decorator/AutoIncrement.js +12 -0
  45. package/lib/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
  46. package/lib/Framework/Database/Decorator/DBCache.d.ts +21 -0
  47. package/lib/Framework/Database/Decorator/DBCache.js +65 -0
  48. package/lib/Framework/Database/Decorator/DBCache.js.map +1 -0
  49. package/lib/Framework/Database/Decorator/NotNull.d.ts +1 -0
  50. package/lib/Framework/Database/Decorator/NotNull.js +12 -0
  51. package/lib/Framework/Database/Decorator/NotNull.js.map +1 -0
  52. package/lib/Framework/Database/Decorator/PrimaryKey.d.ts +1 -0
  53. package/lib/Framework/Database/Decorator/PrimaryKey.js +12 -0
  54. package/lib/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
  55. package/lib/Framework/Database/Decorator/Property.d.ts +55 -0
  56. package/lib/Framework/Database/Decorator/Property.js +62 -0
  57. package/lib/Framework/Database/Decorator/Property.js.map +1 -0
  58. package/lib/Framework/Database/Decorator/Table.d.ts +1 -0
  59. package/lib/Framework/Database/Decorator/Table.js +16 -0
  60. package/lib/Framework/Database/Decorator/Table.js.map +1 -0
  61. package/lib/Framework/Database/Decorator/Type.d.ts +1 -0
  62. package/lib/Framework/Database/Decorator/Type.js +21 -0
  63. package/lib/Framework/Database/Decorator/Type.js.map +1 -0
  64. package/lib/Framework/Database/MongoManager.d.ts +135 -0
  65. package/lib/Framework/Database/MongoManager.js +407 -0
  66. package/lib/Framework/Database/MongoManager.js.map +1 -0
  67. package/lib/Framework/Database/MysqlManager.d.ts +41 -0
  68. package/lib/Framework/Database/MysqlManager.js +181 -0
  69. package/lib/Framework/Database/MysqlManager.js.map +1 -0
  70. package/lib/Framework/Database/RedisManager.d.ts +64 -0
  71. package/lib/Framework/Database/RedisManager.js +409 -0
  72. package/lib/Framework/Database/RedisManager.js.map +1 -0
  73. package/lib/Framework/Logic/CacheTool.d.ts +25 -0
  74. package/lib/Framework/Logic/CacheTool.js +74 -0
  75. package/lib/Framework/Logic/CacheTool.js.map +1 -0
  76. package/lib/Framework/Logic/HttpTool.d.ts +14 -0
  77. package/lib/Framework/Logic/HttpTool.js +59 -0
  78. package/lib/Framework/Logic/HttpTool.js.map +1 -0
  79. package/lib/Framework/Logic/Log.d.ts +15 -0
  80. package/lib/Framework/Logic/Log.js +78 -0
  81. package/lib/Framework/Logic/Log.js.map +1 -0
  82. package/lib/Framework/Service/AccountService.d.ts +77 -0
  83. package/lib/Framework/Service/AccountService.js +474 -0
  84. package/lib/Framework/Service/AccountService.js.map +1 -0
  85. package/lib/Framework/Service/MongoAccountService.d.ts +78 -0
  86. package/lib/Framework/Service/MongoAccountService.js +397 -0
  87. package/lib/Framework/Service/MongoAccountService.js.map +1 -0
  88. package/lib/Framework/Service/MongoCacheService.d.ts +13 -0
  89. package/lib/Framework/Service/MongoCacheService.js +28 -0
  90. package/lib/Framework/Service/MongoCacheService.js.map +1 -0
  91. package/lib/Framework/Service/MongoUserService.d.ts +36 -0
  92. package/lib/Framework/Service/MongoUserService.js +94 -0
  93. package/lib/Framework/Service/MongoUserService.js.map +1 -0
  94. package/lib/Framework/Service/UserService.d.ts +36 -0
  95. package/lib/Framework/Service/UserService.js +185 -0
  96. package/lib/Framework/Service/UserService.js.map +1 -0
  97. package/lib/Framework/Service/ini.d.ts +28 -0
  98. package/lib/Framework/Service/ini.js +36 -0
  99. package/lib/Framework/Service/ini.js.map +1 -0
  100. package/lib/Framework/SocketServer/IClientWebSocket.d.ts +24 -0
  101. package/lib/Framework/SocketServer/IClientWebSocket.js +72 -0
  102. package/lib/Framework/SocketServer/IClientWebSocket.js.map +1 -0
  103. package/lib/Framework/SocketServer/IServerWebSocket.d.ts +13 -0
  104. package/lib/Framework/SocketServer/IServerWebSocket.js +42 -0
  105. package/lib/Framework/SocketServer/IServerWebSocket.js.map +1 -0
  106. package/lib/Framework/SocketServer/ISocketServer.d.ts +36 -0
  107. package/lib/Framework/SocketServer/ISocketServer.js +189 -0
  108. package/lib/Framework/SocketServer/ISocketServer.js.map +1 -0
  109. package/lib/Framework/SocketServer/IWebSocket.d.ts +44 -0
  110. package/lib/Framework/SocketServer/IWebSocket.js +224 -0
  111. package/lib/Framework/SocketServer/IWebSocket.js.map +1 -0
  112. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
  113. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +58 -0
  114. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
  115. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
  116. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +9 -0
  117. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
  118. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
  119. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +30 -0
  120. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
  121. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
  122. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +32 -0
  123. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
  124. package/lib/Framework/ThirdParty/AlipayTool.d.ts +40 -0
  125. package/lib/Framework/ThirdParty/AlipayTool.js +123 -0
  126. package/lib/Framework/ThirdParty/AlipayTool.js.map +1 -0
  127. package/lib/Framework/ThirdParty/Alisms.d.ts +14 -0
  128. package/lib/Framework/ThirdParty/Alisms.js +47 -0
  129. package/lib/Framework/ThirdParty/Alisms.js.map +1 -0
  130. package/lib/Framework/ThirdParty/AppleTool.d.ts +131 -0
  131. package/lib/Framework/ThirdParty/AppleTool.js +235 -0
  132. package/lib/Framework/ThirdParty/AppleTool.js.map +1 -0
  133. package/lib/Framework/ThirdParty/EmailTool.d.ts +5 -0
  134. package/lib/Framework/ThirdParty/EmailTool.js +34 -0
  135. package/lib/Framework/ThirdParty/EmailTool.js.map +1 -0
  136. package/lib/Framework/ThirdParty/OpenSocial.d.ts +7 -0
  137. package/lib/Framework/ThirdParty/OpenSocial.js +33 -0
  138. package/lib/Framework/ThirdParty/OpenSocial.js.map +1 -0
  139. package/lib/Framework/ThirdParty/QQTool.d.ts +41 -0
  140. package/lib/Framework/ThirdParty/QQTool.js +116 -0
  141. package/lib/Framework/ThirdParty/QQTool.js.map +1 -0
  142. package/lib/Framework/ThirdParty/QiniuTool.d.ts +6 -0
  143. package/lib/Framework/ThirdParty/QiniuTool.js +22 -0
  144. package/lib/Framework/ThirdParty/QiniuTool.js.map +1 -0
  145. package/lib/Framework/ThirdParty/WechatOATool.d.ts +13 -0
  146. package/lib/Framework/ThirdParty/WechatOATool.js +62 -0
  147. package/lib/Framework/ThirdParty/WechatOATool.js.map +1 -0
  148. package/lib/Framework/ThirdParty/WechatTool.d.ts +20 -0
  149. package/lib/Framework/ThirdParty/WechatTool.js +75 -0
  150. package/lib/Framework/ThirdParty/WechatTool.js.map +1 -0
  151. package/lib/Framework/WebServer/Controller/BaseController.d.ts +33 -0
  152. package/lib/Framework/WebServer/Controller/BaseController.js +113 -0
  153. package/lib/Framework/WebServer/Controller/BaseController.js.map +1 -0
  154. package/lib/Framework/WebServer/Controller/BaseUserController.d.ts +26 -0
  155. package/lib/Framework/WebServer/Controller/BaseUserController.js +169 -0
  156. package/lib/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
  157. package/lib/Framework/WebServer/Controller/MongoBaseUserController.d.ts +26 -0
  158. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -0
  159. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
  160. package/lib/Framework/WebServer/Decorator/AdminValidate.d.ts +1 -0
  161. package/lib/Framework/WebServer/Decorator/AdminValidate.js +20 -0
  162. package/lib/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
  163. package/lib/Framework/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
  164. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js +23 -0
  165. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
  166. package/lib/Framework/WebServer/Decorator/CreatorValidate.d.ts +1 -0
  167. package/lib/Framework/WebServer/Decorator/CreatorValidate.js +20 -0
  168. package/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
  169. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
  170. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +16 -0
  171. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
  172. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  173. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +21 -0
  174. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
  175. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
  176. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +20 -0
  177. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
  178. package/lib/Framework/WebServer/Engine/ControllerManager.d.ts +21 -0
  179. package/lib/Framework/WebServer/Engine/ControllerManager.js +113 -0
  180. package/lib/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
  181. package/lib/Framework/WebServer/Engine/Engine.d.ts +21 -0
  182. package/lib/Framework/WebServer/Engine/Engine.js +129 -0
  183. package/lib/Framework/WebServer/Engine/Engine.js.map +1 -0
  184. package/lib/Framework/WebServer/Engine/RazorJs.d.ts +21 -0
  185. package/lib/Framework/WebServer/Engine/RazorJs.js +545 -0
  186. package/lib/Framework/WebServer/Engine/RazorJs.js.map +1 -0
  187. package/lib/Framework/WebServer/Engine/Request.d.ts +35 -0
  188. package/lib/Framework/WebServer/Engine/Request.js +215 -0
  189. package/lib/Framework/WebServer/Engine/Request.js.map +1 -0
  190. package/lib/Framework/WebServer/Engine/Response.d.ts +28 -0
  191. package/lib/Framework/WebServer/Engine/Response.js +95 -0
  192. package/lib/Framework/WebServer/Engine/Response.js.map +1 -0
  193. package/lib/Framework/WebServer/IWebServer.d.ts +20 -0
  194. package/lib/Framework/WebServer/IWebServer.js +50 -0
  195. package/lib/Framework/WebServer/IWebServer.js.map +1 -0
  196. package/lib/index.d.ts +4 -0
  197. package/lib/index.js +8 -0
  198. package/lib/index.js.map +1 -0
  199. package/package.json +1 -1
@@ -0,0 +1,407 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GMongoMgr = exports.MgReturn = exports.MrResult = exports.MongoBaseModel = void 0;
4
+ const FrameworkConfig_1 = require("../Config/FrameworkConfig");
5
+ const Log_1 = require("../Logic/Log");
6
+ const mongo = require("mongodb");
7
+ const _error_1 = require("../Config/_error_");
8
+ const Core_1 = require("../Core/Core");
9
+ class MongoBaseModel {
10
+ _id;
11
+ }
12
+ exports.MongoBaseModel = MongoBaseModel;
13
+ class MrResult {
14
+ /**
15
+ * select 的数据量
16
+ */
17
+ length = 0;
18
+ /**
19
+ * 插入数据的自增id
20
+ */
21
+ insertId = null;
22
+ insertIds = null;
23
+ /**
24
+ * update 更新数据的影响条数
25
+ */
26
+ changedRows = null;
27
+ /**
28
+ * 插入或删除数据的影响条数
29
+ */
30
+ affectedRows = null;
31
+ }
32
+ exports.MrResult = MrResult;
33
+ class MgReturn {
34
+ error = null;
35
+ result = new MrResult();
36
+ list = [];
37
+ }
38
+ exports.MgReturn = MgReturn;
39
+ exports.GMongoMgr = null;
40
+ class MongoManager {
41
+ _init_cbs = [];
42
+ _mongo = null;
43
+ get mongo() {
44
+ return this._mongo;
45
+ }
46
+ _mongo_init_succ = false;
47
+ _inited = false;
48
+ get isValid() {
49
+ return this._inited;
50
+ }
51
+ constructor() {
52
+ }
53
+ async init() {
54
+ if (this._inited) {
55
+ return false;
56
+ }
57
+ if (this._mongo) {
58
+ return true;
59
+ }
60
+ if (!FrameworkConfig_1.GFCfg.db.mongo || !FrameworkConfig_1.GFCfg.db.mongo.open) {
61
+ return true;
62
+ }
63
+ this._inited = true;
64
+ Log_1.GLog.info("mongo config=" + JSON.stringify(FrameworkConfig_1.GFCfg.db.mongo), true);
65
+ let client = new mongo.MongoClient("mongodb://" + FrameworkConfig_1.GFCfg.db.mongo.host + ":" + FrameworkConfig_1.GFCfg.db.mongo.port, FrameworkConfig_1.GFCfg.db.mongo.options);
66
+ await client.connect();
67
+ this.onConnect();
68
+ this._mongo = client.db(FrameworkConfig_1.GFCfg.db.mongo.database);
69
+ for (let i = 0; i < this._init_cbs.length; ++i) {
70
+ this._init_cbs[i]();
71
+ }
72
+ return true;
73
+ }
74
+ registerInitCb(cb) {
75
+ this._init_cbs.push(cb);
76
+ }
77
+ onConnect() {
78
+ this._mongo_init_succ = true;
79
+ Log_1.GLog.info("mogo has connected!");
80
+ }
81
+ onEnd() {
82
+ this._mongo_init_succ = false;
83
+ Log_1.GLog.info("mogo has ended!");
84
+ }
85
+ onError(err) {
86
+ Log_1.GLog.info("Error " + err);
87
+ }
88
+ async getAutoIds(key) {
89
+ if (!this._mongo) {
90
+ return -1;
91
+ }
92
+ let collection = "auto_ids";
93
+ let col = this._mongo.collection(collection);
94
+ try {
95
+ let where = this._convertWhere({ _id: key });
96
+ let rs = await col.updateOne(where, { $inc: { id: 1 } }, { upsert: true });
97
+ if (rs.upsertedCount == 1 || rs.modifiedCount == 1) {
98
+ let rs = await this.findOne(collection, null, { _id: key });
99
+ if (rs.one) {
100
+ return rs.one.id;
101
+ }
102
+ return -1;
103
+ }
104
+ }
105
+ catch (e) {
106
+ Log_1.GLog.error(e);
107
+ }
108
+ return -1;
109
+ }
110
+ _convertWhere(where) {
111
+ if (!where || !where._id) {
112
+ return;
113
+ }
114
+ if (Core_1.core.isString(where._id) && where._id.length == 24) {
115
+ let _id = where._id;
116
+ try {
117
+ where._id = new mongo.ObjectId(_id);
118
+ }
119
+ catch (e) {
120
+ where._id = _id;
121
+ }
122
+ }
123
+ return where;
124
+ }
125
+ /**
126
+ * 获取单条消息
127
+ * @param collection
128
+ */
129
+ async findOne(collection, property = {}, where = {}, sort) {
130
+ this._convertWhere(where);
131
+ let rs = { errcode: null, one: null };
132
+ if (!this._mongo) {
133
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
134
+ return rs;
135
+ }
136
+ let one = null;
137
+ try {
138
+ let col = this._mongo.collection(collection);
139
+ if (!sort) {
140
+ one = await col.findOne(where, property);
141
+ }
142
+ else {
143
+ one = await (col.find(where, property).sort(sort).limit(1).next());
144
+ }
145
+ }
146
+ catch (e) {
147
+ Log_1.GLog.error(e);
148
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
149
+ }
150
+ rs.one = one;
151
+ return rs;
152
+ }
153
+ async findMany(collection, property = {}, where = {}, sort, skip = 0, limit = 0) {
154
+ this._convertWhere(where);
155
+ let rs = { errcode: null, list: null };
156
+ if (!this._mongo) {
157
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
158
+ return rs;
159
+ }
160
+ let list = [];
161
+ try {
162
+ let col = this._mongo.collection(collection);
163
+ let cursor = col.find(where, property);
164
+ if (sort) {
165
+ cursor = cursor.sort(sort);
166
+ }
167
+ if (skip) {
168
+ cursor = cursor.skip(skip);
169
+ }
170
+ if (limit) {
171
+ cursor = cursor.limit(limit);
172
+ }
173
+ list = await cursor.toArray();
174
+ }
175
+ catch (e) {
176
+ Log_1.GLog.error(e);
177
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
178
+ }
179
+ rs.list = list;
180
+ return rs;
181
+ }
182
+ async findCount(collection, property, where) {
183
+ this._convertWhere(where);
184
+ let rs = { errcode: null, count: -1 };
185
+ if (!this._mongo) {
186
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
187
+ return rs;
188
+ }
189
+ let count = -1;
190
+ try {
191
+ let col = this._mongo.collection(collection);
192
+ count = await col.find(where || {}, property).count();
193
+ }
194
+ catch (e) {
195
+ Log_1.GLog.error(e);
196
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
197
+ }
198
+ rs.count = count;
199
+ return rs;
200
+ }
201
+ async deleteOne(collection, where) {
202
+ this._convertWhere(where);
203
+ let rs = { errcode: null, count: -1 };
204
+ if (!this._mongo) {
205
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
206
+ return rs;
207
+ }
208
+ let del_rs = null;
209
+ try {
210
+ let col = this._mongo.collection(collection);
211
+ del_rs = await col.deleteOne(where || {});
212
+ }
213
+ catch (e) {
214
+ Log_1.GLog.error(e);
215
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
216
+ }
217
+ if (del_rs) {
218
+ rs.count = del_rs.deletedCount;
219
+ }
220
+ return rs;
221
+ }
222
+ async deleteMany(collection, where) {
223
+ this._convertWhere(where);
224
+ let rs = { errcode: null, count: -1 };
225
+ if (!this._mongo) {
226
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
227
+ return rs;
228
+ }
229
+ let del_rs = null;
230
+ try {
231
+ let col = this._mongo.collection(collection);
232
+ del_rs = await col.deleteMany(where || {});
233
+ }
234
+ catch (e) {
235
+ Log_1.GLog.error(e);
236
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
237
+ }
238
+ if (del_rs) {
239
+ rs.count = del_rs.deletedCount;
240
+ }
241
+ return rs;
242
+ }
243
+ /**
244
+ * 插入数据
245
+ * @param collection
246
+ * @param data
247
+ */
248
+ async insertOne(collection, data) {
249
+ let rs = { errcode: null, rs: null };
250
+ if (!this._mongo) {
251
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
252
+ return rs;
253
+ }
254
+ let in_rs = null;
255
+ try {
256
+ let col = this._mongo.collection(collection);
257
+ in_rs = await col.insertOne(data);
258
+ }
259
+ catch (e) {
260
+ Log_1.GLog.error(e);
261
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
262
+ }
263
+ rs.rs = in_rs;
264
+ return rs;
265
+ }
266
+ async insertManay(collection, data) {
267
+ let rs = { errcode: null, rs: null };
268
+ if (!this._mongo) {
269
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
270
+ return rs;
271
+ }
272
+ let in_rs = null;
273
+ try {
274
+ let col = this._mongo.collection(collection);
275
+ in_rs = await col.insertMany(data);
276
+ }
277
+ catch (e) {
278
+ Log_1.GLog.error(e);
279
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
280
+ }
281
+ rs.rs = in_rs;
282
+ return rs;
283
+ }
284
+ async updateOne(collection, model, where, upsert = false) {
285
+ let _id = model["_id"];
286
+ if (_id) {
287
+ delete model["_id"];
288
+ }
289
+ this._convertWhere(where);
290
+ let rs = { errcode: null, rs: null };
291
+ if (!this._mongo) {
292
+ if (_id) {
293
+ model["_id"] = _id;
294
+ }
295
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
296
+ return rs;
297
+ }
298
+ let up_rs = null;
299
+ try {
300
+ let updateModel = null;
301
+ let firstKey = Object.keys(model)[0];
302
+ if (!firstKey.startsWith("$")) {
303
+ updateModel = { $set: model };
304
+ }
305
+ else {
306
+ updateModel = model;
307
+ }
308
+ let col = this._mongo.collection(collection);
309
+ up_rs = await col.updateOne(where, updateModel, { upsert: upsert });
310
+ }
311
+ catch (e) {
312
+ Log_1.GLog.error(e);
313
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
314
+ }
315
+ rs.rs = up_rs;
316
+ if (_id) {
317
+ model["_id"] = _id;
318
+ }
319
+ return rs;
320
+ }
321
+ async updateMany(collection, model, where, upsert = false) {
322
+ this._convertWhere(where);
323
+ let rs = { errcode: null, rs: null };
324
+ if (!this._mongo) {
325
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
326
+ return rs;
327
+ }
328
+ let up_rs = null;
329
+ try {
330
+ let updateModel = null;
331
+ let firstKey = Object.keys(model)[0];
332
+ if (!firstKey.startsWith("$")) {
333
+ updateModel = { $set: model };
334
+ }
335
+ else {
336
+ updateModel = model;
337
+ }
338
+ let col = this._mongo.collection(collection);
339
+ up_rs = await col.updateMany(where, updateModel, { upsert: upsert });
340
+ }
341
+ catch (e) {
342
+ Log_1.GLog.error(e);
343
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
344
+ }
345
+ rs.rs = up_rs;
346
+ return rs;
347
+ }
348
+ async createIndex(collection, index, callback) {
349
+ let rs = { errcode: null, rs: null };
350
+ if (!this._mongo) {
351
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
352
+ return rs;
353
+ }
354
+ let i_rs = null;
355
+ try {
356
+ let col = this._mongo.collection(collection);
357
+ i_rs = await col.createIndex(index, callback);
358
+ }
359
+ catch (e) {
360
+ Log_1.GLog.error(e);
361
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
362
+ }
363
+ rs.rs = i_rs;
364
+ return rs;
365
+ }
366
+ async simpleAggregate(collection, property = {}, where = {}, size, random_size) {
367
+ this._convertWhere(where);
368
+ let rs = { errcode: null, list: null };
369
+ if (!this._mongo) {
370
+ rs.errcode = _error_1.EErrorCode.No_Mongo;
371
+ return rs;
372
+ }
373
+ let list = [];
374
+ try {
375
+ let col = this._mongo.collection(collection);
376
+ let params = [];
377
+ params.push({ '$match': where || {} });
378
+ params.push({ '$project': property || {} });
379
+ if (random_size) {
380
+ params.push({ '$sample': { 'size': random_size } });
381
+ }
382
+ let agg = col.aggregate(params);
383
+ if (size) {
384
+ list = await agg.limit(size).toArray();
385
+ }
386
+ else {
387
+ list = await agg.toArray();
388
+ }
389
+ }
390
+ catch (e) {
391
+ Log_1.GLog.error(e);
392
+ rs.errcode = _error_1.EErrorCode.Mongo_Error;
393
+ }
394
+ rs.list = list;
395
+ return rs;
396
+ }
397
+ aggregate(collection, pipeline, options) {
398
+ if (!this._mongo) {
399
+ return;
400
+ }
401
+ let col = this._mongo.collection(collection);
402
+ let agg = col.aggregate(pipeline, options);
403
+ return agg;
404
+ }
405
+ }
406
+ exports.GMongoMgr = new MongoManager();
407
+ //# sourceMappingURL=MongoManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoManager.js","sourceRoot":"","sources":["../../../Framework/Database/MongoManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import * as mysql from 'mysql';
2
+ export declare class SqlResult {
3
+ /**
4
+ * select 的数据量
5
+ */
6
+ length: number;
7
+ /**
8
+ * 插入数据的自增id
9
+ */
10
+ insertId: number;
11
+ /**
12
+ * update 更新数据的影响条数
13
+ */
14
+ changedRows: number;
15
+ /**
16
+ * 插入或删除数据的影响条数
17
+ */
18
+ affectedRows: number;
19
+ }
20
+ export declare class SqlReturn {
21
+ error: any;
22
+ results: SqlResult;
23
+ fields: any;
24
+ list: Array<any>;
25
+ }
26
+ export declare class SqlReturns {
27
+ error: any;
28
+ srs: Array<SqlResult>;
29
+ }
30
+ export declare let GMysqlMgr: MysqlManager;
31
+ declare class MysqlManager {
32
+ protected _init_cbs: any[];
33
+ protected _pool: mysql.Pool;
34
+ get isValid(): boolean;
35
+ constructor();
36
+ init(): Promise<unknown>;
37
+ registerInitCb(cb: Function): void;
38
+ query(sqlStr: any, values?: any, no_err_log?: boolean): Promise<SqlReturn>;
39
+ transaction(sqls: any): Promise<SqlReturns>;
40
+ }
41
+ export {};
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GMysqlMgr = exports.SqlReturns = exports.SqlReturn = exports.SqlResult = void 0;
4
+ const _error_1 = require("./../Config/_error_");
5
+ const Log_1 = require("../Logic/Log");
6
+ const FrameworkConfig_1 = require("../Config/FrameworkConfig");
7
+ const mysql = require("mysql");
8
+ class SqlResult {
9
+ /**
10
+ * select 的数据量
11
+ */
12
+ length = 0;
13
+ /**
14
+ * 插入数据的自增id
15
+ */
16
+ insertId = null;
17
+ /**
18
+ * update 更新数据的影响条数
19
+ */
20
+ changedRows = null;
21
+ /**
22
+ * 插入或删除数据的影响条数
23
+ */
24
+ affectedRows = null;
25
+ }
26
+ exports.SqlResult = SqlResult;
27
+ class SqlReturn {
28
+ error = null;
29
+ results = null;
30
+ fields = null;
31
+ list = null;
32
+ }
33
+ exports.SqlReturn = SqlReturn;
34
+ class SqlReturns {
35
+ error = null;
36
+ srs = [];
37
+ }
38
+ exports.SqlReturns = SqlReturns;
39
+ exports.GMysqlMgr = null;
40
+ class MysqlManager {
41
+ _init_cbs = [];
42
+ _pool = null;
43
+ get isValid() {
44
+ return !!this._pool;
45
+ }
46
+ constructor() {
47
+ }
48
+ async init() {
49
+ return new Promise(async (resolve) => {
50
+ if (this._pool
51
+ || !FrameworkConfig_1.GFCfg.db.mysql
52
+ || !FrameworkConfig_1.GFCfg.db.mysql.open) {
53
+ resolve(null);
54
+ return;
55
+ }
56
+ this._pool = mysql.createPool({
57
+ connectionLimit: 100,
58
+ host: FrameworkConfig_1.GFCfg.db.mysql.host,
59
+ port: FrameworkConfig_1.GFCfg.db.mysql.port,
60
+ user: FrameworkConfig_1.GFCfg.db.mysql.user,
61
+ password: FrameworkConfig_1.GFCfg.db.mysql.password,
62
+ database: FrameworkConfig_1.GFCfg.db.mysql.database,
63
+ supportBigNumbers: true,
64
+ charset: "utf8mb4"
65
+ });
66
+ console.log("mysql config=" + JSON.stringify(FrameworkConfig_1.GFCfg.db.mysql));
67
+ //这个的初始化位置不能变,必须位于cbs前,pool后
68
+ await DBCache_1.GDBCache.init();
69
+ resolve(null);
70
+ for (let i = 0; i < this._init_cbs.length; ++i) {
71
+ this._init_cbs[i]();
72
+ }
73
+ });
74
+ }
75
+ registerInitCb(cb) {
76
+ this._init_cbs.push(cb);
77
+ }
78
+ query(sqlStr, values, no_err_log) {
79
+ return new Promise((resolve, reject) => {
80
+ let sr = new SqlReturn();
81
+ if (!this._pool) {
82
+ //表示没有开通数据库,不用记录错误日志
83
+ sr.error = _error_1.EErrorCode.No_Mysql;
84
+ Log_1.GLog.error(sr.error);
85
+ resolve(sr);
86
+ return;
87
+ }
88
+ this._pool.getConnection((err, conn) => {
89
+ if (err) {
90
+ sr.error = err;
91
+ Log_1.GLog.error(err);
92
+ resolve(sr);
93
+ return;
94
+ }
95
+ conn.query(sqlStr, values, (error, results, fields) => {
96
+ sr.error = error;
97
+ sr.results = results;
98
+ if (sr.results && sr.results.length > 0) {
99
+ sr.list = [];
100
+ for (let i = 0; i < sr.results.length; ++i) {
101
+ sr.list.push(sr.results[i]);
102
+ }
103
+ }
104
+ sr.fields = fields;
105
+ conn.release();
106
+ if (error && !no_err_log) {
107
+ Log_1.GLog.error(error);
108
+ }
109
+ resolve(sr);
110
+ });
111
+ });
112
+ });
113
+ }
114
+ transaction(sqls) {
115
+ return new Promise((resolve, reject) => {
116
+ let srs = new SqlReturns();
117
+ this._pool.getConnection((err, conn) => {
118
+ if (err) {
119
+ srs.error = err;
120
+ Log_1.GLog.error(err);
121
+ resolve(srs);
122
+ return;
123
+ }
124
+ conn.beginTransaction((err) => {
125
+ if (err) {
126
+ srs.error = err;
127
+ Log_1.GLog.error(err);
128
+ conn.release();
129
+ resolve(srs);
130
+ return;
131
+ }
132
+ let funcs = [];
133
+ for (let i = 0; i < sqls.length; ++i) {
134
+ let sql = sqls[i];
135
+ funcs.push(() => {
136
+ conn.query(sql.sql, sql.values, (error, results, fields) => {
137
+ srs.srs.push(results);
138
+ if (error) {
139
+ return conn.rollback(() => {
140
+ Log_1.GLog.error(error);
141
+ srs.error = error;
142
+ conn.release();
143
+ resolve(srs);
144
+ });
145
+ }
146
+ else {
147
+ if (funcs.length > 0) {
148
+ let f = funcs.shift();
149
+ f();
150
+ }
151
+ else {
152
+ conn.commit((error) => {
153
+ if (error) {
154
+ return conn.rollback(() => {
155
+ srs.error = error;
156
+ Log_1.GLog.error(error);
157
+ conn.release();
158
+ resolve(srs);
159
+ });
160
+ }
161
+ else {
162
+ conn.release();
163
+ resolve(srs);
164
+ }
165
+ });
166
+ }
167
+ }
168
+ });
169
+ });
170
+ }
171
+ let f = funcs.shift();
172
+ f();
173
+ });
174
+ });
175
+ });
176
+ }
177
+ }
178
+ exports.GMysqlMgr = new MysqlManager();
179
+ //该import必须放在GMysqlMgr实例化之后,否则version基类找不到GMysqlMgr
180
+ const DBCache_1 = require("./Decorator/DBCache");
181
+ //# sourceMappingURL=MysqlManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MysqlManager.js","sourceRoot":"","sources":["../../../Framework/Database/MysqlManager.ts"],"names":[],"mappings":"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"}