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