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,339 +1,339 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoAccountService = exports.MongoAccountModel = void 0;
4
- const _error_1 = require("../Config/_error_");
5
- const MongoBaseService_1 = require("../Database/Mongo/MongoBaseService");
6
- const MongoManager_1 = require("../Database/Mongo/MongoManager");
7
- const MongoServiceManager_1 = require("../Database/Mongo/MongoServiceManager");
8
- const CacheTool_1 = require("../Logic/CacheTool");
9
- const QQTool_1 = require("../ThirdParty/QQTool");
10
- const WechatTool_1 = require("../ThirdParty/WechatTool");
11
- const ini_1 = require("./ini");
12
- class MongoAccountModel extends MongoManager_1.MongoBaseModel {
13
- id = -1;
14
- phone = "";
15
- email = "";
16
- name = "";
17
- password = "";
18
- unionid = ""; //第三方
19
- openid = "";
20
- create_time = -1;
21
- create_ip = "";
22
- login_time = -1;
23
- login_ip = "";
24
- from = 0;
25
- state = ini_1.EAccountState.Waitting;
26
- }
27
- exports.MongoAccountModel = MongoAccountModel;
28
- class MongoAccountService extends MongoBaseService_1.MongoBaseService {
29
- /**
30
- * 注册新账号
31
- * @param unionid
32
- * @param openid
33
- * @param ip
34
- * @param from
35
- */
36
- async add(unionid, openid, ip, from) {
37
- let account = new this._t_type();
38
- switch (from) {
39
- case ini_1.EAccountFrom.WeChat:
40
- case ini_1.EAccountFrom.QQ:
41
- case ini_1.EAccountFrom.Apple:
42
- case ini_1.EAccountFrom.Google:
43
- {
44
- account.unionid = unionid;
45
- account.openid = openid;
46
- break;
47
- }
48
- case ini_1.EAccountFrom.Email:
49
- {
50
- account.email = unionid;
51
- account.password = openid;
52
- break;
53
- }
54
- case ini_1.EAccountFrom.Phone:
55
- case ini_1.EAccountFrom.QuickPhone:
56
- {
57
- account.phone = unionid;
58
- account.password = openid;
59
- break;
60
- }
61
- case ini_1.EAccountFrom.Name:
62
- case ini_1.EAccountFrom.Guest:
63
- {
64
- account.name = unionid;
65
- account.password = openid;
66
- break;
67
- }
68
- }
69
- account.create_time = Date.now();
70
- account.create_ip = ip;
71
- account.login_time = Date.now();
72
- account.login_ip = ip;
73
- account.from = from;
74
- account.state = ini_1.EAccountState.Waitting;
75
- account.id = await this.getNextId();
76
- let sr = await this.insert(account);
77
- if (sr.errcode) {
78
- return null;
79
- }
80
- account._id = sr.rs.insertedId;
81
- return account;
82
- }
83
- /**
84
- * 通过第三方信息获取账号
85
- * @param unionid
86
- * @param openid
87
- */
88
- async getByThird(unionid, openid) {
89
- let am = await this.findOne({ unionid: unionid, openid: openid });
90
- return am;
91
- }
92
- /**
93
- * 通过第三方信息获取账号
94
- * @param unionid
95
- */
96
- async getByUnionid(unionid) {
97
- let am = await this.findOne({ unionid: unionid });
98
- return am;
99
- }
100
- async getByPhone(phone) {
101
- let am = await this.findOne({ phone: phone + "" });
102
- return am;
103
- }
104
- /**
105
- * 登陆接口
106
- * @param unionid 用户名、邮箱、手机号或者第三方的unionid
107
- * @param openid 密码或者第三方的openid
108
- * @param ip 登录ip
109
- * @param from 登录来源
110
- * @param access_token qq、wechat使用
111
- */
112
- async login(unionid, openid, ip, from, force_user = true, access_token) {
113
- let rs = { errcode: null, account: null, is_new: false };
114
- if (!unionid || !openid) {
115
- rs.errcode = _error_1.EErrorCode.Wrong_Params;
116
- return rs;
117
- }
118
- unionid += "";
119
- openid += "";
120
- let login_rs = await this._login(unionid, openid, from);
121
- rs.account = login_rs.account;
122
- rs.errcode = login_rs.errcode;
123
- if (rs.errcode) {
124
- return rs;
125
- }
126
- let account = rs.account;
127
- let extra_info = {};
128
- if (!account) {
129
- switch (from) {
130
- case ini_1.EAccountFrom.QQ:
131
- case ini_1.EAccountFrom.WeChat:
132
- case ini_1.EAccountFrom.Guest:
133
- case ini_1.EAccountFrom.QuickPhone:
134
- case ini_1.EAccountFrom.Apple:
135
- case ini_1.EAccountFrom.Google:
136
- {
137
- account = await this.add(unionid, openid, ip, from);
138
- break;
139
- }
140
- default:
141
- {
142
- rs.errcode = _error_1.EErrorCode.No_Account;
143
- return rs;
144
- }
145
- }
146
- }
147
- if (!account) {
148
- rs.errcode = _error_1.EErrorCode.No_Account;
149
- return rs;
150
- }
151
- if (force_user) {
152
- let userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
153
- let user = await userser.getByAccountId(account.id);
154
- if (!user) {
155
- switch (from) {
156
- case ini_1.EAccountFrom.QQ:
157
- case ini_1.EAccountFrom.WeChat:
158
- case ini_1.EAccountFrom.Apple:
159
- case ini_1.EAccountFrom.Google:
160
- {
161
- if (!extra_info) {
162
- if (from == ini_1.EAccountFrom.QQ) {
163
- let userInfo = await QQTool_1.gQQTool.getUserInfo(access_token, openid);
164
- if (!userInfo) {
165
- rs.errcode = _error_1.EErrorCode.Server_Error;
166
- return rs;
167
- }
168
- extra_info =
169
- {
170
- logo: userInfo.figureurl_qq,
171
- sex: (userInfo.gender == "男" ? 1 : 0),
172
- nickname: userInfo.nickname
173
- };
174
- }
175
- else if (from == ini_1.EAccountFrom.WeChat) {
176
- let userInfo = await WechatTool_1.gWechatTool.getUserInfo(access_token, openid);
177
- if (userInfo.errcode) {
178
- rs.errcode = _error_1.EErrorCode.Server_Error;
179
- return rs;
180
- }
181
- extra_info =
182
- {
183
- logo: userInfo.headimgurl,
184
- sex: (userInfo.sex == 1 ? 1 : 0),
185
- nickname: userInfo.nickname
186
- };
187
- }
188
- else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
189
- extra_info =
190
- {
191
- logo: "32",
192
- sex: 0,
193
- nickname: "noname"
194
- };
195
- }
196
- }
197
- let user = await userser.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
198
- if (!user) {
199
- this.deleteOne({ id: account.id });
200
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
201
- return rs;
202
- }
203
- break;
204
- }
205
- case ini_1.EAccountFrom.QuickPhone:
206
- case ini_1.EAccountFrom.Guest:
207
- {
208
- let user = null;
209
- if (extra_info) {
210
- user = await userser.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
211
- }
212
- else {
213
- user = await userser.add(account.id, null, null, null);
214
- }
215
- if (!user) {
216
- this.deleteOne({ id: account.id });
217
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
218
- return rs;
219
- }
220
- break;
221
- }
222
- default:
223
- {
224
- rs.errcode = _error_1.EErrorCode.No_Account;
225
- return rs;
226
- }
227
- }
228
- rs.is_new = true;
229
- }
230
- }
231
- account.login_time = Date.now();
232
- account.login_ip = ip;
233
- this.updateOne({ id: account.id }, { login_time: account.login_time, login_ip: account.login_ip });
234
- rs.account = account;
235
- return rs;
236
- }
237
- async _login(unionid, openid, from) {
238
- unionid += "";
239
- openid += "";
240
- let rs = { errcode: null, account: null };
241
- if (from == ini_1.EAccountFrom.QQ
242
- || from == ini_1.EAccountFrom.WeChat
243
- || from == ini_1.EAccountFrom.Apple
244
- || from == ini_1.EAccountFrom.Google) {
245
- rs.account = await this.getByThird(unionid, openid);
246
- }
247
- else if (from == ini_1.EAccountFrom.QuickPhone) {
248
- let key = "phone_code_" + unionid;
249
- let code = CacheTool_1.gCacheTool.get(key);
250
- if (!code || code != openid) {
251
- rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
252
- return rs;
253
- }
254
- rs.account = await this.getByPhone(unionid);
255
- }
256
- else if (from == ini_1.EAccountFrom.Phone) {
257
- rs.account = await this.findOne({ phone: unionid, password: openid });
258
- if (!rs.account) {
259
- rs.errcode = _error_1.EErrorCode.Login_Failed;
260
- }
261
- }
262
- else if (from == ini_1.EAccountFrom.Email) {
263
- rs.account = await this.findOne({ email: unionid, password: openid });
264
- if (!rs.account) {
265
- rs.errcode = _error_1.EErrorCode.Login_Failed;
266
- }
267
- }
268
- else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
269
- rs.account = await this.findOne({ name: unionid, password: openid });
270
- if (!rs.account && from == ini_1.EAccountFrom.Name) {
271
- rs.errcode = _error_1.EErrorCode.Login_Failed;
272
- }
273
- }
274
- return rs;
275
- }
276
- async register(type, key, password, ip, extra) {
277
- let rs = { user: null, errcode: null };
278
- extra = extra || {};
279
- let am = new this._t_type();
280
- switch (type) {
281
- case ini_1.EAccountFrom.Phone:
282
- {
283
- am.phone = key;
284
- let temp = await this.findOne({ phone: key }, { id: 1 });
285
- if (temp) {
286
- rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
287
- return rs;
288
- }
289
- break;
290
- }
291
- case ini_1.EAccountFrom.Email:
292
- {
293
- am.email = key;
294
- let temp = await this.findOne({ email: key }, { id: 1 });
295
- if (temp) {
296
- rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
297
- return rs;
298
- }
299
- break;
300
- }
301
- case ini_1.EAccountFrom.Name:
302
- {
303
- am.name = key;
304
- let temp = await this.findOne({ name: key }, { id: 1 });
305
- if (temp) {
306
- rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
307
- return rs;
308
- }
309
- break;
310
- }
311
- default:
312
- {
313
- rs.errcode = _error_1.EErrorCode.Account_Type_Error;
314
- return rs;
315
- }
316
- }
317
- am.password = password;
318
- am.create_time = Date.now();
319
- am.create_ip = ip;
320
- am.login_time = Date.now();
321
- am.login_ip = ip;
322
- am.id = await this.getNextId();
323
- let rs_am = await this.insert(am);
324
- if (!rs_am.rs.insertedId) {
325
- rs.errcode = _error_1.EErrorCode.Mysql_Error;
326
- return rs;
327
- }
328
- let userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
329
- let user = await userser.add(am.id, extra.nickname, extra.sex, extra.logo);
330
- if (!user) {
331
- this.deleteOne({ id: am.id });
332
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
333
- return rs;
334
- }
335
- rs.user = user;
336
- return rs;
337
- }
338
- }
339
- exports.MongoAccountService = MongoAccountService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongoAccountService = exports.MongoAccountModel = void 0;
4
+ const _error_1 = require("../Config/_error_");
5
+ const MongoBaseService_1 = require("../Database/Mongo/MongoBaseService");
6
+ const MongoManager_1 = require("../Database/Mongo/MongoManager");
7
+ const MongoServiceManager_1 = require("../Database/Mongo/MongoServiceManager");
8
+ const CacheTool_1 = require("../Logic/CacheTool");
9
+ const QQTool_1 = require("../ThirdParty/QQTool");
10
+ const WechatTool_1 = require("../ThirdParty/WechatTool");
11
+ const ini_1 = require("./ini");
12
+ class MongoAccountModel extends MongoManager_1.MongoBaseModel {
13
+ id = -1;
14
+ phone = "";
15
+ email = "";
16
+ name = "";
17
+ password = "";
18
+ unionid = ""; //第三方
19
+ openid = "";
20
+ create_time = -1;
21
+ create_ip = "";
22
+ login_time = -1;
23
+ login_ip = "";
24
+ from = 0;
25
+ state = ini_1.EAccountState.Waitting;
26
+ }
27
+ exports.MongoAccountModel = MongoAccountModel;
28
+ class MongoAccountService extends MongoBaseService_1.MongoBaseService {
29
+ /**
30
+ * 注册新账号
31
+ * @param unionid
32
+ * @param openid
33
+ * @param ip
34
+ * @param from
35
+ */
36
+ async add(unionid, openid, ip, from) {
37
+ let account = new this._t_type();
38
+ switch (from) {
39
+ case ini_1.EAccountFrom.WeChat:
40
+ case ini_1.EAccountFrom.QQ:
41
+ case ini_1.EAccountFrom.Apple:
42
+ case ini_1.EAccountFrom.Google:
43
+ {
44
+ account.unionid = unionid;
45
+ account.openid = openid;
46
+ break;
47
+ }
48
+ case ini_1.EAccountFrom.Email:
49
+ {
50
+ account.email = unionid;
51
+ account.password = openid;
52
+ break;
53
+ }
54
+ case ini_1.EAccountFrom.Phone:
55
+ case ini_1.EAccountFrom.QuickPhone:
56
+ {
57
+ account.phone = unionid;
58
+ account.password = openid;
59
+ break;
60
+ }
61
+ case ini_1.EAccountFrom.Name:
62
+ case ini_1.EAccountFrom.Guest:
63
+ {
64
+ account.name = unionid;
65
+ account.password = openid;
66
+ break;
67
+ }
68
+ }
69
+ account.create_time = Date.now();
70
+ account.create_ip = ip;
71
+ account.login_time = Date.now();
72
+ account.login_ip = ip;
73
+ account.from = from;
74
+ account.state = ini_1.EAccountState.Waitting;
75
+ account.id = await this.getNextId();
76
+ let sr = await this.insert(account);
77
+ if (sr.errcode) {
78
+ return null;
79
+ }
80
+ account._id = sr.rs.insertedId;
81
+ return account;
82
+ }
83
+ /**
84
+ * 通过第三方信息获取账号
85
+ * @param unionid
86
+ * @param openid
87
+ */
88
+ async getByThird(unionid, openid) {
89
+ let am = await this.findOne({ unionid: unionid, openid: openid });
90
+ return am;
91
+ }
92
+ /**
93
+ * 通过第三方信息获取账号
94
+ * @param unionid
95
+ */
96
+ async getByUnionid(unionid) {
97
+ let am = await this.findOne({ unionid: unionid });
98
+ return am;
99
+ }
100
+ async getByPhone(phone) {
101
+ let am = await this.findOne({ phone: phone + "" });
102
+ return am;
103
+ }
104
+ /**
105
+ * 登陆接口
106
+ * @param unionid 用户名、邮箱、手机号或者第三方的unionid
107
+ * @param openid 密码或者第三方的openid
108
+ * @param ip 登录ip
109
+ * @param from 登录来源
110
+ * @param access_token qq、wechat使用
111
+ */
112
+ async login(unionid, openid, ip, from, force_user = true, access_token) {
113
+ let rs = { errcode: null, account: null, is_new: false };
114
+ if (!unionid || !openid) {
115
+ rs.errcode = _error_1.EErrorCode.Wrong_Params;
116
+ return rs;
117
+ }
118
+ unionid += "";
119
+ openid += "";
120
+ let login_rs = await this._login(unionid, openid, from);
121
+ rs.account = login_rs.account;
122
+ rs.errcode = login_rs.errcode;
123
+ if (rs.errcode) {
124
+ return rs;
125
+ }
126
+ let account = rs.account;
127
+ let extra_info = {};
128
+ if (!account) {
129
+ switch (from) {
130
+ case ini_1.EAccountFrom.QQ:
131
+ case ini_1.EAccountFrom.WeChat:
132
+ case ini_1.EAccountFrom.Guest:
133
+ case ini_1.EAccountFrom.QuickPhone:
134
+ case ini_1.EAccountFrom.Apple:
135
+ case ini_1.EAccountFrom.Google:
136
+ {
137
+ account = await this.add(unionid, openid, ip, from);
138
+ break;
139
+ }
140
+ default:
141
+ {
142
+ rs.errcode = _error_1.EErrorCode.No_Account;
143
+ return rs;
144
+ }
145
+ }
146
+ }
147
+ if (!account) {
148
+ rs.errcode = _error_1.EErrorCode.No_Account;
149
+ return rs;
150
+ }
151
+ if (force_user) {
152
+ let userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
153
+ let user = await userser.getByAccountId(account.id);
154
+ if (!user) {
155
+ switch (from) {
156
+ case ini_1.EAccountFrom.QQ:
157
+ case ini_1.EAccountFrom.WeChat:
158
+ case ini_1.EAccountFrom.Apple:
159
+ case ini_1.EAccountFrom.Google:
160
+ {
161
+ if (!extra_info) {
162
+ if (from == ini_1.EAccountFrom.QQ) {
163
+ let userInfo = await QQTool_1.gQQTool.getUserInfo(access_token, openid);
164
+ if (!userInfo) {
165
+ rs.errcode = _error_1.EErrorCode.Server_Error;
166
+ return rs;
167
+ }
168
+ extra_info =
169
+ {
170
+ logo: userInfo.figureurl_qq,
171
+ sex: (userInfo.gender == "男" ? 1 : 0),
172
+ nickname: userInfo.nickname
173
+ };
174
+ }
175
+ else if (from == ini_1.EAccountFrom.WeChat) {
176
+ let userInfo = await WechatTool_1.gWechatTool.getUserInfo(access_token, openid);
177
+ if (userInfo.errcode) {
178
+ rs.errcode = _error_1.EErrorCode.Server_Error;
179
+ return rs;
180
+ }
181
+ extra_info =
182
+ {
183
+ logo: userInfo.headimgurl,
184
+ sex: (userInfo.sex == 1 ? 1 : 0),
185
+ nickname: userInfo.nickname
186
+ };
187
+ }
188
+ else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
189
+ extra_info =
190
+ {
191
+ logo: "32",
192
+ sex: 0,
193
+ nickname: "noname"
194
+ };
195
+ }
196
+ }
197
+ let user = await userser.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
198
+ if (!user) {
199
+ this.deleteOne({ id: account.id });
200
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
201
+ return rs;
202
+ }
203
+ break;
204
+ }
205
+ case ini_1.EAccountFrom.QuickPhone:
206
+ case ini_1.EAccountFrom.Guest:
207
+ {
208
+ let user = null;
209
+ if (extra_info) {
210
+ user = await userser.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
211
+ }
212
+ else {
213
+ user = await userser.add(account.id, null, null, null);
214
+ }
215
+ if (!user) {
216
+ this.deleteOne({ id: account.id });
217
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
218
+ return rs;
219
+ }
220
+ break;
221
+ }
222
+ default:
223
+ {
224
+ rs.errcode = _error_1.EErrorCode.No_Account;
225
+ return rs;
226
+ }
227
+ }
228
+ rs.is_new = true;
229
+ }
230
+ }
231
+ account.login_time = Date.now();
232
+ account.login_ip = ip;
233
+ this.updateOne({ id: account.id }, { login_time: account.login_time, login_ip: account.login_ip });
234
+ rs.account = account;
235
+ return rs;
236
+ }
237
+ async _login(unionid, openid, from) {
238
+ unionid += "";
239
+ openid += "";
240
+ let rs = { errcode: null, account: null };
241
+ if (from == ini_1.EAccountFrom.QQ
242
+ || from == ini_1.EAccountFrom.WeChat
243
+ || from == ini_1.EAccountFrom.Apple
244
+ || from == ini_1.EAccountFrom.Google) {
245
+ rs.account = await this.getByThird(unionid, openid);
246
+ }
247
+ else if (from == ini_1.EAccountFrom.QuickPhone) {
248
+ let key = "phone_code_" + unionid;
249
+ let code = CacheTool_1.gCacheTool.get(key);
250
+ if (!code || code != openid) {
251
+ rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
252
+ return rs;
253
+ }
254
+ rs.account = await this.getByPhone(unionid);
255
+ }
256
+ else if (from == ini_1.EAccountFrom.Phone) {
257
+ rs.account = await this.findOne({ phone: unionid, password: openid });
258
+ if (!rs.account) {
259
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
260
+ }
261
+ }
262
+ else if (from == ini_1.EAccountFrom.Email) {
263
+ rs.account = await this.findOne({ email: unionid, password: openid });
264
+ if (!rs.account) {
265
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
266
+ }
267
+ }
268
+ else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
269
+ rs.account = await this.findOne({ name: unionid, password: openid });
270
+ if (!rs.account && from == ini_1.EAccountFrom.Name) {
271
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
272
+ }
273
+ }
274
+ return rs;
275
+ }
276
+ async register(type, key, password, ip, extra) {
277
+ let rs = { user: null, errcode: null };
278
+ extra = extra || {};
279
+ let am = new this._t_type();
280
+ switch (type) {
281
+ case ini_1.EAccountFrom.Phone:
282
+ {
283
+ am.phone = key;
284
+ let temp = await this.findOne({ phone: key }, { id: 1 });
285
+ if (temp) {
286
+ rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
287
+ return rs;
288
+ }
289
+ break;
290
+ }
291
+ case ini_1.EAccountFrom.Email:
292
+ {
293
+ am.email = key;
294
+ let temp = await this.findOne({ email: key }, { id: 1 });
295
+ if (temp) {
296
+ rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
297
+ return rs;
298
+ }
299
+ break;
300
+ }
301
+ case ini_1.EAccountFrom.Name:
302
+ {
303
+ am.name = key;
304
+ let temp = await this.findOne({ name: key }, { id: 1 });
305
+ if (temp) {
306
+ rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
307
+ return rs;
308
+ }
309
+ break;
310
+ }
311
+ default:
312
+ {
313
+ rs.errcode = _error_1.EErrorCode.Account_Type_Error;
314
+ return rs;
315
+ }
316
+ }
317
+ am.password = password;
318
+ am.create_time = Date.now();
319
+ am.create_ip = ip;
320
+ am.login_time = Date.now();
321
+ am.login_ip = ip;
322
+ am.id = await this.getNextId();
323
+ let rs_am = await this.insert(am);
324
+ if (!rs_am.rs.insertedId) {
325
+ rs.errcode = _error_1.EErrorCode.Mysql_Error;
326
+ return rs;
327
+ }
328
+ let userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
329
+ let user = await userser.add(am.id, extra.nickname, extra.sex, extra.logo);
330
+ if (!user) {
331
+ this.deleteOne({ id: am.id });
332
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
333
+ return rs;
334
+ }
335
+ rs.user = user;
336
+ return rs;
337
+ }
338
+ }
339
+ exports.MongoAccountService = MongoAccountService;