cgserver 5.4.12 → 5.4.15

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 (205) hide show
  1. package/lib/Framework/AI/AiObject.d.ts +5 -0
  2. package/lib/Framework/AI/AiObject.js +11 -0
  3. package/lib/Framework/AI/AiObject.js.map +1 -0
  4. package/lib/Framework/AI/Astar.d.ts +38 -0
  5. package/lib/Framework/AI/Astar.js +134 -0
  6. package/lib/Framework/AI/Astar.js.map +1 -0
  7. package/lib/Framework/AI/BehaviorAI.d.ts +24 -0
  8. package/lib/Framework/AI/BehaviorAI.js +308 -0
  9. package/lib/Framework/AI/BehaviorAI.js.map +1 -0
  10. package/lib/Framework/AI/Entity.d.ts +12 -0
  11. package/lib/Framework/AI/Entity.js +34 -0
  12. package/lib/Framework/AI/Entity.js.map +1 -0
  13. package/lib/Framework/AI/Point.d.ts +17 -0
  14. package/lib/Framework/AI/Point.js +69 -0
  15. package/lib/Framework/AI/Point.js.map +1 -0
  16. package/lib/Framework/AI/TriggerMgr.d.ts +52 -0
  17. package/lib/Framework/AI/TriggerMgr.js +202 -0
  18. package/lib/Framework/AI/TriggerMgr.js.map +1 -0
  19. package/lib/Framework/Config/Config.d.ts +7 -0
  20. package/lib/Framework/Config/Config.js +38 -0
  21. package/lib/Framework/Config/Config.js.map +1 -0
  22. package/lib/Framework/Config/FrameworkConfig.d.ts +219 -0
  23. package/lib/Framework/Config/FrameworkConfig.js +225 -0
  24. package/lib/Framework/Config/FrameworkConfig.js.map +1 -0
  25. package/lib/Framework/Config/ServerConfig.d.ts +9 -0
  26. package/lib/Framework/Config/ServerConfig.js +19 -0
  27. package/lib/Framework/Config/ServerConfig.js.map +1 -0
  28. package/lib/Framework/Config/_error_.d.ts +95 -0
  29. package/lib/Framework/Config/_error_.js +35 -0
  30. package/lib/Framework/Config/_error_.js.map +1 -0
  31. package/lib/Framework/Core/Core.d.ts +101 -0
  32. package/lib/Framework/Core/Core.js +562 -0
  33. package/lib/Framework/Core/Core.js.map +1 -0
  34. package/lib/Framework/Core/Timer.d.ts +16 -0
  35. package/lib/Framework/Core/Timer.js +117 -0
  36. package/lib/Framework/Core/Timer.js.map +1 -0
  37. package/lib/Framework/Database/BaseMongoService.d.ts +67 -0
  38. package/lib/Framework/Database/BaseMongoService.js +80 -0
  39. package/lib/Framework/Database/BaseMongoService.js.map +1 -0
  40. package/lib/Framework/Database/BaseService.d.ts +34 -0
  41. package/lib/Framework/Database/BaseService.js +282 -0
  42. package/lib/Framework/Database/BaseService.js.map +1 -0
  43. package/lib/Framework/Database/Decorator/AutoIncrement.d.ts +1 -0
  44. package/lib/Framework/Database/Decorator/AutoIncrement.js +12 -0
  45. package/lib/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
  46. package/lib/Framework/Database/Decorator/DBCache.d.ts +21 -0
  47. package/lib/Framework/Database/Decorator/DBCache.js +65 -0
  48. package/lib/Framework/Database/Decorator/DBCache.js.map +1 -0
  49. package/lib/Framework/Database/Decorator/NotNull.d.ts +1 -0
  50. package/lib/Framework/Database/Decorator/NotNull.js +12 -0
  51. package/lib/Framework/Database/Decorator/NotNull.js.map +1 -0
  52. package/lib/Framework/Database/Decorator/PrimaryKey.d.ts +1 -0
  53. package/lib/Framework/Database/Decorator/PrimaryKey.js +12 -0
  54. package/lib/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
  55. package/lib/Framework/Database/Decorator/Property.d.ts +55 -0
  56. package/lib/Framework/Database/Decorator/Property.js +62 -0
  57. package/lib/Framework/Database/Decorator/Property.js.map +1 -0
  58. package/lib/Framework/Database/Decorator/Table.d.ts +1 -0
  59. package/lib/Framework/Database/Decorator/Table.js +16 -0
  60. package/lib/Framework/Database/Decorator/Table.js.map +1 -0
  61. package/lib/Framework/Database/Decorator/Type.d.ts +1 -0
  62. package/lib/Framework/Database/Decorator/Type.js +21 -0
  63. package/lib/Framework/Database/Decorator/Type.js.map +1 -0
  64. package/lib/Framework/Database/MongoManager.d.ts +135 -0
  65. package/lib/Framework/Database/MongoManager.js +407 -0
  66. package/lib/Framework/Database/MongoManager.js.map +1 -0
  67. package/lib/Framework/Database/MysqlManager.d.ts +41 -0
  68. package/lib/Framework/Database/MysqlManager.js +181 -0
  69. package/lib/Framework/Database/MysqlManager.js.map +1 -0
  70. package/lib/Framework/Database/RedisManager.d.ts +64 -0
  71. package/lib/Framework/Database/RedisManager.js +409 -0
  72. package/lib/Framework/Database/RedisManager.js.map +1 -0
  73. package/lib/Framework/Logic/CacheTool.d.ts +25 -0
  74. package/lib/Framework/Logic/CacheTool.js +74 -0
  75. package/lib/Framework/Logic/CacheTool.js.map +1 -0
  76. package/lib/Framework/Logic/HttpTool.d.ts +14 -0
  77. package/lib/Framework/Logic/HttpTool.js +59 -0
  78. package/lib/Framework/Logic/HttpTool.js.map +1 -0
  79. package/lib/Framework/Logic/Log.d.ts +15 -0
  80. package/lib/Framework/Logic/Log.js +78 -0
  81. package/lib/Framework/Logic/Log.js.map +1 -0
  82. package/lib/Framework/Service/AccountService.d.ts +77 -0
  83. package/lib/Framework/Service/AccountService.js +474 -0
  84. package/lib/Framework/Service/AccountService.js.map +1 -0
  85. package/lib/Framework/Service/MongoAccountService.d.ts +78 -0
  86. package/lib/Framework/Service/MongoAccountService.js +397 -0
  87. package/lib/Framework/Service/MongoAccountService.js.map +1 -0
  88. package/lib/Framework/Service/MongoCacheService.d.ts +13 -0
  89. package/lib/Framework/Service/MongoCacheService.js +28 -0
  90. package/lib/Framework/Service/MongoCacheService.js.map +1 -0
  91. package/lib/Framework/Service/MongoUserService.d.ts +36 -0
  92. package/lib/Framework/Service/MongoUserService.js +94 -0
  93. package/lib/Framework/Service/MongoUserService.js.map +1 -0
  94. package/lib/Framework/Service/UserService.d.ts +36 -0
  95. package/lib/Framework/Service/UserService.js +185 -0
  96. package/lib/Framework/Service/UserService.js.map +1 -0
  97. package/lib/Framework/Service/ini.d.ts +28 -0
  98. package/lib/Framework/Service/ini.js +36 -0
  99. package/lib/Framework/Service/ini.js.map +1 -0
  100. package/lib/Framework/SocketServer/IClientWebSocket.d.ts +24 -0
  101. package/lib/Framework/SocketServer/IClientWebSocket.js +72 -0
  102. package/lib/Framework/SocketServer/IClientWebSocket.js.map +1 -0
  103. package/lib/Framework/SocketServer/IServerWebSocket.d.ts +13 -0
  104. package/lib/Framework/SocketServer/IServerWebSocket.js +42 -0
  105. package/lib/Framework/SocketServer/IServerWebSocket.js.map +1 -0
  106. package/lib/Framework/SocketServer/ISocket.d.ts +44 -0
  107. package/lib/Framework/SocketServer/ISocket.js +224 -0
  108. package/lib/Framework/SocketServer/ISocket.js.map +1 -0
  109. package/lib/Framework/SocketServer/ISocketServer.d.ts +36 -0
  110. package/lib/Framework/SocketServer/ISocketServer.js +189 -0
  111. package/lib/Framework/SocketServer/ISocketServer.js.map +1 -0
  112. package/lib/Framework/SocketServer/IWebSocket copy.d.ts +44 -0
  113. package/lib/Framework/SocketServer/IWebSocket copy.js +224 -0
  114. package/lib/Framework/SocketServer/IWebSocket copy.js.map +1 -0
  115. package/lib/Framework/SocketServer/IWebSocket.d.ts +44 -0
  116. package/lib/Framework/SocketServer/IWebSocket.js +224 -0
  117. package/lib/Framework/SocketServer/IWebSocket.js.map +1 -0
  118. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
  119. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +58 -0
  120. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
  121. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
  122. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +9 -0
  123. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
  124. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
  125. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +30 -0
  126. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
  127. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
  128. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +32 -0
  129. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
  130. package/lib/Framework/ThirdParty/AlipayTool.d.ts +40 -0
  131. package/lib/Framework/ThirdParty/AlipayTool.js +123 -0
  132. package/lib/Framework/ThirdParty/AlipayTool.js.map +1 -0
  133. package/lib/Framework/ThirdParty/Alisms.d.ts +14 -0
  134. package/lib/Framework/ThirdParty/Alisms.js +47 -0
  135. package/lib/Framework/ThirdParty/Alisms.js.map +1 -0
  136. package/lib/Framework/ThirdParty/AppleTool.d.ts +131 -0
  137. package/lib/Framework/ThirdParty/AppleTool.js +235 -0
  138. package/lib/Framework/ThirdParty/AppleTool.js.map +1 -0
  139. package/lib/Framework/ThirdParty/EmailTool.d.ts +5 -0
  140. package/lib/Framework/ThirdParty/EmailTool.js +34 -0
  141. package/lib/Framework/ThirdParty/EmailTool.js.map +1 -0
  142. package/lib/Framework/ThirdParty/OpenSocial.d.ts +7 -0
  143. package/lib/Framework/ThirdParty/OpenSocial.js +33 -0
  144. package/lib/Framework/ThirdParty/OpenSocial.js.map +1 -0
  145. package/lib/Framework/ThirdParty/QQTool.d.ts +41 -0
  146. package/lib/Framework/ThirdParty/QQTool.js +116 -0
  147. package/lib/Framework/ThirdParty/QQTool.js.map +1 -0
  148. package/lib/Framework/ThirdParty/QiniuTool.d.ts +6 -0
  149. package/lib/Framework/ThirdParty/QiniuTool.js +22 -0
  150. package/lib/Framework/ThirdParty/QiniuTool.js.map +1 -0
  151. package/lib/Framework/ThirdParty/WechatOATool.d.ts +13 -0
  152. package/lib/Framework/ThirdParty/WechatOATool.js +62 -0
  153. package/lib/Framework/ThirdParty/WechatOATool.js.map +1 -0
  154. package/lib/Framework/ThirdParty/WechatTool.d.ts +20 -0
  155. package/lib/Framework/ThirdParty/WechatTool.js +75 -0
  156. package/lib/Framework/ThirdParty/WechatTool.js.map +1 -0
  157. package/lib/Framework/WebServer/Controller/BaseController.d.ts +33 -0
  158. package/lib/Framework/WebServer/Controller/BaseController.js +113 -0
  159. package/lib/Framework/WebServer/Controller/BaseController.js.map +1 -0
  160. package/lib/Framework/WebServer/Controller/BaseUserController.d.ts +26 -0
  161. package/lib/Framework/WebServer/Controller/BaseUserController.js +169 -0
  162. package/lib/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
  163. package/lib/Framework/WebServer/Controller/MongoBaseUserController.d.ts +26 -0
  164. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -0
  165. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
  166. package/lib/Framework/WebServer/Decorator/AdminValidate.d.ts +1 -0
  167. package/lib/Framework/WebServer/Decorator/AdminValidate.js +20 -0
  168. package/lib/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
  169. package/lib/Framework/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
  170. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js +23 -0
  171. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
  172. package/lib/Framework/WebServer/Decorator/CreatorValidate.d.ts +1 -0
  173. package/lib/Framework/WebServer/Decorator/CreatorValidate.js +20 -0
  174. package/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
  175. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
  176. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +16 -0
  177. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
  178. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  179. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +21 -0
  180. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
  181. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
  182. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +20 -0
  183. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
  184. package/lib/Framework/WebServer/Engine/ControllerManager.d.ts +21 -0
  185. package/lib/Framework/WebServer/Engine/ControllerManager.js +113 -0
  186. package/lib/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
  187. package/lib/Framework/WebServer/Engine/Engine.d.ts +21 -0
  188. package/lib/Framework/WebServer/Engine/Engine.js +135 -0
  189. package/lib/Framework/WebServer/Engine/Engine.js.map +1 -0
  190. package/lib/Framework/WebServer/Engine/RazorJs.d.ts +21 -0
  191. package/lib/Framework/WebServer/Engine/RazorJs.js +545 -0
  192. package/lib/Framework/WebServer/Engine/RazorJs.js.map +1 -0
  193. package/lib/Framework/WebServer/Engine/Request.d.ts +35 -0
  194. package/lib/Framework/WebServer/Engine/Request.js +215 -0
  195. package/lib/Framework/WebServer/Engine/Request.js.map +1 -0
  196. package/lib/Framework/WebServer/Engine/Response.d.ts +28 -0
  197. package/lib/Framework/WebServer/Engine/Response.js +95 -0
  198. package/lib/Framework/WebServer/Engine/Response.js.map +1 -0
  199. package/lib/Framework/WebServer/IWebServer.d.ts +20 -0
  200. package/lib/Framework/WebServer/IWebServer.js +50 -0
  201. package/lib/Framework/WebServer/IWebServer.js.map +1 -0
  202. package/lib/index.d.ts +4 -0
  203. package/lib/index.js +8 -0
  204. package/lib/index.js.map +1 -0
  205. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ import * as log4js from "log4js";
2
+ export declare let GLog: Log;
3
+ declare class Log {
4
+ protected _logger: log4js.Logger;
5
+ protected _client_logger: log4js.Logger;
6
+ protected _errorLogger: log4js.Logger;
7
+ protected _inited: boolean;
8
+ init(cfg: log4js.Configuration): void;
9
+ error(message?: any, ...optionalParams: any[]): void;
10
+ info(message: any, to_console?: any): void;
11
+ warn(message?: any, ...optionalParams: any[]): void;
12
+ record(message?: any, ...optionalParams: any[]): void;
13
+ clientLog(message?: any, ...optionalParams: any[]): void;
14
+ }
15
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GLog = void 0;
4
+ const Core_1 = require("../Core/Core");
5
+ const colors = require("colors");
6
+ const log4js = require("log4js");
7
+ /**
8
+ * 输出颜色
9
+ */
10
+ colors.setTheme({
11
+ silly: 'rainbow',
12
+ input: 'grey',
13
+ verbose: 'cyan',
14
+ prompt: 'red',
15
+ info: 'green',
16
+ data: 'blue',
17
+ help: 'cyan',
18
+ warn: 'yellow',
19
+ debug: 'magenta',
20
+ error: 'red'
21
+ });
22
+ exports.GLog = null;
23
+ class Log {
24
+ //default log
25
+ _logger = null;
26
+ //the log from client
27
+ _client_logger = null;
28
+ //error and warn
29
+ _errorLogger = null;
30
+ _inited = false;
31
+ init(cfg) {
32
+ if (this._inited) {
33
+ return;
34
+ }
35
+ this._inited = true;
36
+ colors.enable();
37
+ log4js.configure(cfg);
38
+ this._logger = log4js.getLogger(cfg.categories.default.appenders[0] || "log_date");
39
+ this._client_logger = log4js.getLogger(cfg.categories.default.appenders[1] || "client_log_date");
40
+ this._errorLogger = log4js.getLogger(cfg.categories.default.appenders[2] || "error_log_file");
41
+ }
42
+ error(message, ...optionalParams) {
43
+ if (Core_1.core.isObject(message)) {
44
+ message = JSON.stringify(message);
45
+ }
46
+ this._errorLogger.error(message);
47
+ var time = new Date();
48
+ var time_str = Core_1.core.format(time, "[YYYY-MM-DD HH:mm:SS.");
49
+ time_str += time.getMilliseconds() + "]";
50
+ console.error(time_str + " " + message);
51
+ }
52
+ info(message, to_console) {
53
+ if (Core_1.core.isObject(message)) {
54
+ message = JSON.stringify(message);
55
+ }
56
+ this._logger.info(message);
57
+ if (to_console) {
58
+ var time = new Date();
59
+ var time_str = Core_1.core.format(time, "[YYYY-MM-DD HH:mm:SS.");
60
+ time_str += time.getMilliseconds() + "]";
61
+ console.log(time_str + " " + message);
62
+ }
63
+ }
64
+ warn(message, ...optionalParams) {
65
+ if (Core_1.core.isObject(message)) {
66
+ message = JSON.stringify(message);
67
+ }
68
+ this._errorLogger.warn(message);
69
+ }
70
+ record(message, ...optionalParams) {
71
+ this.info(message, optionalParams);
72
+ }
73
+ clientLog(message, ...optionalParams) {
74
+ this._client_logger.error(message);
75
+ }
76
+ }
77
+ exports.GLog = new Log();
78
+ //# sourceMappingURL=Log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Log.js","sourceRoot":"","sources":["../../../Framework/Logic/Log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { BaseModel, BaseService } from './../Database/BaseService';
2
+ import { UserModel } from './UserService';
3
+ import { EAccountFrom } from './ini';
4
+ export declare class AccountModel extends BaseModel {
5
+ id: number;
6
+ phone: string;
7
+ email: string;
8
+ name: string;
9
+ password: string;
10
+ unionid: string;
11
+ openid: string;
12
+ create_time: number;
13
+ create_ip: string;
14
+ login_time: number;
15
+ login_ip: string;
16
+ from: number;
17
+ state: number;
18
+ }
19
+ export declare let GAccountSer: AccountService;
20
+ export declare class AccountService extends BaseService<AccountModel> {
21
+ protected _account_cache_key_pre: string;
22
+ protected _account_cache_time_sec: number;
23
+ constructor();
24
+ protected _getNewModel(): AccountModel;
25
+ /**
26
+ * 注册新账号
27
+ * @param unionid
28
+ * @param openid
29
+ * @param ip
30
+ * @param from
31
+ */
32
+ add(unionid: string, openid: string, ip: string, from: EAccountFrom): Promise<AccountModel>;
33
+ /**
34
+ * 通过第三方信息获取账号
35
+ * @param unionid
36
+ * @param openid
37
+ */
38
+ getByThird(unionid: string, openid: string): Promise<AccountModel>;
39
+ /**
40
+ * 通过第三方信息获取账号
41
+ * @param unionid
42
+ */
43
+ getByUnionid(unionid: string): Promise<AccountModel>;
44
+ getByPhone(phone: string): Promise<AccountModel>;
45
+ /**
46
+ * 登陆接口
47
+ * @param unionid
48
+ * @param openid
49
+ * @param ip
50
+ * @param from
51
+ * @param access_token qq、wechat使用
52
+ */
53
+ login(unionid: string, openid: string, ip: string, from: EAccountFrom, access_token?: string, extra?: {
54
+ nickname: string;
55
+ sex: number;
56
+ logo: string;
57
+ }): Promise<{
58
+ errcode: any;
59
+ account: AccountModel;
60
+ is_new: boolean;
61
+ }>;
62
+ protected _login(unionid: string, openid: string, from: EAccountFrom): Promise<{
63
+ errcode: any;
64
+ account: AccountModel;
65
+ }>;
66
+ /**
67
+ * 修改密码
68
+ * @param unionid
69
+ * @param openid
70
+ * @param new_pwd
71
+ */
72
+ updatePwd(unionid: string, openid: string, new_pwd: string): Promise<any>;
73
+ register(type: EAccountFrom, key: string, password: string, ip: string, extra?: any): Promise<{
74
+ user: UserModel;
75
+ errcode: any;
76
+ }>;
77
+ }
@@ -0,0 +1,474 @@
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.AccountService = exports.GAccountSer = exports.AccountModel = void 0;
10
+ const Property_1 = require("./../Database/Decorator/Property");
11
+ const BaseService_1 = require("./../Database/BaseService");
12
+ const CacheTool_1 = require("../Logic/CacheTool");
13
+ const _error_1 = require("../Config/_error_");
14
+ const OpenSocial_1 = require("../ThirdParty/OpenSocial");
15
+ const UserService_1 = require("./UserService");
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 AccountModel = class AccountModel extends BaseService_1.BaseModel {
25
+ id = -1;
26
+ phone = "";
27
+ email = "";
28
+ name = "";
29
+ password = "";
30
+ unionid = ""; //第三方
31
+ openid = "";
32
+ create_time = -1;
33
+ create_ip = "";
34
+ login_time = -1;
35
+ login_ip = "";
36
+ from = 0;
37
+ state = 0;
38
+ };
39
+ __decorate([
40
+ (0, Type_1.Type)(Property_1.EPropertyType.Int),
41
+ NotNull_1.NotNull,
42
+ PrimaryKey_1.PrimaryKey,
43
+ AutoIncrement_1.AutoIncrement
44
+ ], AccountModel.prototype, "id", void 0);
45
+ __decorate([
46
+ NotNull_1.NotNull,
47
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
48
+ ], AccountModel.prototype, "phone", void 0);
49
+ __decorate([
50
+ NotNull_1.NotNull,
51
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
52
+ ], AccountModel.prototype, "email", void 0);
53
+ __decorate([
54
+ NotNull_1.NotNull,
55
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
56
+ ], AccountModel.prototype, "name", void 0);
57
+ __decorate([
58
+ NotNull_1.NotNull,
59
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
60
+ ], AccountModel.prototype, "password", void 0);
61
+ __decorate([
62
+ NotNull_1.NotNull,
63
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
64
+ ], AccountModel.prototype, "unionid", void 0);
65
+ __decorate([
66
+ NotNull_1.NotNull,
67
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar, "", 128)
68
+ ], AccountModel.prototype, "openid", void 0);
69
+ __decorate([
70
+ NotNull_1.NotNull,
71
+ (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
72
+ ], AccountModel.prototype, "create_time", void 0);
73
+ __decorate([
74
+ NotNull_1.NotNull,
75
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
76
+ ], AccountModel.prototype, "create_ip", void 0);
77
+ __decorate([
78
+ NotNull_1.NotNull,
79
+ (0, Type_1.Type)(Property_1.EPropertyType.BigInt)
80
+ ], AccountModel.prototype, "login_time", void 0);
81
+ __decorate([
82
+ NotNull_1.NotNull,
83
+ (0, Type_1.Type)(Property_1.EPropertyType.Varchar)
84
+ ], AccountModel.prototype, "login_ip", void 0);
85
+ __decorate([
86
+ NotNull_1.NotNull,
87
+ (0, Type_1.Type)(Property_1.EPropertyType.Int)
88
+ ], AccountModel.prototype, "from", void 0);
89
+ __decorate([
90
+ NotNull_1.NotNull,
91
+ (0, Type_1.Type)(Property_1.EPropertyType.Int)
92
+ ], AccountModel.prototype, "state", void 0);
93
+ AccountModel = __decorate([
94
+ (0, Table_1.Table)("account", 1, "账号")
95
+ ], AccountModel);
96
+ exports.AccountModel = AccountModel;
97
+ //暂时不实例化,方便重写
98
+ exports.GAccountSer = null;
99
+ class AccountService extends BaseService_1.BaseService {
100
+ _account_cache_key_pre = "table_account_";
101
+ _account_cache_time_sec = 1 * 60 * 60 * 1000;
102
+ constructor() {
103
+ super(AccountModel);
104
+ exports.GAccountSer = this;
105
+ }
106
+ _getNewModel() {
107
+ return new AccountModel();
108
+ }
109
+ /**
110
+ * 注册新账号
111
+ * @param unionid
112
+ * @param openid
113
+ * @param ip
114
+ * @param from
115
+ */
116
+ async add(unionid, openid, ip, from) {
117
+ let account = this._getNewModel();
118
+ switch (from) {
119
+ case ini_1.EAccountFrom.OpenSocial:
120
+ case ini_1.EAccountFrom.WeChat:
121
+ case ini_1.EAccountFrom.QQ:
122
+ case ini_1.EAccountFrom.Apple:
123
+ case ini_1.EAccountFrom.Google:
124
+ {
125
+ account.unionid = unionid;
126
+ account.openid = openid;
127
+ break;
128
+ }
129
+ case ini_1.EAccountFrom.Email:
130
+ {
131
+ account.email = unionid;
132
+ account.password = openid;
133
+ break;
134
+ }
135
+ case ini_1.EAccountFrom.Phone:
136
+ case ini_1.EAccountFrom.QuickPhone:
137
+ {
138
+ account.phone = unionid;
139
+ account.password = openid;
140
+ break;
141
+ }
142
+ case ini_1.EAccountFrom.Name:
143
+ case ini_1.EAccountFrom.Guest:
144
+ {
145
+ account.name = unionid;
146
+ account.password = openid;
147
+ break;
148
+ }
149
+ }
150
+ account.create_time = Date.now();
151
+ account.create_ip = ip;
152
+ account.login_time = Date.now();
153
+ account.login_ip = ip;
154
+ account.from = from;
155
+ account.state = 1;
156
+ delete account.id;
157
+ let sr = await this.insert(account);
158
+ if (sr.error
159
+ || !sr.results.insertId) {
160
+ return null;
161
+ }
162
+ account.id = sr.results.insertId;
163
+ return account;
164
+ }
165
+ /**
166
+ * 通过第三方信息获取账号
167
+ * @param unionid
168
+ * @param openid
169
+ */
170
+ async getByThird(unionid, openid) {
171
+ let key = this._account_cache_key_pre + unionid;
172
+ let am = CacheTool_1.GCacheTool.get(key);
173
+ if (am) {
174
+ return am;
175
+ }
176
+ am = await this.get(null, "unionid=? and openid=?", [unionid, openid]);
177
+ if (am) {
178
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
179
+ }
180
+ return am;
181
+ }
182
+ /**
183
+ * 通过第三方信息获取账号
184
+ * @param unionid
185
+ */
186
+ async getByUnionid(unionid) {
187
+ let key = this._account_cache_key_pre + unionid;
188
+ let am = CacheTool_1.GCacheTool.get(key);
189
+ if (am) {
190
+ return am;
191
+ }
192
+ am = await this.get(null, "unionid=?", [unionid]);
193
+ if (am) {
194
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
195
+ }
196
+ return am;
197
+ }
198
+ async getByPhone(phone) {
199
+ let key = this._account_cache_key_pre + phone;
200
+ let am = CacheTool_1.GCacheTool.get(key);
201
+ if (am) {
202
+ return am;
203
+ }
204
+ am = await this.get(null, "phone=?", [phone]);
205
+ if (am) {
206
+ CacheTool_1.GCacheTool.add(key, am, this._account_cache_time_sec);
207
+ }
208
+ return am;
209
+ }
210
+ /**
211
+ * 登陆接口
212
+ * @param unionid
213
+ * @param openid
214
+ * @param ip
215
+ * @param from
216
+ * @param access_token qq、wechat使用
217
+ */
218
+ async login(unionid, openid, ip, from, access_token, extra) {
219
+ let rs = { errcode: null, account: null, is_new: false };
220
+ if (!unionid || !openid) {
221
+ rs.errcode = _error_1.EErrorCode.Wrong_Params;
222
+ return rs;
223
+ }
224
+ let login_rs = await this._login(unionid, openid, from);
225
+ rs.account = login_rs.account;
226
+ rs.errcode = login_rs.errcode;
227
+ if (rs.errcode) {
228
+ return rs;
229
+ }
230
+ let account = rs.account;
231
+ let extra_info = extra;
232
+ if (!account) {
233
+ switch (from) {
234
+ case ini_1.EAccountFrom.OpenSocial:
235
+ case ini_1.EAccountFrom.QQ:
236
+ case ini_1.EAccountFrom.WeChat:
237
+ case ini_1.EAccountFrom.Guest:
238
+ case ini_1.EAccountFrom.QuickPhone:
239
+ case ini_1.EAccountFrom.Apple:
240
+ case ini_1.EAccountFrom.Google:
241
+ {
242
+ account = await this.add(unionid, openid, ip, from);
243
+ break;
244
+ }
245
+ default:
246
+ {
247
+ rs.errcode = _error_1.EErrorCode.No_Account;
248
+ return rs;
249
+ }
250
+ }
251
+ }
252
+ if (!account) {
253
+ rs.errcode = _error_1.EErrorCode.No_Account;
254
+ return rs;
255
+ }
256
+ let user = await UserService_1.GUserSer.getByAccountId(account.id);
257
+ if (!user) {
258
+ switch (from) {
259
+ case ini_1.EAccountFrom.OpenSocial:
260
+ case ini_1.EAccountFrom.QQ:
261
+ case ini_1.EAccountFrom.WeChat:
262
+ case ini_1.EAccountFrom.Apple:
263
+ case ini_1.EAccountFrom.Google:
264
+ {
265
+ if (!extra_info) {
266
+ if (from == ini_1.EAccountFrom.OpenSocial) {
267
+ let body = await OpenSocial_1.GOpenSocial.getUser(unionid, openid);
268
+ if (body && body.errcode) {
269
+ rs.errcode = body.errcode;
270
+ return rs;
271
+ }
272
+ else if (body && body.user) {
273
+ extra_info =
274
+ {
275
+ logo: body.user.logo,
276
+ sex: body.user.sex,
277
+ nickname: body.user.nickname
278
+ };
279
+ }
280
+ }
281
+ else if (from == ini_1.EAccountFrom.QQ) {
282
+ let userInfo = await QQTool_1.GQQTool.getUserInfo(access_token, openid);
283
+ if (userInfo.ret) {
284
+ rs.errcode = _error_1.EErrorCode.Server_Error;
285
+ return rs;
286
+ }
287
+ extra_info =
288
+ {
289
+ logo: userInfo.figureurl_qq,
290
+ sex: (userInfo.gender == "男" ? 1 : 0),
291
+ nickname: userInfo.nickname
292
+ };
293
+ }
294
+ else if (from == ini_1.EAccountFrom.WeChat) {
295
+ let userInfo = await WechatTool_1.GWechatTool.getUserInfo(access_token, openid);
296
+ if (userInfo.errcode) {
297
+ rs.errcode = _error_1.EErrorCode.Server_Error;
298
+ return rs;
299
+ }
300
+ extra_info =
301
+ {
302
+ logo: userInfo.headimgurl,
303
+ sex: (userInfo.sex == 1 ? 1 : 0),
304
+ nickname: userInfo.nickname
305
+ };
306
+ }
307
+ else if (from == ini_1.EAccountFrom.Apple || from == ini_1.EAccountFrom.Google) {
308
+ extra_info =
309
+ {
310
+ logo: "32",
311
+ sex: 0,
312
+ nickname: "noname"
313
+ };
314
+ }
315
+ }
316
+ let user = await UserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
317
+ if (!user) {
318
+ this.removeById(account.id);
319
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
320
+ return rs;
321
+ }
322
+ break;
323
+ }
324
+ case ini_1.EAccountFrom.QuickPhone:
325
+ case ini_1.EAccountFrom.Guest:
326
+ {
327
+ let user = null;
328
+ if (extra_info) {
329
+ user = await UserService_1.GUserSer.add(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
330
+ }
331
+ else {
332
+ user = await UserService_1.GUserSer.add(account.id, null, null, null);
333
+ }
334
+ if (!user) {
335
+ this.removeById(account.id);
336
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
337
+ return rs;
338
+ }
339
+ break;
340
+ }
341
+ default:
342
+ {
343
+ rs.errcode = _error_1.EErrorCode.No_Account;
344
+ return rs;
345
+ }
346
+ }
347
+ rs.is_new = true;
348
+ if (extra) {
349
+ await UserService_1.GUserSer.updateBaseInfoByAccount(account.id, extra_info.nickname, extra_info.sex, extra_info.logo);
350
+ }
351
+ }
352
+ if (user && extra_info) {
353
+ await UserService_1.GUserSer.updateProperty("nickname=?,sex=?,logo=?", "id=?", [extra_info.nickname, extra_info.sex || 0, extra_info.logo, user.id]);
354
+ }
355
+ rs.account = account;
356
+ return rs;
357
+ }
358
+ async _login(unionid, openid, from) {
359
+ let rs = { errcode: null, account: null };
360
+ if (from == ini_1.EAccountFrom.QQ
361
+ || from == ini_1.EAccountFrom.WeChat
362
+ || from == ini_1.EAccountFrom.OpenSocial
363
+ || from == ini_1.EAccountFrom.Apple
364
+ || from == ini_1.EAccountFrom.Google) {
365
+ rs.account = await this.getByThird(unionid, openid);
366
+ }
367
+ else if (from == ini_1.EAccountFrom.QuickPhone) {
368
+ let key = "phone_code_" + unionid;
369
+ let code = CacheTool_1.GCacheTool.get(key);
370
+ if (!code || code != openid) {
371
+ rs.errcode = _error_1.EErrorCode.Wrong_Phone_Code;
372
+ return rs;
373
+ }
374
+ rs.account = await this.getByPhone(unionid);
375
+ }
376
+ else if (from == ini_1.EAccountFrom.Phone) {
377
+ rs.account = await this.get(null, "phone=? and password=?", [unionid, openid]);
378
+ if (!rs.account) {
379
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
380
+ }
381
+ }
382
+ else if (from == ini_1.EAccountFrom.Email) {
383
+ rs.account = await this.get(null, "email=? and password=?", [unionid, openid]);
384
+ if (!rs.account) {
385
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
386
+ }
387
+ }
388
+ else if (from == ini_1.EAccountFrom.Name || from == ini_1.EAccountFrom.Guest) {
389
+ rs.account = await this.get(null, "name=? and password=?", [unionid, openid]);
390
+ if (!rs.account && from == ini_1.EAccountFrom.Name) {
391
+ rs.errcode = _error_1.EErrorCode.Login_Failed;
392
+ }
393
+ }
394
+ return rs;
395
+ }
396
+ /**
397
+ * 修改密码
398
+ * @param unionid
399
+ * @param openid
400
+ * @param new_pwd
401
+ */
402
+ async updatePwd(unionid, openid, new_pwd) {
403
+ let rs = await OpenSocial_1.GOpenSocial.updatePwd(unionid, openid, new_pwd);
404
+ return rs;
405
+ }
406
+ async register(type, key, password, ip, extra) {
407
+ let rs = { user: null, errcode: null };
408
+ extra = extra || {};
409
+ let am = this._getNewModel();
410
+ switch (type) {
411
+ case ini_1.EAccountFrom.Phone:
412
+ {
413
+ am.phone = key;
414
+ let temp = await this.get("id", "phone=?", [key]);
415
+ if (temp) {
416
+ rs.errcode = _error_1.EErrorCode.Account_Phone_Exist;
417
+ return rs;
418
+ }
419
+ break;
420
+ }
421
+ case ini_1.EAccountFrom.Email:
422
+ {
423
+ am.email = key;
424
+ let temp = await this.get("id", "email=?", [key]);
425
+ if (temp) {
426
+ rs.errcode = _error_1.EErrorCode.Account_Email_Exist;
427
+ return rs;
428
+ }
429
+ break;
430
+ }
431
+ case ini_1.EAccountFrom.Name:
432
+ {
433
+ am.name = key;
434
+ let temp = await this.get("id", "name=?", [key]);
435
+ if (temp) {
436
+ rs.errcode = _error_1.EErrorCode.Account_Name_Exist;
437
+ return rs;
438
+ }
439
+ break;
440
+ }
441
+ default:
442
+ {
443
+ rs.errcode = _error_1.EErrorCode.Account_Type_Error;
444
+ return rs;
445
+ }
446
+ }
447
+ am.password = password;
448
+ am.create_time = Date.now();
449
+ am.create_ip = ip;
450
+ am.login_time = Date.now();
451
+ am.login_ip = ip;
452
+ let sr = await this.insert(am);
453
+ if (sr.results.insertId) {
454
+ am.id = sr.results.insertId;
455
+ }
456
+ else {
457
+ am = null;
458
+ }
459
+ if (!am) {
460
+ rs.errcode = _error_1.EErrorCode.Mysql_Error;
461
+ return rs;
462
+ }
463
+ let user = await UserService_1.GUserSer.add(am.id, extra.nickname, extra.sex, extra.logo);
464
+ if (!user) {
465
+ this.removeById(am.id);
466
+ rs.errcode = _error_1.EErrorCode.User_Create_Failed;
467
+ return rs;
468
+ }
469
+ rs.user = user;
470
+ return rs;
471
+ }
472
+ }
473
+ exports.AccountService = AccountService;
474
+ //# sourceMappingURL=AccountService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountService.js","sourceRoot":"","sources":["../../../Framework/Service/AccountService.ts"],"names":[],"mappings":"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"}