cgserver 6.0.7 → 6.1.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 (137) hide show
  1. package/dist/lib/AI/AiObject.js +10 -0
  2. package/dist/lib/AI/Astar.js +133 -0
  3. package/dist/lib/AI/BehaviorAI.js +307 -0
  4. package/dist/lib/AI/Entity.js +33 -0
  5. package/dist/lib/AI/Point.js +68 -0
  6. package/dist/lib/AI/TriggerMgr.js +201 -0
  7. package/dist/lib/Config/Config.js +37 -0
  8. package/dist/lib/Config/FrameworkConfig.js +234 -0
  9. package/dist/lib/Config/ServerConfig.js +18 -0
  10. package/dist/lib/Config/_error_.js +35 -0
  11. package/dist/lib/Core/Core.js +561 -0
  12. package/dist/lib/Core/Timer.js +116 -0
  13. package/dist/lib/Database/BaseMongoService.js +79 -0
  14. package/dist/lib/Database/BaseService.js +281 -0
  15. package/dist/lib/Database/Decorator/AutoIncrement.js +11 -0
  16. package/dist/lib/Database/Decorator/DBCache.js +64 -0
  17. package/dist/lib/Database/Decorator/NotNull.js +11 -0
  18. package/dist/lib/Database/Decorator/PrimaryKey.js +11 -0
  19. package/dist/lib/Database/Decorator/Property.js +61 -0
  20. package/dist/lib/Database/Decorator/Table.js +15 -0
  21. package/dist/lib/Database/Decorator/Type.js +20 -0
  22. package/dist/lib/Database/MSSqlManager.js +43 -0
  23. package/dist/lib/Database/MongoManager.js +401 -0
  24. package/dist/lib/Database/MysqlManager.js +180 -0
  25. package/dist/lib/Database/RedisManager.js +408 -0
  26. package/dist/lib/Logic/CacheTool.js +73 -0
  27. package/dist/lib/Logic/HttpTool.js +58 -0
  28. package/dist/lib/Logic/Log.js +77 -0
  29. package/dist/lib/Service/AccountService.js +473 -0
  30. package/dist/lib/Service/MongoAccountService.js +396 -0
  31. package/dist/lib/Service/MongoCacheService.js +27 -0
  32. package/dist/lib/Service/MongoUserService.js +93 -0
  33. package/dist/lib/Service/UserService.js +184 -0
  34. package/dist/lib/Service/ini.js +35 -0
  35. package/dist/lib/SocketServer/IClientWebSocket.js +71 -0
  36. package/dist/lib/SocketServer/IServerWebSocket.js +41 -0
  37. package/dist/lib/SocketServer/ISocketServer.js +190 -0
  38. package/dist/lib/SocketServer/IWebSocket.js +223 -0
  39. package/dist/lib/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -0
  40. package/dist/lib/SocketServer/ProtoFilter/IProtoFilter.js +8 -0
  41. package/dist/lib/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -0
  42. package/dist/lib/SocketServer/ProtoFilter/ProtoFactory.js +31 -0
  43. package/dist/lib/ThirdParty/AlipayTool.js +122 -0
  44. package/dist/lib/ThirdParty/Alisms.js +46 -0
  45. package/dist/lib/ThirdParty/AppleTool.js +234 -0
  46. package/dist/lib/ThirdParty/EmailTool.js +33 -0
  47. package/dist/lib/ThirdParty/OpenSocial.js +32 -0
  48. package/dist/lib/ThirdParty/QQTool.js +115 -0
  49. package/dist/lib/ThirdParty/QiniuTool.js +21 -0
  50. package/dist/lib/ThirdParty/WechatOATool.js +61 -0
  51. package/dist/lib/ThirdParty/WechatTool.js +74 -0
  52. package/dist/lib/WebServer/Controller/BaseController.js +112 -0
  53. package/dist/lib/WebServer/Controller/BaseUserController.js +168 -0
  54. package/dist/lib/WebServer/Controller/MongoBaseUserController.js +168 -0
  55. package/dist/lib/WebServer/Decorator/AdminValidate.js +19 -0
  56. package/dist/lib/WebServer/Decorator/AuthorityValidate.js +22 -0
  57. package/dist/lib/WebServer/Decorator/CreatorValidate.js +19 -0
  58. package/dist/lib/WebServer/Decorator/JsonAdminValidate.js +15 -0
  59. package/dist/lib/WebServer/Decorator/JsonAuthorityValidate.js +20 -0
  60. package/dist/lib/WebServer/Decorator/JsonCreatorValidate.js +19 -0
  61. package/dist/lib/WebServer/Engine/ControllerManager.js +112 -0
  62. package/dist/lib/WebServer/Engine/Engine.js +135 -0
  63. package/dist/lib/WebServer/Engine/RazorJs.js +544 -0
  64. package/dist/lib/WebServer/Engine/Request.js +214 -0
  65. package/dist/lib/WebServer/Engine/Response.js +94 -0
  66. package/dist/lib/WebServer/IWebServer.js +49 -0
  67. package/dist/lib/cgserver.js +153 -0
  68. package/dist/{AI → types/AI}/AiObject.d.ts +0 -0
  69. package/dist/{AI → types/AI}/Astar.d.ts +0 -0
  70. package/dist/{AI → types/AI}/BehaviorAI.d.ts +0 -0
  71. package/dist/{AI → types/AI}/Entity.d.ts +0 -0
  72. package/dist/{AI → types/AI}/Point.d.ts +0 -0
  73. package/dist/{AI → types/AI}/TriggerMgr.d.ts +0 -0
  74. package/dist/{Config → types/Config}/Config.d.ts +0 -0
  75. package/dist/{Config → types/Config}/FrameworkConfig.d.ts +0 -0
  76. package/dist/{Config → types/Config}/ServerConfig.d.ts +0 -0
  77. package/dist/{Config → types/Config}/_error_.d.ts +0 -0
  78. package/dist/{Core → types/Core}/Core.d.ts +0 -0
  79. package/dist/{Core → types/Core}/Timer.d.ts +0 -0
  80. package/dist/{Database → types/Database}/BaseMongoService.d.ts +1 -1
  81. package/dist/{Database → types/Database}/BaseService.d.ts +0 -0
  82. package/dist/{Database → types/Database}/Decorator/AutoIncrement.d.ts +0 -0
  83. package/dist/{Database → types/Database}/Decorator/DBCache.d.ts +0 -0
  84. package/dist/{Database → types/Database}/Decorator/NotNull.d.ts +0 -0
  85. package/dist/{Database → types/Database}/Decorator/PrimaryKey.d.ts +0 -0
  86. package/dist/{Database → types/Database}/Decorator/Property.d.ts +0 -0
  87. package/dist/{Database → types/Database}/Decorator/Table.d.ts +0 -0
  88. package/dist/{Database → types/Database}/Decorator/Type.d.ts +0 -0
  89. package/dist/{Database → types/Database}/MSSqlManager.d.ts +0 -0
  90. package/dist/{Database → types/Database}/MongoManager.d.ts +1 -1
  91. package/dist/{Database → types/Database}/MysqlManager.d.ts +0 -0
  92. package/dist/{Database → types/Database}/RedisManager.d.ts +0 -0
  93. package/dist/{Logic → types/Logic}/CacheTool.d.ts +0 -0
  94. package/dist/{Logic → types/Logic}/HttpTool.d.ts +0 -0
  95. package/dist/{Logic → types/Logic}/Log.d.ts +0 -0
  96. package/dist/{Service → types/Service}/AccountService.d.ts +0 -0
  97. package/dist/{Service → types/Service}/MongoAccountService.d.ts +0 -0
  98. package/dist/{Service → types/Service}/MongoCacheService.d.ts +0 -0
  99. package/dist/{Service → types/Service}/MongoUserService.d.ts +0 -0
  100. package/dist/{Service → types/Service}/UserService.d.ts +0 -0
  101. package/dist/{Service → types/Service}/ini.d.ts +0 -0
  102. package/dist/{SocketServer → types/SocketServer}/IClientWebSocket.d.ts +0 -0
  103. package/dist/{SocketServer → types/SocketServer}/IServerWebSocket.d.ts +0 -0
  104. package/dist/{SocketServer → types/SocketServer}/ISocketServer.d.ts +0 -0
  105. package/dist/{SocketServer → types/SocketServer}/IWebSocket.d.ts +0 -0
  106. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
  107. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/IProtoFilter.d.ts +0 -0
  108. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/JsonProtoFilter.d.ts +0 -0
  109. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/ProtoFactory.d.ts +0 -0
  110. package/dist/{ThirdParty → types/ThirdParty}/AlipayTool.d.ts +0 -0
  111. package/dist/{ThirdParty → types/ThirdParty}/Alisms.d.ts +0 -0
  112. package/dist/{ThirdParty → types/ThirdParty}/AppleTool.d.ts +0 -0
  113. package/dist/{ThirdParty → types/ThirdParty}/EmailTool.d.ts +0 -0
  114. package/dist/{ThirdParty → types/ThirdParty}/OpenSocial.d.ts +0 -0
  115. package/dist/{ThirdParty → types/ThirdParty}/QQTool.d.ts +0 -0
  116. package/dist/{ThirdParty → types/ThirdParty}/QiniuTool.d.ts +0 -0
  117. package/dist/{ThirdParty → types/ThirdParty}/WechatOATool.d.ts +0 -0
  118. package/dist/{ThirdParty → types/ThirdParty}/WechatTool.d.ts +0 -0
  119. package/dist/{WebServer → types/WebServer}/Controller/BaseController.d.ts +0 -0
  120. package/dist/{WebServer → types/WebServer}/Controller/BaseUserController.d.ts +0 -0
  121. package/dist/{WebServer → types/WebServer}/Controller/MongoBaseUserController.d.ts +0 -0
  122. package/dist/{WebServer → types/WebServer}/Decorator/AdminValidate.d.ts +0 -0
  123. package/dist/{WebServer → types/WebServer}/Decorator/AuthorityValidate.d.ts +0 -0
  124. package/dist/{WebServer → types/WebServer}/Decorator/CreatorValidate.d.ts +0 -0
  125. package/dist/{WebServer → types/WebServer}/Decorator/JsonAdminValidate.d.ts +0 -0
  126. package/dist/{WebServer → types/WebServer}/Decorator/JsonAuthorityValidate.d.ts +0 -0
  127. package/dist/{WebServer → types/WebServer}/Decorator/JsonCreatorValidate.d.ts +0 -0
  128. package/dist/{WebServer → types/WebServer}/Engine/ControllerManager.d.ts +0 -0
  129. package/dist/{WebServer → types/WebServer}/Engine/Engine.d.ts +0 -0
  130. package/dist/{WebServer → types/WebServer}/Engine/RazorJs.d.ts +0 -0
  131. package/dist/{WebServer → types/WebServer}/Engine/Request.d.ts +0 -0
  132. package/dist/{WebServer → types/WebServer}/Engine/Response.d.ts +0 -0
  133. package/dist/{WebServer → types/WebServer}/IWebServer.d.ts +0 -0
  134. package/dist/{cgserver.d.ts → types/cgserver.d.ts} +0 -0
  135. package/package.json +3 -3
  136. package/dist/Index.d.ts +0 -73
  137. package/dist/cgserver.js +0 -1037
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountService = exports.GAccountSer = exports.AccountModel = void 0;
4
+ const _error_1 = require("../Config/_error_");
5
+ const BaseMongoService_1 = require("../Database/BaseMongoService");
6
+ const MongoManager_1 = require("../Database/MongoManager");
7
+ const CacheTool_1 = require("../Logic/CacheTool");
8
+ const OpenSocial_1 = require("../ThirdParty/OpenSocial");
9
+ const QQTool_1 = require("../ThirdParty/QQTool");
10
+ const WechatTool_1 = require("../ThirdParty/WechatTool");
11
+ const ini_1 = require("./ini");
12
+ const MongoUserService_1 = require("./MongoUserService");
13
+ class AccountModel extends MongoManager_1.MongoBaseModel {
14
+ id = -1;
15
+ phone = "";
16
+ email = "";
17
+ name = "";
18
+ password = "";
19
+ unionid = ""; //第三方
20
+ openid = "";
21
+ create_time = -1;
22
+ create_ip = "";
23
+ login_time = -1;
24
+ login_ip = "";
25
+ from = 0;
26
+ state = 0;
27
+ }
28
+ exports.AccountModel = AccountModel;
29
+ //暂时不实例化,方便重写
30
+ exports.GAccountSer = null;
31
+ class AccountService extends BaseMongoService_1.BaseService {
32
+ _account_cache_key_pre = "table_account_";
33
+ _account_cache_time_sec = 1 * 60 * 60 * 1000;
34
+ constructor() {
35
+ super("account", AccountModel);
36
+ exports.GAccountSer = this;
37
+ }
38
+ _getNewModel() {
39
+ return new AccountModel();
40
+ }
41
+ /**
42
+ * 注册新账号
43
+ * @param unionid
44
+ * @param openid
45
+ * @param ip
46
+ * @param from
47
+ */
48
+ async add(unionid, openid, ip, from) {
49
+ let account = this._getNewModel();
50
+ switch (from) {
51
+ case ini_1.EAccountFrom.OpenSocial:
52
+ case ini_1.EAccountFrom.WeChat:
53
+ case ini_1.EAccountFrom.QQ:
54
+ case ini_1.EAccountFrom.Apple:
55
+ case ini_1.EAccountFrom.Google:
56
+ {
57
+ account.unionid = unionid;
58
+ account.openid = openid;
59
+ break;
60
+ }
61
+ case ini_1.EAccountFrom.Email:
62
+ {
63
+ account.email = unionid;
64
+ account.password = openid;
65
+ break;
66
+ }
67
+ case ini_1.EAccountFrom.Phone:
68
+ case ini_1.EAccountFrom.QuickPhone:
69
+ {
70
+ account.phone = unionid;
71
+ account.password = openid;
72
+ break;
73
+ }
74
+ case ini_1.EAccountFrom.Name:
75
+ case ini_1.EAccountFrom.Guest:
76
+ {
77
+ account.name = unionid;
78
+ account.password = openid;
79
+ break;
80
+ }
81
+ }
82
+ account.create_time = Date.now();
83
+ account.create_ip = ip;
84
+ account.login_time = Date.now();
85
+ account.login_ip = ip;
86
+ account.from = from;
87
+ account.state = 1;
88
+ account.id = await this.getNextId();
89
+ let sr = await this.insert(account);
90
+ if (sr.errcode) {
91
+ return null;
92
+ }
93
+ account._id = sr.rs.insertedId;
94
+ return account;
95
+ }
96
+ /**
97
+ * 通过第三方信息获取账号
98
+ * @param unionid
99
+ * @param openid
100
+ */
101
+ async getByThird(unionid, openid) {
102
+ let key = this._account_cache_key_pre + unionid;
103
+ let am = CacheTool_1.GCacheTool.get(key);
104
+ if (am) {
105
+ return am;
106
+ }
107
+ am = await this.get(null, { unionid: unionid, openid: openid });
108
+ if (am) {
109
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
110
+ }
111
+ return am;
112
+ }
113
+ /**
114
+ * 通过第三方信息获取账号
115
+ * @param unionid
116
+ */
117
+ async getByUnionid(unionid) {
118
+ let key = this._account_cache_key_pre + unionid;
119
+ let am = CacheTool_1.GCacheTool.get(key);
120
+ if (am) {
121
+ return am;
122
+ }
123
+ am = await this.get(null, { unionid: unionid });
124
+ if (am) {
125
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
126
+ }
127
+ return am;
128
+ }
129
+ async getByPhone(phone) {
130
+ let key = this._account_cache_key_pre + phone;
131
+ let am = CacheTool_1.GCacheTool.get(key);
132
+ if (am) {
133
+ return am;
134
+ }
135
+ am = await this.get(null, { phone: phone });
136
+ if (am) {
137
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
138
+ }
139
+ return am;
140
+ }
141
+ /**
142
+ * 登陆接口
143
+ * @param unionid
144
+ * @param openid
145
+ * @param ip
146
+ * @param from
147
+ * @param access_token qq、wechat使用
148
+ */
149
+ async login(unionid, openid, ip, from, access_token, extra) {
150
+ let rs = { errcode: null, account: null, is_new: false };
151
+ if (!unionid || !openid) {
152
+ rs.errcode = _error_1.EErrorCode.Wrong_Params;
153
+ return rs;
154
+ }
155
+ let login_rs = await this._login(unionid, openid, from);
156
+ rs.account = login_rs.account;
157
+ rs.errcode = login_rs.errcode;
158
+ if (rs.errcode) {
159
+ return rs;
160
+ }
161
+ let account = rs.account;
162
+ let extra_info = extra;
163
+ if (!account) {
164
+ switch (from) {
165
+ case ini_1.EAccountFrom.OpenSocial:
166
+ case ini_1.EAccountFrom.QQ:
167
+ case ini_1.EAccountFrom.WeChat:
168
+ case ini_1.EAccountFrom.Guest:
169
+ case ini_1.EAccountFrom.QuickPhone:
170
+ case ini_1.EAccountFrom.Apple:
171
+ case ini_1.EAccountFrom.Google:
172
+ {
173
+ account = await this.add(unionid, openid, ip, from);
174
+ break;
175
+ }
176
+ default:
177
+ {
178
+ rs.errcode = _error_1.EErrorCode.No_Account;
179
+ return rs;
180
+ }
181
+ }
182
+ }
183
+ if (!account) {
184
+ rs.errcode = _error_1.EErrorCode.No_Account;
185
+ return rs;
186
+ }
187
+ let user = await MongoUserService_1.GUserSer.getByAccountId(account.id);
188
+ if (!user) {
189
+ switch (from) {
190
+ case ini_1.EAccountFrom.OpenSocial:
191
+ case ini_1.EAccountFrom.QQ:
192
+ case ini_1.EAccountFrom.WeChat:
193
+ case ini_1.EAccountFrom.Apple:
194
+ case ini_1.EAccountFrom.Google:
195
+ {
196
+ if (!extra_info) {
197
+ if (from == ini_1.EAccountFrom.OpenSocial) {
198
+ let body = await OpenSocial_1.GOpenSocial.getUser(unionid, openid);
199
+ if (body && body.errcode) {
200
+ rs.errcode = body.errcode;
201
+ return rs;
202
+ }
203
+ else if (body && body.user) {
204
+ extra_info =
205
+ {
206
+ logo: body.user.logo,
207
+ sex: body.user.sex,
208
+ nickname: body.user.nickname
209
+ };
210
+ }
211
+ }
212
+ else if (from == ini_1.EAccountFrom.QQ) {
213
+ let userInfo = await QQTool_1.GQQTool.getUserInfo(access_token, openid);
214
+ if (userInfo.ret) {
215
+ rs.errcode = _error_1.EErrorCode.Server_Error;
216
+ return rs;
217
+ }
218
+ extra_info =
219
+ {
220
+ logo: userInfo.figureurl_qq,
221
+ sex: (userInfo.gender == "男" ? 1 : 0),
222
+ nickname: userInfo.nickname
223
+ };
224
+ }
225
+ else if (from == ini_1.EAccountFrom.WeChat) {
226
+ let userInfo = await WechatTool_1.GWechatTool.getUserInfo(access_token, openid);
227
+ if (userInfo.errcode) {
228
+ rs.errcode = _error_1.EErrorCode.Server_Error;
229
+ return rs;
230
+ }
231
+ extra_info =
232
+ {
233
+ logo: userInfo.headimgurl,
234
+ sex: (userInfo.sex == 1 ? 1 : 0),
235
+ nickname: userInfo.nickname
236
+ };
237
+ }
238
+ else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
239
+ extra_info =
240
+ {
241
+ logo: "32",
242
+ sex: 0,
243
+ nickname: "noname"
244
+ };
245
+ }
246
+ }
247
+ let user = await MongoUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
248
+ if (!user) {
249
+ this.deleteOne({ id: account.id });
250
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
251
+ return rs;
252
+ }
253
+ break;
254
+ }
255
+ case ini_1.EAccountFrom.QuickPhone:
256
+ case ini_1.EAccountFrom.Guest:
257
+ {
258
+ let user = null;
259
+ if (extra_info) {
260
+ user = await MongoUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
261
+ }
262
+ else {
263
+ user = await MongoUserService_1.GUserSer.add(account.id, null, null, null);
264
+ }
265
+ if (!user) {
266
+ this.deleteOne({ id: account.id });
267
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
268
+ return rs;
269
+ }
270
+ break;
271
+ }
272
+ default:
273
+ {
274
+ rs.errcode = _error_1.EErrorCode.No_Account;
275
+ return rs;
276
+ }
277
+ }
278
+ rs.is_new = true;
279
+ if (extra) {
280
+ await MongoUserService_1.GUserSer.updateBaseInfoByAccount(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
281
+ }
282
+ }
283
+ rs.account = account;
284
+ return rs;
285
+ }
286
+ async _login(unionid, openid, from) {
287
+ let rs = { errcode: null, account: null };
288
+ if (from == ini_1.EAccountFrom.QQ
289
+ || from == ini_1.EAccountFrom.WeChat
290
+ || from == ini_1.EAccountFrom.OpenSocial
291
+ || from == ini_1.EAccountFrom.Apple
292
+ || from == ini_1.EAccountFrom.Google) {
293
+ rs.account = await this.getByThird(unionid, openid);
294
+ }
295
+ else if (from == ini_1.EAccountFrom.QuickPhone) {
296
+ let key = "phone_code_" + unionid;
297
+ let code = CacheTool_1.GCacheTool.get(key);
298
+ if (!code || code != openid) {
299
+ rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
300
+ return rs;
301
+ }
302
+ rs.account = await this.getByPhone(unionid);
303
+ }
304
+ else if (from == ini_1.EAccountFrom.Phone) {
305
+ rs.account = await this.get(null, { phone: unionid, password: openid });
306
+ if (!rs.account) {
307
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
308
+ }
309
+ }
310
+ else if (from == ini_1.EAccountFrom.Email) {
311
+ rs.account = await this.get(null, { email: unionid, password: openid });
312
+ if (!rs.account) {
313
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
314
+ }
315
+ }
316
+ else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
317
+ rs.account = await this.get(null, { name: unionid, password: openid });
318
+ if (!rs.account && from == ini_1.EAccountFrom.Name) {
319
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
320
+ }
321
+ }
322
+ return rs;
323
+ }
324
+ /**
325
+ * 修改密码
326
+ * @param unionid
327
+ * @param openid
328
+ * @param new_pwd
329
+ */
330
+ async updatePwd(unionid, openid, new_pwd) {
331
+ let rs = await OpenSocial_1.GOpenSocial.updatePwd(unionid, openid, new_pwd);
332
+ return rs;
333
+ }
334
+ async register(type, key, password, ip, extra) {
335
+ let rs = { user: null, errcode: null };
336
+ extra = extra || {};
337
+ let am = this._getNewModel();
338
+ switch (type) {
339
+ case ini_1.EAccountFrom.Phone:
340
+ {
341
+ am.phone = key;
342
+ let temp = await this.get({ id: 1 }, { phone: key });
343
+ if (temp) {
344
+ rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
345
+ return rs;
346
+ }
347
+ break;
348
+ }
349
+ case ini_1.EAccountFrom.Email:
350
+ {
351
+ am.email = key;
352
+ let temp = await this.get({ id: 1 }, { email: key });
353
+ if (temp) {
354
+ rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
355
+ return rs;
356
+ }
357
+ break;
358
+ }
359
+ case ini_1.EAccountFrom.Name:
360
+ {
361
+ am.name = key;
362
+ let temp = await this.get({ id: 1 }, { name: key });
363
+ if (temp) {
364
+ rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
365
+ return rs;
366
+ }
367
+ break;
368
+ }
369
+ default:
370
+ {
371
+ rs.errcode = _error_1.EErrorCode.Account_Type_Error;
372
+ return rs;
373
+ }
374
+ }
375
+ am.password = password;
376
+ am.create_time = Date.now();
377
+ am.create_ip = ip;
378
+ am.login_time = Date.now();
379
+ am.login_ip = ip;
380
+ am.id = await this.getNextId();
381
+ let rs_am = await this.insert(am);
382
+ if (!rs_am.rs.insertedId) {
383
+ rs.errcode = _error_1.EErrorCode.Mysql_Error;
384
+ return rs;
385
+ }
386
+ let user = await MongoUserService_1.GUserSer.add(am.id, extra.nickname, extra.sex, extra.logo);
387
+ if (!user) {
388
+ this.deleteOne({ id: am.id });
389
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
390
+ return rs;
391
+ }
392
+ rs.user = user;
393
+ return rs;
394
+ }
395
+ }
396
+ exports.AccountService = AccountService;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GMongoCacheSer = exports.MongoCacheModel = void 0;
4
+ const BaseMongoService_1 = require("../Database/BaseMongoService");
5
+ const MongoManager_1 = require("../Database/MongoManager");
6
+ //暂时就用这个了,反正没啥用户
7
+ class MongoCacheModel extends MongoManager_1.MongoBaseModel {
8
+ key = "";
9
+ data = null;
10
+ expireAt = Date.now() + 365 * 24 * 60 * 60 * 1000;
11
+ }
12
+ exports.MongoCacheModel = MongoCacheModel;
13
+ exports.GMongoCacheSer = null;
14
+ class MongoCacheService extends BaseMongoService_1.BaseService {
15
+ constructor() {
16
+ super("cache", MongoCacheModel);
17
+ this.createIndex({ "expireAt": 1 }, { expireAfterSeconds: 0 });
18
+ }
19
+ async getData(key) {
20
+ let cm = await exports.GMongoCacheSer.get(null, { key: key });
21
+ if (!cm) {
22
+ return null;
23
+ }
24
+ return cm.data;
25
+ }
26
+ }
27
+ exports.GMongoCacheSer = new MongoCacheService();
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserService = exports.GUserSer = exports.UserModel = void 0;
4
+ const _ = require("underscore");
5
+ const BaseMongoService_1 = require("../Database/BaseMongoService");
6
+ const MongoManager_1 = require("../Database/MongoManager");
7
+ const ini_1 = require("./ini");
8
+ class UserModel extends MongoManager_1.MongoBaseModel {
9
+ id = -1;
10
+ account_id = -1;
11
+ nickname = "";
12
+ sex = -1;
13
+ logo = "";
14
+ state = 0;
15
+ role_group = 4;
16
+ role = 0;
17
+ phone = "";
18
+ wechat = "";
19
+ qq = "";
20
+ email = "";
21
+ about = "";
22
+ pre_user_id = -1;
23
+ exp = 0;
24
+ level = 1; //等级
25
+ vip_exp = 0;
26
+ vip_level = 0; //等级
27
+ is_robot = 0;
28
+ create_time = 0;
29
+ }
30
+ exports.UserModel = UserModel;
31
+ //暂时不实例化,方便重写
32
+ exports.GUserSer = null;
33
+ class UserService extends BaseMongoService_1.BaseService {
34
+ constructor(type) {
35
+ super("user", type);
36
+ exports.GUserSer = this;
37
+ }
38
+ _newUserModel() {
39
+ return (new UserModel());
40
+ }
41
+ async _createNewUser(account_id, nickname, sex, logo, group) {
42
+ group = group || ini_1.ERoleGroup.Common;
43
+ let um = this._newUserModel();
44
+ um.account_id = account_id;
45
+ um.nickname = nickname;
46
+ if (!um.nickname || um.nickname.length == 0) {
47
+ um.nickname = "noname";
48
+ }
49
+ um.sex = sex || 0;
50
+ um.logo = logo || "";
51
+ um.account_id = account_id;
52
+ um.state = 0;
53
+ um.role_group = group;
54
+ um.role = 0;
55
+ //随机userid
56
+ let id = 0;
57
+ do {
58
+ id = _.random(1000000, 9999999);
59
+ let p = await this.get({ id: 1 }, { id: id });
60
+ if (!p) {
61
+ break;
62
+ }
63
+ } while (true);
64
+ um.id = id;
65
+ return um;
66
+ }
67
+ async add(account_id, nickname, sex, logo, group) {
68
+ let um = await this._createNewUser(account_id, nickname, sex, logo, group);
69
+ let rs = await this.insert(um);
70
+ if (rs.errcode || !rs.rs.insertedId) {
71
+ return null;
72
+ }
73
+ um._id = rs.rs.insertedId;
74
+ return um;
75
+ }
76
+ async getByAccountId(account_id) {
77
+ let pm = await this.get(null, { account_id: account_id });
78
+ return pm;
79
+ }
80
+ async updateBaseInfoByAccount(account_id, nickname, sex, logo) {
81
+ let model = {
82
+ nickname: nickname,
83
+ sex: sex,
84
+ logo: logo
85
+ };
86
+ let sr = await this.updateOne(model, { account_id: account_id });
87
+ if (sr.errcode) {
88
+ return "更新失败";
89
+ }
90
+ return;
91
+ }
92
+ }
93
+ exports.UserService = UserService;
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserService = exports.GUserSer = exports.UserModel = void 0;
10
+ const _ = require("underscore");
11
+ const BaseService_1 = require("../Database/BaseService");
12
+ const PrimaryKey_1 = require("../Database/Decorator/PrimaryKey");
13
+ const NotNull_1 = require("../Database/Decorator/NotNull");
14
+ const Property_1 = require("../Database/Decorator/Property");
15
+ const Type_1 = require("../Database/Decorator/Type");
16
+ const ini_1 = require("./ini");
17
+ class UserModel extends BaseService_1.BaseModel {
18
+ id = -1;
19
+ account_id = -1;
20
+ nickname = "";
21
+ sex = -1;
22
+ logo = "";
23
+ state = 0;
24
+ role_group = 4;
25
+ role = 0;
26
+ phone = "";
27
+ wechat = "";
28
+ qq = "";
29
+ email = "";
30
+ about = "";
31
+ pre_user_id = -1;
32
+ exp = 0;
33
+ level = 1; //等级
34
+ vip_exp = 0;
35
+ vip_level = 0; //等级
36
+ is_robot = 0;
37
+ create_time = 0;
38
+ }
39
+ __decorate([
40
+ (0, Type_1.Type)(Property_1.EPropertyType.Int),
41
+ NotNull_1.NotNull,
42
+ PrimaryKey_1.PrimaryKey
43
+ ], UserModel.prototype, "id", void 0);
44
+ __decorate([
45
+ NotNull_1.NotNull,
46
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, -1)
47
+ ], UserModel.prototype, "account_id", void 0);
48
+ __decorate([
49
+ NotNull_1.NotNull,
50
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "noname", 32)
51
+ ], UserModel.prototype, "nickname", void 0);
52
+ __decorate([
53
+ NotNull_1.NotNull,
54
+ (0, Type_1.Type)(Property_1.EPropertyType.SmallInt, 0)
55
+ ], UserModel.prototype, "sex", void 0);
56
+ __decorate([
57
+ NotNull_1.NotNull,
58
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 255)
59
+ ], UserModel.prototype, "logo", void 0);
60
+ __decorate([
61
+ NotNull_1.NotNull,
62
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 0)
63
+ ], UserModel.prototype, "state", void 0);
64
+ __decorate([
65
+ NotNull_1.NotNull,
66
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 4)
67
+ ], UserModel.prototype, "role_group", void 0);
68
+ __decorate([
69
+ NotNull_1.NotNull,
70
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 0)
71
+ ], UserModel.prototype, "role", void 0);
72
+ __decorate([
73
+ NotNull_1.NotNull,
74
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "")
75
+ ], UserModel.prototype, "phone", void 0);
76
+ __decorate([
77
+ NotNull_1.NotNull,
78
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "")
79
+ ], UserModel.prototype, "wechat", void 0);
80
+ __decorate([
81
+ NotNull_1.NotNull,
82
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "")
83
+ ], UserModel.prototype, "qq", void 0);
84
+ __decorate([
85
+ NotNull_1.NotNull,
86
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "")
87
+ ], UserModel.prototype, "email", void 0);
88
+ __decorate([
89
+ NotNull_1.NotNull,
90
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 512)
91
+ ], UserModel.prototype, "about", void 0);
92
+ __decorate([
93
+ NotNull_1.NotNull,
94
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, -1)
95
+ ], UserModel.prototype, "pre_user_id", void 0);
96
+ __decorate([
97
+ NotNull_1.NotNull,
98
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 0)
99
+ ], UserModel.prototype, "exp", void 0);
100
+ __decorate([
101
+ NotNull_1.NotNull,
102
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 1)
103
+ ], UserModel.prototype, "level", void 0);
104
+ __decorate([
105
+ NotNull_1.NotNull,
106
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 0)
107
+ ], UserModel.prototype, "vip_exp", void 0);
108
+ __decorate([
109
+ NotNull_1.NotNull,
110
+ (0, Type_1.Type)(Property_1.EPropertyType.Int, 0)
111
+ ], UserModel.prototype, "vip_level", void 0);
112
+ __decorate([
113
+ NotNull_1.NotNull,
114
+ (0, Type_1.Type)(Property_1.EPropertyType.TinyInt, 0)
115
+ ], UserModel.prototype, "is_robot", void 0);
116
+ __decorate([
117
+ NotNull_1.NotNull,
118
+ (0, Type_1.Type)(Property_1.EPropertyType.BigInt, 0)
119
+ ], UserModel.prototype, "create_time", void 0);
120
+ exports.UserModel = UserModel;
121
+ //暂时不实例化,方便重写
122
+ exports.GUserSer = null;
123
+ class UserService extends BaseService_1.BaseService {
124
+ constructor(type) {
125
+ super(type);
126
+ exports.GUserSer = this;
127
+ }
128
+ _newUserModel() {
129
+ return (new UserModel());
130
+ }
131
+ async _createNewUser(account_id, nickname, sex, logo, group) {
132
+ group = group || ini_1.ERoleGroup.Common;
133
+ let um = this._newUserModel();
134
+ um.account_id = account_id;
135
+ um.nickname = nickname;
136
+ if (!um.nickname || um.nickname.length == 0) {
137
+ um.nickname = "noname";
138
+ }
139
+ um.sex = sex || 0;
140
+ um.logo = logo || "";
141
+ um.account_id = account_id;
142
+ um.state = 0;
143
+ um.role_group = group;
144
+ um.role = 0;
145
+ //随机userid
146
+ let id = 0;
147
+ do {
148
+ id = _.random(1000000, 9999999);
149
+ let p = await this.get("id", "id=?", [id]);
150
+ if (!p) {
151
+ break;
152
+ }
153
+ } while (true);
154
+ um.id = id;
155
+ return um;
156
+ }
157
+ async updateBaseInfoByAccount(account_id, nickname, sex, logo) {
158
+ let sr = await this.updateProperty("nickname=?,sex=?,logo=?", "account_id=?", [nickname, sex, logo, account_id]);
159
+ if (sr.error && sr.results.affectedRows <= 0) {
160
+ return "更新失败";
161
+ }
162
+ return;
163
+ }
164
+ async add(account_id, nickname, sex, logo, group) {
165
+ let um = await this._createNewUser(account_id, nickname, sex, logo, group);
166
+ let sr = await this.insert(um);
167
+ if (sr.error || sr.results.length <= 0) {
168
+ return null;
169
+ }
170
+ return um;
171
+ }
172
+ async updateRoleGroup(user_id, role_group) {
173
+ let sr = await this.updateProperty("role_group=?", "id=?", [role_group, user_id]);
174
+ if (sr.error && sr.results.affectedRows <= 0) {
175
+ return "更新失败";
176
+ }
177
+ return;
178
+ }
179
+ async getByAccountId(account_id) {
180
+ let pm = await this.get(null, "account_id=?", [account_id]);
181
+ return pm;
182
+ }
183
+ }
184
+ exports.UserService = UserService;