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,171 +1,171 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoBaseUserController = void 0;
4
- const BaseController_1 = require("./BaseController");
5
- const FrameworkConfig_1 = require("../../../Config/FrameworkConfig");
6
- const MongoCacheService_1 = require("../../../Service/MongoCacheService");
7
- const ini_1 = require("../../../Service/ini");
8
- const CacheTool_1 = require("../../../Logic/CacheTool");
9
- const RedisManager_1 = require("../../../Database/Redis/RedisManager");
10
- const MongoServiceManager_1 = require("../../../Database/Mongo/MongoServiceManager");
11
- class MongoBaseUserController extends BaseController_1.BaseController {
12
- _user_session_id = "user_session_id";
13
- _self_user = null;
14
- _user = null; //网页内容的所属,比如,查看别人的博客,那这个信息就是作者的
15
- _session_id = null;
16
- _userser = null;
17
- get selfUser() {
18
- return this._self_user;
19
- }
20
- get isSelf() {
21
- return this._self_user && (this._self_user.id == this._user.id);
22
- }
23
- get isLogin() {
24
- return this._self_user && true;
25
- }
26
- get isCreator() {
27
- return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Creator);
28
- }
29
- get isAdmin() {
30
- return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Admin || this._self_user.role_group == ini_1.ERoleGroup.Creator);
31
- }
32
- get isProxy() {
33
- return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Proxy);
34
- }
35
- get isCommon() {
36
- return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Common);
37
- }
38
- async init() {
39
- this._userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
40
- this._engine.cfg.session_type = this._engine.cfg.session_type || FrameworkConfig_1.ESessionType.Cache;
41
- this._session_id = this._request.getCookie(this._user_session_id) || this._request.params.session_id || this._request.postData.session_id;
42
- let userId = -1;
43
- if (this._session_id) {
44
- let user = await this._getUserBySession(this._session_id);
45
- if (!user) {
46
- this._update_session();
47
- //Session不存在清除客户端cookie
48
- this._response.clearCookie(this._user_session_id);
49
- }
50
- else {
51
- this._login(user);
52
- userId = user.id;
53
- }
54
- }
55
- let params = this._request.params;
56
- if (params.userId && params.userId != userId + "") {
57
- this._user = (await this._userser.getById(params.userId));
58
- }
59
- else {
60
- //不是别人的信息就查看自己的
61
- this._user = this._self_user;
62
- }
63
- }
64
- async _getUserBySession(session) {
65
- let user = null;
66
- if (!session) {
67
- return user;
68
- }
69
- //每次强制从cache中先找,提高效率
70
- //if(this._engine.cfg.session_type==ESessionType.Cache)
71
- {
72
- user = CacheTool_1.gCacheTool.get(this._session_id);
73
- }
74
- if (user) {
75
- return user;
76
- }
77
- if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
78
- let user_id = parseInt((await RedisManager_1.gRedisMgr.redis.get(this._session_id)) || "-1");
79
- if (user_id > 0) {
80
- user = (await this._userser.getById(user_id));
81
- }
82
- }
83
- else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
84
- let user_id = (await MongoCacheService_1.gMongoCacheSer.getData(this._session_id)) || -1;
85
- if (user_id > 0) {
86
- user = (await this._userser.getById(user_id));
87
- }
88
- }
89
- if (user) {
90
- this._login(user);
91
- }
92
- return user;
93
- }
94
- _logout() {
95
- if (this._session_id) {
96
- if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Cache) {
97
- CacheTool_1.gCacheTool.remove(this._session_id);
98
- }
99
- else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
100
- RedisManager_1.gRedisMgr.redis.del(this._session_id);
101
- }
102
- else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
103
- MongoCacheService_1.gMongoCacheSer.deleteOne({ key: this._session_id });
104
- }
105
- this._session_id = null;
106
- }
107
- this._response.clearCookie(this._user_session_id);
108
- }
109
- _login(user) {
110
- if (!user) {
111
- return;
112
- }
113
- if (!this._session_id) {
114
- this._session_id = Math.random().toString(36).substring(2) + user.id;
115
- }
116
- let time = 0;
117
- if (this._request.postData.remember == "on") {
118
- time = this._engine.cfg.cookie.expires.account_remember;
119
- }
120
- else {
121
- time = this._engine.cfg.cookie.expires.account;
122
- }
123
- this._response.setCookie(this._user_session_id, this._session_id, time);
124
- //if(this._engine.cfg.session_type==ESessionType.Cache)
125
- {
126
- if (time > 24 * 60 * 60) {
127
- CacheTool_1.gCacheTool.add(this._session_id, user, 24 * 60 * 60 * 1000);
128
- }
129
- else {
130
- CacheTool_1.gCacheTool.add(this._session_id, user, time * 1000);
131
- }
132
- }
133
- if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
134
- RedisManager_1.gRedisMgr.redis.set(this._session_id, user.id).then(() => {
135
- RedisManager_1.gRedisMgr.redis.expire(this._session_id, time);
136
- });
137
- }
138
- else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
139
- let cm = new MongoCacheService_1.MongoCacheModel();
140
- cm.key = this._session_id;
141
- cm.data = user.id;
142
- cm.expireAt = Date.now() + time * 1000;
143
- MongoCacheService_1.gMongoCacheSer.updateOne({ key: cm.key }, cm, { upsert: true });
144
- }
145
- this._self_user = user;
146
- }
147
- /**
148
- * 已经被启用
149
- */
150
- async _update_session() {
151
- }
152
- async update_user(user_id) {
153
- let user = (await this._userser.getById(user_id));
154
- if (this._user && this._user.id == user.id) {
155
- this._user = user;
156
- }
157
- if (this._self_user && this._self_user.id == user.id) {
158
- this._login(user);
159
- }
160
- }
161
- //填充每个页面需要的通用数据
162
- _init_data(datas) {
163
- let data = super._init_data(datas);
164
- data.model.isLogin = this.isLogin;
165
- data.model.user = this._user;
166
- data.model.selfUser = this._self_user;
167
- data.model.isSelf = this.isSelf;
168
- return data;
169
- }
170
- }
171
- exports.MongoBaseUserController = MongoBaseUserController;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongoBaseUserController = void 0;
4
+ const BaseController_1 = require("./BaseController");
5
+ const FrameworkConfig_1 = require("../../../Config/FrameworkConfig");
6
+ const MongoCacheService_1 = require("../../../Service/MongoCacheService");
7
+ const ini_1 = require("../../../Service/ini");
8
+ const CacheTool_1 = require("../../../Logic/CacheTool");
9
+ const RedisManager_1 = require("../../../Database/Redis/RedisManager");
10
+ const MongoServiceManager_1 = require("../../../Database/Mongo/MongoServiceManager");
11
+ class MongoBaseUserController extends BaseController_1.BaseController {
12
+ _user_session_id = "user_session_id";
13
+ _self_user = null;
14
+ _user = null; //网页内容的所属,比如,查看别人的博客,那这个信息就是作者的
15
+ _session_id = null;
16
+ _userser = null;
17
+ get selfUser() {
18
+ return this._self_user;
19
+ }
20
+ get isSelf() {
21
+ return this._self_user && (this._self_user.id == this._user.id);
22
+ }
23
+ get isLogin() {
24
+ return this._self_user && true;
25
+ }
26
+ get isCreator() {
27
+ return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Creator);
28
+ }
29
+ get isAdmin() {
30
+ return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Admin || this._self_user.role_group == ini_1.ERoleGroup.Creator);
31
+ }
32
+ get isProxy() {
33
+ return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Proxy);
34
+ }
35
+ get isCommon() {
36
+ return this._self_user && (this._self_user.role_group == ini_1.ERoleGroup.Common);
37
+ }
38
+ async init() {
39
+ this._userser = MongoServiceManager_1.gMongoServiceMgr.getService("user");
40
+ this._engine.cfg.session_type = this._engine.cfg.session_type || FrameworkConfig_1.ESessionType.Cache;
41
+ this._session_id = this._request.getCookie(this._user_session_id) || this._request.params.session_id || this._request.postData.session_id;
42
+ let userId = -1;
43
+ if (this._session_id) {
44
+ let user = await this._getUserBySession(this._session_id);
45
+ if (!user) {
46
+ this._update_session();
47
+ //Session不存在清除客户端cookie
48
+ this._response.clearCookie(this._user_session_id);
49
+ }
50
+ else {
51
+ this._login(user);
52
+ userId = user.id;
53
+ }
54
+ }
55
+ let params = this._request.params;
56
+ if (params.userId && params.userId != userId + "") {
57
+ this._user = (await this._userser.getById(params.userId));
58
+ }
59
+ else {
60
+ //不是别人的信息就查看自己的
61
+ this._user = this._self_user;
62
+ }
63
+ }
64
+ async _getUserBySession(session) {
65
+ let user = null;
66
+ if (!session) {
67
+ return user;
68
+ }
69
+ //每次强制从cache中先找,提高效率
70
+ //if(this._engine.cfg.session_type==ESessionType.Cache)
71
+ {
72
+ user = CacheTool_1.gCacheTool.get(this._session_id);
73
+ }
74
+ if (user) {
75
+ return user;
76
+ }
77
+ if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
78
+ let user_id = parseInt((await RedisManager_1.gRedisMgr.redis.get(this._session_id)) || "-1");
79
+ if (user_id > 0) {
80
+ user = (await this._userser.getById(user_id));
81
+ }
82
+ }
83
+ else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
84
+ let user_id = (await MongoCacheService_1.gMongoCacheSer.getData(this._session_id)) || -1;
85
+ if (user_id > 0) {
86
+ user = (await this._userser.getById(user_id));
87
+ }
88
+ }
89
+ if (user) {
90
+ this._login(user);
91
+ }
92
+ return user;
93
+ }
94
+ _logout() {
95
+ if (this._session_id) {
96
+ if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Cache) {
97
+ CacheTool_1.gCacheTool.remove(this._session_id);
98
+ }
99
+ else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
100
+ RedisManager_1.gRedisMgr.redis.del(this._session_id);
101
+ }
102
+ else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
103
+ MongoCacheService_1.gMongoCacheSer.deleteOne({ key: this._session_id });
104
+ }
105
+ this._session_id = null;
106
+ }
107
+ this._response.clearCookie(this._user_session_id);
108
+ }
109
+ _login(user) {
110
+ if (!user) {
111
+ return;
112
+ }
113
+ if (!this._session_id) {
114
+ this._session_id = Math.random().toString(36).substring(2) + user.id;
115
+ }
116
+ let time = 0;
117
+ if (this._request.postData.remember == "on") {
118
+ time = this._engine.cfg.cookie.expires.account_remember;
119
+ }
120
+ else {
121
+ time = this._engine.cfg.cookie.expires.account;
122
+ }
123
+ this._response.setCookie(this._user_session_id, this._session_id, time);
124
+ //if(this._engine.cfg.session_type==ESessionType.Cache)
125
+ {
126
+ if (time > 24 * 60 * 60) {
127
+ CacheTool_1.gCacheTool.add(this._session_id, user, 24 * 60 * 60 * 1000);
128
+ }
129
+ else {
130
+ CacheTool_1.gCacheTool.add(this._session_id, user, time * 1000);
131
+ }
132
+ }
133
+ if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Redis) {
134
+ RedisManager_1.gRedisMgr.redis.set(this._session_id, user.id).then(() => {
135
+ RedisManager_1.gRedisMgr.redis.expire(this._session_id, time);
136
+ });
137
+ }
138
+ else if (this._engine.cfg.session_type == FrameworkConfig_1.ESessionType.Mongo) {
139
+ let cm = new MongoCacheService_1.MongoCacheModel();
140
+ cm.key = this._session_id;
141
+ cm.data = user.id;
142
+ cm.expireAt = Date.now() + time * 1000;
143
+ MongoCacheService_1.gMongoCacheSer.updateOne({ key: cm.key }, cm, { upsert: true });
144
+ }
145
+ this._self_user = user;
146
+ }
147
+ /**
148
+ * 已经被启用
149
+ */
150
+ async _update_session() {
151
+ }
152
+ async update_user(user_id) {
153
+ let user = (await this._userser.getById(user_id));
154
+ if (this._user && this._user.id == user.id) {
155
+ this._user = user;
156
+ }
157
+ if (this._self_user && this._self_user.id == user.id) {
158
+ this._login(user);
159
+ }
160
+ }
161
+ //填充每个页面需要的通用数据
162
+ _init_data(datas) {
163
+ let data = super._init_data(datas);
164
+ data.model.isLogin = this.isLogin;
165
+ data.model.user = this._user;
166
+ data.model.selfUser = this._self_user;
167
+ data.model.isSelf = this.isSelf;
168
+ return data;
169
+ }
170
+ }
171
+ exports.MongoBaseUserController = MongoBaseUserController;