cgserver 8.6.7 → 8.6.10

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 (160) hide show
  1. package/README.md +4 -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 +307 -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 +53 -53
  9. package/dist/lib/Framework/Config/DbConfig.js +14 -0
  10. package/dist/lib/Framework/Config/FrameworkConfig.js +207 -240
  11. package/dist/lib/Framework/Config/IServerConfig.js +26 -26
  12. package/dist/lib/Framework/Config/_error_.js +35 -35
  13. package/dist/lib/Framework/Core/Core.js +639 -639
  14. package/dist/lib/Framework/Core/Timer.js +116 -116
  15. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -11
  16. package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -64
  17. package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -11
  18. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -11
  19. package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
  20. package/dist/lib/Framework/Database/Decorator/Table.js +15 -15
  21. package/dist/lib/Framework/Database/Decorator/Type.js +20 -20
  22. package/dist/lib/Framework/Database/MSSqlManager.js +53 -43
  23. package/dist/lib/Framework/Database/MongoBaseService.js +117 -117
  24. package/dist/lib/Framework/Database/MongoManager.js +462 -462
  25. package/dist/lib/Framework/Database/MysqlBaseService.js +281 -281
  26. package/dist/lib/Framework/Database/MysqlManager.js +179 -180
  27. package/dist/lib/Framework/Database/RedisManager.js +61 -53
  28. package/dist/lib/Framework/Decorator/AdminValidate.js +19 -19
  29. package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
  30. package/dist/lib/Framework/Decorator/CreatorValidate.js +19 -19
  31. package/dist/lib/Framework/Decorator/JsonAdminValidate.js +15 -15
  32. package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
  33. package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +19 -19
  34. package/dist/lib/Framework/Decorator/SyncCall.js +42 -42
  35. package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
  36. package/dist/lib/Framework/Logic/CacheTool.js +73 -73
  37. package/dist/lib/Framework/Logic/EventTool.js +27 -27
  38. package/dist/lib/Framework/Logic/HttpTool.js +75 -75
  39. package/dist/lib/Framework/Logic/Log.js +140 -140
  40. package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -43
  41. package/dist/lib/Framework/Service/MongoAccountService.js +367 -367
  42. package/dist/lib/Framework/Service/MongoCacheService.js +42 -42
  43. package/dist/lib/Framework/Service/MongoUserService.js +100 -100
  44. package/dist/lib/Framework/Service/MysqlAccountService.js +441 -441
  45. package/dist/lib/Framework/Service/MysqlUserService.js +171 -171
  46. package/dist/lib/Framework/Service/ini.js +36 -36
  47. package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -44
  48. package/dist/lib/Framework/SocketServer/IRpc.js +12 -12
  49. package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -63
  50. package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -63
  51. package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -75
  52. package/dist/lib/Framework/SocketServer/ISocketServer.js +205 -202
  53. package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -195
  54. package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -57
  55. package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -8
  56. package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -29
  57. package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -31
  58. package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -203
  59. package/dist/lib/Framework/ThirdParty/Alisms.js +46 -46
  60. package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -234
  61. package/dist/lib/Framework/ThirdParty/CgMq.js +132 -132
  62. package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -33
  63. package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -32
  64. package/dist/lib/Framework/ThirdParty/QQTool.js +118 -118
  65. package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -21
  66. package/dist/lib/Framework/ThirdParty/Rpc.js +63 -63
  67. package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -61
  68. package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -74
  69. package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -112
  70. package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -169
  71. package/dist/lib/Framework/WebServer/Controller/MysqlBaseUserController.js +169 -169
  72. package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -112
  73. package/dist/lib/Framework/WebServer/Engine/Engine.js +152 -153
  74. package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -544
  75. package/dist/lib/Framework/WebServer/Engine/Request.js +237 -237
  76. package/dist/lib/Framework/WebServer/Engine/Response.js +100 -100
  77. package/dist/lib/Framework/WebServer/IWebServer.js +59 -54
  78. package/dist/lib/Framework/cgserver.js +121 -111
  79. package/dist/lib/Framework/index.js +201 -191
  80. package/dist/lib/test/test.js +21 -21
  81. package/dist/types/Framework/AI/AiObject.d.ts +5 -5
  82. package/dist/types/Framework/AI/Astar.d.ts +38 -38
  83. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
  84. package/dist/types/Framework/AI/Entity.d.ts +12 -12
  85. package/dist/types/Framework/AI/Point.d.ts +17 -17
  86. package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -52
  87. package/dist/types/Framework/Config/Config.d.ts +12 -12
  88. package/dist/types/Framework/Config/DbConfig.d.ts +10 -0
  89. package/dist/types/Framework/Config/FrameworkConfig.d.ts +203 -228
  90. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
  91. package/dist/types/Framework/Config/_error_.d.ts +99 -99
  92. package/dist/types/Framework/Core/Core.d.ts +108 -108
  93. package/dist/types/Framework/Core/Timer.d.ts +16 -16
  94. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
  95. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -23
  96. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
  97. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
  98. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
  99. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
  100. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
  101. package/dist/types/Framework/Database/MSSqlManager.d.ts +27 -17
  102. package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -81
  103. package/dist/types/Framework/Database/MongoManager.d.ts +156 -156
  104. package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -34
  105. package/dist/types/Framework/Database/MysqlManager.d.ts +53 -41
  106. package/dist/types/Framework/Database/RedisManager.d.ts +24 -17
  107. package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
  108. package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
  109. package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
  110. package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
  111. package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
  112. package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
  113. package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
  114. package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
  115. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
  116. package/dist/types/Framework/Logic/EventTool.d.ts +13 -13
  117. package/dist/types/Framework/Logic/HttpTool.d.ts +15 -15
  118. package/dist/types/Framework/Logic/Log.d.ts +25 -25
  119. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
  120. package/dist/types/Framework/Service/MongoAccountService.d.ts +69 -69
  121. package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -14
  122. package/dist/types/Framework/Service/MongoUserService.d.ts +35 -35
  123. package/dist/types/Framework/Service/MysqlAccountService.d.ts +74 -74
  124. package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
  125. package/dist/types/Framework/Service/ini.d.ts +29 -29
  126. package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -17
  127. package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -8
  128. package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -16
  129. package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -16
  130. package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -28
  131. package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -45
  132. package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -60
  133. package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
  134. package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -9
  135. package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -6
  136. package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -8
  137. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -109
  138. package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -14
  139. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
  140. package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -51
  141. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -5
  142. package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -7
  143. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
  144. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -6
  145. package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -20
  146. package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -13
  147. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -20
  148. package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -33
  149. package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -27
  150. package/dist/types/Framework/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
  151. package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -35
  152. package/dist/types/Framework/WebServer/Engine/Engine.d.ts +21 -21
  153. package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -21
  154. package/dist/types/Framework/WebServer/Engine/Request.d.ts +35 -35
  155. package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -30
  156. package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -20
  157. package/dist/types/Framework/cgserver.d.ts +27 -25
  158. package/dist/types/Framework/index.d.ts +91 -86
  159. package/dist/types/test/test.d.ts +1 -1
  160. package/package.json +29 -32
@@ -1,441 +1,441 @@
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.MysqlAccountService = exports.MysqlAccountModel = void 0;
10
- const Property_1 = require("../Database/Decorator/Property");
11
- const MysqlBaseService_1 = require("../Database/MysqlBaseService");
12
- const CacheTool_1 = require("../Logic/CacheTool");
13
- const _error_1 = require("../Config/_error_");
14
- const OpenSocial_1 = require("../ThirdParty/OpenSocial");
15
- const MysqlUserService_1 = require("./MysqlUserService");
16
- const QQTool_1 = require("../ThirdParty/QQTool");
17
- const WechatTool_1 = require("../ThirdParty/WechatTool");
18
- const Table_1 = require("../Database/Decorator/Table");
19
- const PrimaryKey_1 = require("../Database/Decorator/PrimaryKey");
20
- const NotNull_1 = require("../Database/Decorator/NotNull");
21
- const Type_1 = require("../Database/Decorator/Type");
22
- const AutoIncrement_1 = require("../Database/Decorator/AutoIncrement");
23
- const ini_1 = require("./ini");
24
- let MysqlAccountModel = class MysqlAccountModel extends MysqlBaseService_1.BaseModel {
25
- id = -1;
26
- phone = "";
27
- email = "";
28
- name = "";
29
- password = "";
30
- /**
31
- * 微信、QQ、OpenSocial、Apple、Google等三方登录的唯一标识
32
- */
33
- unionid = "";
34
- /**
35
- * 微信、QQ、OpenSocial、Apple、Google等三方登录的唯一标识
36
- */
37
- openid = "";
38
- create_time = -1;
39
- create_ip = "";
40
- login_time = -1;
41
- login_ip = "";
42
- from = 0;
43
- state = ini_1.EAccountState.Waitting;
44
- };
45
- __decorate([
46
- (0, Type_1.Type)(Property_1.EPropertyType.Int),
47
- NotNull_1.NotNull,
48
- PrimaryKey_1.PrimaryKey,
49
- AutoIncrement_1.AutoIncrement
50
- ], MysqlAccountModel.prototype, "id", void 0);
51
- __decorate([
52
- NotNull_1.NotNull,
53
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
54
- ], MysqlAccountModel.prototype, "phone", void 0);
55
- __decorate([
56
- NotNull_1.NotNull,
57
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
58
- ], MysqlAccountModel.prototype, "email", void 0);
59
- __decorate([
60
- NotNull_1.NotNull,
61
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
62
- ], MysqlAccountModel.prototype, "name", void 0);
63
- __decorate([
64
- NotNull_1.NotNull,
65
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
66
- ], MysqlAccountModel.prototype, "password", void 0);
67
- __decorate([
68
- NotNull_1.NotNull,
69
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
70
- ], MysqlAccountModel.prototype, "unionid", void 0);
71
- __decorate([
72
- NotNull_1.NotNull,
73
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
74
- ], MysqlAccountModel.prototype, "openid", void 0);
75
- __decorate([
76
- NotNull_1.NotNull,
77
- (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
78
- ], MysqlAccountModel.prototype, "create_time", void 0);
79
- __decorate([
80
- NotNull_1.NotNull,
81
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
82
- ], MysqlAccountModel.prototype, "create_ip", void 0);
83
- __decorate([
84
- NotNull_1.NotNull,
85
- (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
86
- ], MysqlAccountModel.prototype, "login_time", void 0);
87
- __decorate([
88
- NotNull_1.NotNull,
89
- (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
90
- ], MysqlAccountModel.prototype, "login_ip", void 0);
91
- __decorate([
92
- NotNull_1.NotNull,
93
- (0, Type_1.Type)(Property_1.EPropertyType.Int)
94
- ], MysqlAccountModel.prototype, "from", void 0);
95
- __decorate([
96
- NotNull_1.NotNull,
97
- (0, Type_1.Type)(Property_1.EPropertyType.Int)
98
- ], MysqlAccountModel.prototype, "state", void 0);
99
- MysqlAccountModel = __decorate([
100
- (0, Table_1.Table)("account", 1, "账号")
101
- ], MysqlAccountModel);
102
- exports.MysqlAccountModel = MysqlAccountModel;
103
- //暂时不实例化,方便重写
104
- class MysqlAccountService extends MysqlBaseService_1.MysqlBaseService {
105
- /**
106
- * 注册新账号
107
- * @param unionid
108
- * @param openid
109
- * @param ip
110
- * @param from
111
- */
112
- async add(unionid, openid, ip, from) {
113
- let account = new this._t_type();
114
- switch (from) {
115
- case ini_1.EAccountFrom.OpenSocial:
116
- case ini_1.EAccountFrom.WeChat:
117
- case ini_1.EAccountFrom.QQ:
118
- case ini_1.EAccountFrom.Apple:
119
- case ini_1.EAccountFrom.Google:
120
- {
121
- account.unionid = unionid;
122
- account.openid = openid;
123
- break;
124
- }
125
- case ini_1.EAccountFrom.Email:
126
- {
127
- account.email = unionid;
128
- account.password = openid;
129
- break;
130
- }
131
- case ini_1.EAccountFrom.Phone:
132
- case ini_1.EAccountFrom.QuickPhone:
133
- {
134
- account.phone = unionid;
135
- account.password = openid;
136
- break;
137
- }
138
- case ini_1.EAccountFrom.Name:
139
- case ini_1.EAccountFrom.Guest:
140
- {
141
- account.name = unionid;
142
- account.password = openid;
143
- break;
144
- }
145
- }
146
- account.create_time = Date.now();
147
- account.create_ip = ip;
148
- account.login_time = Date.now();
149
- account.login_ip = ip;
150
- account.from = from;
151
- account.state = ini_1.EAccountState.Waitting;
152
- delete account.id;
153
- let sr = await this.insert(account);
154
- if (sr.error
155
- || !sr.results.insertId) {
156
- return null;
157
- }
158
- account.id = sr.results.insertId;
159
- return account;
160
- }
161
- /**
162
- * 通过第三方信息获取账号
163
- * @param unionid
164
- * @param openid
165
- */
166
- async getByThird(unionid, openid) {
167
- let am = await this.get(null, "unionid=? and openid=?", [unionid, openid]);
168
- return am;
169
- }
170
- /**
171
- * 通过第三方信息获取账号
172
- * @param unionid
173
- */
174
- async getByUnionid(unionid) {
175
- let am = await this.get(null, "unionid=?", [unionid]);
176
- return am;
177
- }
178
- async getByPhone(phone) {
179
- let am = await this.get(null, "phone=?", [phone]);
180
- return am;
181
- }
182
- /**
183
- * 登陆接口
184
- * @param unionid
185
- * @param openid
186
- * @param ip
187
- * @param from
188
- * @param access_token qq、wechat使用
189
- */
190
- async login(unionid, openid, ip, from, force_user = true, access_token) {
191
- let rs = { errcode: null, account: null, is_new: false };
192
- if (!unionid || !openid) {
193
- rs.errcode = _error_1.EErrorCode.Wrong_Params;
194
- return rs;
195
- }
196
- let login_rs = await this._login(unionid, openid, from);
197
- rs.account = login_rs.account;
198
- rs.errcode = login_rs.errcode;
199
- if (rs.errcode) {
200
- return rs;
201
- }
202
- let account = rs.account;
203
- let extra_info = {};
204
- if (!account) {
205
- switch (from) {
206
- case ini_1.EAccountFrom.OpenSocial:
207
- case ini_1.EAccountFrom.QQ:
208
- case ini_1.EAccountFrom.WeChat:
209
- case ini_1.EAccountFrom.Guest:
210
- case ini_1.EAccountFrom.QuickPhone:
211
- case ini_1.EAccountFrom.Apple:
212
- case ini_1.EAccountFrom.Google:
213
- {
214
- account = await this.add(unionid, openid, ip, from);
215
- break;
216
- }
217
- default:
218
- {
219
- rs.errcode = _error_1.EErrorCode.No_Account;
220
- return rs;
221
- }
222
- }
223
- }
224
- if (!account) {
225
- rs.errcode = _error_1.EErrorCode.No_Account;
226
- return rs;
227
- }
228
- if (force_user) {
229
- let user = await MysqlUserService_1.GUserSer.getByAccountId(account.id);
230
- if (!user) {
231
- switch (from) {
232
- case ini_1.EAccountFrom.OpenSocial:
233
- case ini_1.EAccountFrom.QQ:
234
- case ini_1.EAccountFrom.WeChat:
235
- case ini_1.EAccountFrom.Apple:
236
- case ini_1.EAccountFrom.Google:
237
- {
238
- if (!extra_info) {
239
- if (from == ini_1.EAccountFrom.OpenSocial) {
240
- let body = await OpenSocial_1.GOpenSocial.getUser(unionid, openid);
241
- if (body && body.errcode) {
242
- rs.errcode = body.errcode;
243
- return rs;
244
- }
245
- else if (body && body.user) {
246
- extra_info =
247
- {
248
- logo: body.user.logo,
249
- sex: body.user.sex,
250
- nickname: body.user.nickname
251
- };
252
- }
253
- }
254
- else if (from == ini_1.EAccountFrom.QQ) {
255
- let userInfo = await QQTool_1.GQQTool.getUserInfo(access_token, openid);
256
- if (userInfo.ret) {
257
- rs.errcode = _error_1.EErrorCode.Server_Error;
258
- return rs;
259
- }
260
- extra_info =
261
- {
262
- logo: userInfo.figureurl_qq,
263
- sex: (userInfo.gender == "男" ? 1 : 0),
264
- nickname: userInfo.nickname
265
- };
266
- }
267
- else if (from == ini_1.EAccountFrom.WeChat) {
268
- let userInfo = await WechatTool_1.GWechatTool.getUserInfo(access_token, openid);
269
- if (userInfo.errcode) {
270
- rs.errcode = _error_1.EErrorCode.Server_Error;
271
- return rs;
272
- }
273
- extra_info =
274
- {
275
- logo: userInfo.headimgurl,
276
- sex: (userInfo.sex == 1 ? 1 : 0),
277
- nickname: userInfo.nickname
278
- };
279
- }
280
- else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
281
- extra_info =
282
- {
283
- logo: "32",
284
- sex: 0,
285
- nickname: "noname"
286
- };
287
- }
288
- }
289
- let user = await MysqlUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
290
- if (!user) {
291
- this.removeById(account.id);
292
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
293
- return rs;
294
- }
295
- break;
296
- }
297
- case ini_1.EAccountFrom.QuickPhone:
298
- case ini_1.EAccountFrom.Guest:
299
- {
300
- let user = null;
301
- if (extra_info) {
302
- user = await MysqlUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
303
- }
304
- else {
305
- user = await MysqlUserService_1.GUserSer.add(account.id, null, null, null);
306
- }
307
- if (!user) {
308
- this.removeById(account.id);
309
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
310
- return rs;
311
- }
312
- break;
313
- }
314
- default:
315
- {
316
- rs.errcode = _error_1.EErrorCode.No_Account;
317
- return rs;
318
- }
319
- }
320
- rs.is_new = true;
321
- }
322
- }
323
- rs.account = account;
324
- return rs;
325
- }
326
- async _login(unionid, openid, from) {
327
- let rs = { errcode: null, account: null };
328
- if (from == ini_1.EAccountFrom.QQ
329
- || from == ini_1.EAccountFrom.WeChat
330
- || from == ini_1.EAccountFrom.OpenSocial
331
- || from == ini_1.EAccountFrom.Apple
332
- || from == ini_1.EAccountFrom.Google) {
333
- rs.account = await this.getByThird(unionid, openid);
334
- }
335
- else if (from == ini_1.EAccountFrom.QuickPhone) {
336
- let key = "phone_code_" + unionid;
337
- let code = CacheTool_1.GCacheTool.get(key);
338
- if (!code || code != openid) {
339
- rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
340
- return rs;
341
- }
342
- rs.account = await this.getByPhone(unionid);
343
- }
344
- else if (from == ini_1.EAccountFrom.Phone) {
345
- rs.account = await this.get(null, "phone=? and password=?", [unionid, openid]);
346
- if (!rs.account) {
347
- rs.errcode = _error_1.EErrorCode.Login_Failed;
348
- }
349
- }
350
- else if (from == ini_1.EAccountFrom.Email) {
351
- rs.account = await this.get(null, "email=? and password=?", [unionid, openid]);
352
- if (!rs.account) {
353
- rs.errcode = _error_1.EErrorCode.Login_Failed;
354
- }
355
- }
356
- else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
357
- rs.account = await this.get(null, "name=? and password=?", [unionid, openid]);
358
- if (!rs.account && from == ini_1.EAccountFrom.Name) {
359
- rs.errcode = _error_1.EErrorCode.Login_Failed;
360
- }
361
- }
362
- return rs;
363
- }
364
- /**
365
- * 修改密码
366
- * @param unionid
367
- * @param openid
368
- * @param new_pwd
369
- */
370
- async updatePwd(unionid, openid, new_pwd) {
371
- let rs = await OpenSocial_1.GOpenSocial.updatePwd(unionid, openid, new_pwd);
372
- return rs;
373
- }
374
- async register(type, key, password, ip, extra) {
375
- let rs = { user: null, errcode: null };
376
- extra = extra || {};
377
- let am = new this._t_type();
378
- switch (type) {
379
- case ini_1.EAccountFrom.Phone:
380
- {
381
- am.phone = key;
382
- let temp = await this.get("id", "phone=?", [key]);
383
- if (temp) {
384
- rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
385
- return rs;
386
- }
387
- break;
388
- }
389
- case ini_1.EAccountFrom.Email:
390
- {
391
- am.email = key;
392
- let temp = await this.get("id", "email=?", [key]);
393
- if (temp) {
394
- rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
395
- return rs;
396
- }
397
- break;
398
- }
399
- case ini_1.EAccountFrom.Name:
400
- {
401
- am.name = key;
402
- let temp = await this.get("id", "name=?", [key]);
403
- if (temp) {
404
- rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
405
- return rs;
406
- }
407
- break;
408
- }
409
- default:
410
- {
411
- rs.errcode = _error_1.EErrorCode.Account_Type_Error;
412
- return rs;
413
- }
414
- }
415
- am.password = password;
416
- am.create_time = Date.now();
417
- am.create_ip = ip;
418
- am.login_time = Date.now();
419
- am.login_ip = ip;
420
- let sr = await this.insert(am);
421
- if (sr.results.insertId) {
422
- am.id = sr.results.insertId;
423
- }
424
- else {
425
- am = null;
426
- }
427
- if (!am) {
428
- rs.errcode = _error_1.EErrorCode.Mysql_Error;
429
- return rs;
430
- }
431
- let user = await MysqlUserService_1.GUserSer.add(am.id, extra.nickname, extra.sex, extra.logo);
432
- if (!user) {
433
- this.removeById(am.id);
434
- rs.errcode = _error_1.EErrorCode.User_Create_Failed;
435
- return rs;
436
- }
437
- rs.user = user;
438
- return rs;
439
- }
440
- }
441
- exports.MysqlAccountService = MysqlAccountService;
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.MysqlAccountService = exports.MysqlAccountModel = void 0;
10
+ const Property_1 = require("../Database/Decorator/Property");
11
+ const MysqlBaseService_1 = require("../Database/MysqlBaseService");
12
+ const CacheTool_1 = require("../Logic/CacheTool");
13
+ const _error_1 = require("../Config/_error_");
14
+ const OpenSocial_1 = require("../ThirdParty/OpenSocial");
15
+ const MysqlUserService_1 = require("./MysqlUserService");
16
+ const QQTool_1 = require("../ThirdParty/QQTool");
17
+ const WechatTool_1 = require("../ThirdParty/WechatTool");
18
+ const Table_1 = require("../Database/Decorator/Table");
19
+ const PrimaryKey_1 = require("../Database/Decorator/PrimaryKey");
20
+ const NotNull_1 = require("../Database/Decorator/NotNull");
21
+ const Type_1 = require("../Database/Decorator/Type");
22
+ const AutoIncrement_1 = require("../Database/Decorator/AutoIncrement");
23
+ const ini_1 = require("./ini");
24
+ let MysqlAccountModel = class MysqlAccountModel extends MysqlBaseService_1.BaseModel {
25
+ id = -1;
26
+ phone = "";
27
+ email = "";
28
+ name = "";
29
+ password = "";
30
+ /**
31
+ * 微信、QQ、OpenSocial、Apple、Google等三方登录的唯一标识
32
+ */
33
+ unionid = "";
34
+ /**
35
+ * 微信、QQ、OpenSocial、Apple、Google等三方登录的唯一标识
36
+ */
37
+ openid = "";
38
+ create_time = -1;
39
+ create_ip = "";
40
+ login_time = -1;
41
+ login_ip = "";
42
+ from = 0;
43
+ state = ini_1.EAccountState.Waitting;
44
+ };
45
+ exports.MysqlAccountModel = MysqlAccountModel;
46
+ __decorate([
47
+ (0, Type_1.Type)(Property_1.EPropertyType.Int),
48
+ NotNull_1.NotNull,
49
+ PrimaryKey_1.PrimaryKey,
50
+ AutoIncrement_1.AutoIncrement
51
+ ], MysqlAccountModel.prototype, "id", void 0);
52
+ __decorate([
53
+ NotNull_1.NotNull,
54
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
55
+ ], MysqlAccountModel.prototype, "phone", void 0);
56
+ __decorate([
57
+ NotNull_1.NotNull,
58
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
59
+ ], MysqlAccountModel.prototype, "email", void 0);
60
+ __decorate([
61
+ NotNull_1.NotNull,
62
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
63
+ ], MysqlAccountModel.prototype, "name", void 0);
64
+ __decorate([
65
+ NotNull_1.NotNull,
66
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
67
+ ], MysqlAccountModel.prototype, "password", void 0);
68
+ __decorate([
69
+ NotNull_1.NotNull,
70
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
71
+ ], MysqlAccountModel.prototype, "unionid", void 0);
72
+ __decorate([
73
+ NotNull_1.NotNull,
74
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
75
+ ], MysqlAccountModel.prototype, "openid", void 0);
76
+ __decorate([
77
+ NotNull_1.NotNull,
78
+ (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
79
+ ], MysqlAccountModel.prototype, "create_time", void 0);
80
+ __decorate([
81
+ NotNull_1.NotNull,
82
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
83
+ ], MysqlAccountModel.prototype, "create_ip", void 0);
84
+ __decorate([
85
+ NotNull_1.NotNull,
86
+ (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
87
+ ], MysqlAccountModel.prototype, "login_time", void 0);
88
+ __decorate([
89
+ NotNull_1.NotNull,
90
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
91
+ ], MysqlAccountModel.prototype, "login_ip", void 0);
92
+ __decorate([
93
+ NotNull_1.NotNull,
94
+ (0, Type_1.Type)(Property_1.EPropertyType.Int)
95
+ ], MysqlAccountModel.prototype, "from", void 0);
96
+ __decorate([
97
+ NotNull_1.NotNull,
98
+ (0, Type_1.Type)(Property_1.EPropertyType.Int)
99
+ ], MysqlAccountModel.prototype, "state", void 0);
100
+ exports.MysqlAccountModel = MysqlAccountModel = __decorate([
101
+ (0, Table_1.Table)("account", 1, "账号")
102
+ ], MysqlAccountModel);
103
+ //暂时不实例化,方便重写
104
+ class MysqlAccountService extends MysqlBaseService_1.MysqlBaseService {
105
+ /**
106
+ * 注册新账号
107
+ * @param unionid
108
+ * @param openid
109
+ * @param ip
110
+ * @param from
111
+ */
112
+ async add(unionid, openid, ip, from) {
113
+ let account = new this._t_type();
114
+ switch (from) {
115
+ case ini_1.EAccountFrom.OpenSocial:
116
+ case ini_1.EAccountFrom.WeChat:
117
+ case ini_1.EAccountFrom.QQ:
118
+ case ini_1.EAccountFrom.Apple:
119
+ case ini_1.EAccountFrom.Google:
120
+ {
121
+ account.unionid = unionid;
122
+ account.openid = openid;
123
+ break;
124
+ }
125
+ case ini_1.EAccountFrom.Email:
126
+ {
127
+ account.email = unionid;
128
+ account.password = openid;
129
+ break;
130
+ }
131
+ case ini_1.EAccountFrom.Phone:
132
+ case ini_1.EAccountFrom.QuickPhone:
133
+ {
134
+ account.phone = unionid;
135
+ account.password = openid;
136
+ break;
137
+ }
138
+ case ini_1.EAccountFrom.Name:
139
+ case ini_1.EAccountFrom.Guest:
140
+ {
141
+ account.name = unionid;
142
+ account.password = openid;
143
+ break;
144
+ }
145
+ }
146
+ account.create_time = Date.now();
147
+ account.create_ip = ip;
148
+ account.login_time = Date.now();
149
+ account.login_ip = ip;
150
+ account.from = from;
151
+ account.state = ini_1.EAccountState.Waitting;
152
+ delete account.id;
153
+ let sr = await this.insert(account);
154
+ if (sr.error
155
+ || !sr.results.insertId) {
156
+ return null;
157
+ }
158
+ account.id = sr.results.insertId;
159
+ return account;
160
+ }
161
+ /**
162
+ * 通过第三方信息获取账号
163
+ * @param unionid
164
+ * @param openid
165
+ */
166
+ async getByThird(unionid, openid) {
167
+ let am = await this.get(null, "unionid=? and openid=?", [unionid, openid]);
168
+ return am;
169
+ }
170
+ /**
171
+ * 通过第三方信息获取账号
172
+ * @param unionid
173
+ */
174
+ async getByUnionid(unionid) {
175
+ let am = await this.get(null, "unionid=?", [unionid]);
176
+ return am;
177
+ }
178
+ async getByPhone(phone) {
179
+ let am = await this.get(null, "phone=?", [phone]);
180
+ return am;
181
+ }
182
+ /**
183
+ * 登陆接口
184
+ * @param unionid
185
+ * @param openid
186
+ * @param ip
187
+ * @param from
188
+ * @param access_token qq、wechat使用
189
+ */
190
+ async login(unionid, openid, ip, from, force_user = true, access_token) {
191
+ let rs = { errcode: null, account: null, is_new: false };
192
+ if (!unionid || !openid) {
193
+ rs.errcode = _error_1.EErrorCode.Wrong_Params;
194
+ return rs;
195
+ }
196
+ let login_rs = await this._login(unionid, openid, from);
197
+ rs.account = login_rs.account;
198
+ rs.errcode = login_rs.errcode;
199
+ if (rs.errcode) {
200
+ return rs;
201
+ }
202
+ let account = rs.account;
203
+ let extra_info = {};
204
+ if (!account) {
205
+ switch (from) {
206
+ case ini_1.EAccountFrom.OpenSocial:
207
+ case ini_1.EAccountFrom.QQ:
208
+ case ini_1.EAccountFrom.WeChat:
209
+ case ini_1.EAccountFrom.Guest:
210
+ case ini_1.EAccountFrom.QuickPhone:
211
+ case ini_1.EAccountFrom.Apple:
212
+ case ini_1.EAccountFrom.Google:
213
+ {
214
+ account = await this.add(unionid, openid, ip, from);
215
+ break;
216
+ }
217
+ default:
218
+ {
219
+ rs.errcode = _error_1.EErrorCode.No_Account;
220
+ return rs;
221
+ }
222
+ }
223
+ }
224
+ if (!account) {
225
+ rs.errcode = _error_1.EErrorCode.No_Account;
226
+ return rs;
227
+ }
228
+ if (force_user) {
229
+ let user = await MysqlUserService_1.GUserSer.getByAccountId(account.id);
230
+ if (!user) {
231
+ switch (from) {
232
+ case ini_1.EAccountFrom.OpenSocial:
233
+ case ini_1.EAccountFrom.QQ:
234
+ case ini_1.EAccountFrom.WeChat:
235
+ case ini_1.EAccountFrom.Apple:
236
+ case ini_1.EAccountFrom.Google:
237
+ {
238
+ if (!extra_info) {
239
+ if (from == ini_1.EAccountFrom.OpenSocial) {
240
+ let body = await OpenSocial_1.GOpenSocial.getUser(unionid, openid);
241
+ if (body && body.errcode) {
242
+ rs.errcode = body.errcode;
243
+ return rs;
244
+ }
245
+ else if (body && body.user) {
246
+ extra_info =
247
+ {
248
+ logo: body.user.logo,
249
+ sex: body.user.sex,
250
+ nickname: body.user.nickname
251
+ };
252
+ }
253
+ }
254
+ else if (from == ini_1.EAccountFrom.QQ) {
255
+ let userInfo = await QQTool_1.GQQTool.getUserInfo(access_token, openid);
256
+ if (userInfo.ret) {
257
+ rs.errcode = _error_1.EErrorCode.Server_Error;
258
+ return rs;
259
+ }
260
+ extra_info =
261
+ {
262
+ logo: userInfo.figureurl_qq,
263
+ sex: (userInfo.gender == "男" ? 1 : 0),
264
+ nickname: userInfo.nickname
265
+ };
266
+ }
267
+ else if (from == ini_1.EAccountFrom.WeChat) {
268
+ let userInfo = await WechatTool_1.GWechatTool.getUserInfo(access_token, openid);
269
+ if (userInfo.errcode) {
270
+ rs.errcode = _error_1.EErrorCode.Server_Error;
271
+ return rs;
272
+ }
273
+ extra_info =
274
+ {
275
+ logo: userInfo.headimgurl,
276
+ sex: (userInfo.sex == 1 ? 1 : 0),
277
+ nickname: userInfo.nickname
278
+ };
279
+ }
280
+ else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
281
+ extra_info =
282
+ {
283
+ logo: "32",
284
+ sex: 0,
285
+ nickname: "noname"
286
+ };
287
+ }
288
+ }
289
+ let user = await MysqlUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
290
+ if (!user) {
291
+ this.removeById(account.id);
292
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
293
+ return rs;
294
+ }
295
+ break;
296
+ }
297
+ case ini_1.EAccountFrom.QuickPhone:
298
+ case ini_1.EAccountFrom.Guest:
299
+ {
300
+ let user = null;
301
+ if (extra_info) {
302
+ user = await MysqlUserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
303
+ }
304
+ else {
305
+ user = await MysqlUserService_1.GUserSer.add(account.id, null, null, null);
306
+ }
307
+ if (!user) {
308
+ this.removeById(account.id);
309
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
310
+ return rs;
311
+ }
312
+ break;
313
+ }
314
+ default:
315
+ {
316
+ rs.errcode = _error_1.EErrorCode.No_Account;
317
+ return rs;
318
+ }
319
+ }
320
+ rs.is_new = true;
321
+ }
322
+ }
323
+ rs.account = account;
324
+ return rs;
325
+ }
326
+ async _login(unionid, openid, from) {
327
+ let rs = { errcode: null, account: null };
328
+ if (from == ini_1.EAccountFrom.QQ
329
+ || from == ini_1.EAccountFrom.WeChat
330
+ || from == ini_1.EAccountFrom.OpenSocial
331
+ || from == ini_1.EAccountFrom.Apple
332
+ || from == ini_1.EAccountFrom.Google) {
333
+ rs.account = await this.getByThird(unionid, openid);
334
+ }
335
+ else if (from == ini_1.EAccountFrom.QuickPhone) {
336
+ let key = "phone_code_" + unionid;
337
+ let code = CacheTool_1.GCacheTool.get(key);
338
+ if (!code || code != openid) {
339
+ rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
340
+ return rs;
341
+ }
342
+ rs.account = await this.getByPhone(unionid);
343
+ }
344
+ else if (from == ini_1.EAccountFrom.Phone) {
345
+ rs.account = await this.get(null, "phone=? and password=?", [unionid, openid]);
346
+ if (!rs.account) {
347
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
348
+ }
349
+ }
350
+ else if (from == ini_1.EAccountFrom.Email) {
351
+ rs.account = await this.get(null, "email=? and password=?", [unionid, openid]);
352
+ if (!rs.account) {
353
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
354
+ }
355
+ }
356
+ else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
357
+ rs.account = await this.get(null, "name=? and password=?", [unionid, openid]);
358
+ if (!rs.account && from == ini_1.EAccountFrom.Name) {
359
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
360
+ }
361
+ }
362
+ return rs;
363
+ }
364
+ /**
365
+ * 修改密码
366
+ * @param unionid
367
+ * @param openid
368
+ * @param new_pwd
369
+ */
370
+ async updatePwd(unionid, openid, new_pwd) {
371
+ let rs = await OpenSocial_1.GOpenSocial.updatePwd(unionid, openid, new_pwd);
372
+ return rs;
373
+ }
374
+ async register(type, key, password, ip, extra) {
375
+ let rs = { user: null, errcode: null };
376
+ extra = extra || {};
377
+ let am = new this._t_type();
378
+ switch (type) {
379
+ case ini_1.EAccountFrom.Phone:
380
+ {
381
+ am.phone = key;
382
+ let temp = await this.get("id", "phone=?", [key]);
383
+ if (temp) {
384
+ rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
385
+ return rs;
386
+ }
387
+ break;
388
+ }
389
+ case ini_1.EAccountFrom.Email:
390
+ {
391
+ am.email = key;
392
+ let temp = await this.get("id", "email=?", [key]);
393
+ if (temp) {
394
+ rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
395
+ return rs;
396
+ }
397
+ break;
398
+ }
399
+ case ini_1.EAccountFrom.Name:
400
+ {
401
+ am.name = key;
402
+ let temp = await this.get("id", "name=?", [key]);
403
+ if (temp) {
404
+ rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
405
+ return rs;
406
+ }
407
+ break;
408
+ }
409
+ default:
410
+ {
411
+ rs.errcode = _error_1.EErrorCode.Account_Type_Error;
412
+ return rs;
413
+ }
414
+ }
415
+ am.password = password;
416
+ am.create_time = Date.now();
417
+ am.create_ip = ip;
418
+ am.login_time = Date.now();
419
+ am.login_ip = ip;
420
+ let sr = await this.insert(am);
421
+ if (sr.results.insertId) {
422
+ am.id = sr.results.insertId;
423
+ }
424
+ else {
425
+ am = null;
426
+ }
427
+ if (!am) {
428
+ rs.errcode = _error_1.EErrorCode.Mysql_Error;
429
+ return rs;
430
+ }
431
+ let user = await MysqlUserService_1.GUserSer.add(am.id, extra.nickname, extra.sex, extra.logo);
432
+ if (!user) {
433
+ this.removeById(am.id);
434
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
435
+ return rs;
436
+ }
437
+ rs.user = user;
438
+ return rs;
439
+ }
440
+ }
441
+ exports.MysqlAccountService = MysqlAccountService;