cgserver 7.8.2113 → 7.10.2113
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.
- package/dist/lib/{AI → Framework/AI}/BehaviorAI.js +1 -1
- package/dist/lib/{index.js → Framework/index.js} +5 -2
- package/dist/lib/test/test.js +21 -0
- package/dist/types/{index.d.ts → Framework/index.d.ts} +1 -1
- package/dist/types/test/test.d.ts +1 -0
- package/package.json +1 -1
- package/src/Framework/AI/AiObject.ts +12 -0
- package/src/Framework/AI/Astar.ts +157 -0
- package/src/Framework/AI/BehaviorAI.ts +382 -0
- package/src/Framework/AI/Entity.ts +37 -0
- package/src/Framework/AI/Point.ts +84 -0
- package/src/Framework/AI/TriggerMgr.ts +280 -0
- package/src/Framework/Config/Config.ts +61 -0
- package/src/Framework/Config/FrameworkConfig.ts +286 -0
- package/src/Framework/Config/IServerConfig.ts +28 -0
- package/src/Framework/Config/_error_.ts +32 -0
- package/src/Framework/Core/Core.ts +810 -0
- package/src/Framework/Core/Timer.ts +147 -0
- package/src/Framework/Database/Decorator/AutoIncrement.ts +9 -0
- package/src/Framework/Database/Decorator/DBCache.ts +74 -0
- package/src/Framework/Database/Decorator/NotNull.ts +9 -0
- package/src/Framework/Database/Decorator/PrimaryKey.ts +9 -0
- package/src/Framework/Database/Decorator/Property.ts +64 -0
- package/src/Framework/Database/Decorator/Table.ts +13 -0
- package/src/Framework/Database/Decorator/Type.ts +21 -0
- package/src/Framework/Database/MSSqlManager.ts +52 -0
- package/src/Framework/Database/MongoBaseService.ts +136 -0
- package/src/Framework/Database/MongoManager.ts +501 -0
- package/src/Framework/Database/MysqlBaseService.ts +345 -0
- package/src/Framework/Database/MysqlManager.ts +212 -0
- package/src/Framework/Database/RedisManager.ts +544 -0
- package/src/Framework/Logic/CacheTool.ts +85 -0
- package/src/Framework/Logic/EventTool.ts +31 -0
- package/src/Framework/Logic/HttpTool.ts +82 -0
- package/src/Framework/Logic/Log.ts +171 -0
- package/src/Framework/Logic/SyncQueueTool.ts +51 -0
- package/src/Framework/Service/AccountService.ts +508 -0
- package/src/Framework/Service/MongoAccountService.ts +456 -0
- package/src/Framework/Service/MongoCacheService.ts +48 -0
- package/src/Framework/Service/MongoUserService.ts +103 -0
- package/src/Framework/Service/UserService.ts +168 -0
- package/src/Framework/Service/ini.ts +33 -0
- package/src/Framework/SocketServer/IClientWebSocket.ts +50 -0
- package/src/Framework/SocketServer/IRpc.ts +12 -0
- package/src/Framework/SocketServer/IRpcClientWebSocket.ts +75 -0
- package/src/Framework/SocketServer/IRpcServerWebSocket.ts +76 -0
- package/src/Framework/SocketServer/IServerWebSocket.ts +88 -0
- package/src/Framework/SocketServer/ISocketServer.ts +243 -0
- package/src/Framework/SocketServer/IWebSocket.ts +243 -0
- package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +68 -0
- package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +11 -0
- package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +34 -0
- package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +34 -0
- package/src/Framework/ThirdParty/AlipayTool.ts +224 -0
- package/src/Framework/ThirdParty/Alisms.ts +53 -0
- package/src/Framework/ThirdParty/AppleTool.ts +252 -0
- package/src/Framework/ThirdParty/CgMq.ts +153 -0
- package/src/Framework/ThirdParty/EmailTool.ts +37 -0
- package/src/Framework/ThirdParty/OpenSocial.ts +36 -0
- package/src/Framework/ThirdParty/QQTool.ts +124 -0
- package/src/Framework/ThirdParty/QiniuTool.ts +23 -0
- package/src/Framework/ThirdParty/Rpc.ts +75 -0
- package/src/Framework/ThirdParty/WechatOATool.ts +61 -0
- package/src/Framework/ThirdParty/WechatTool.ts +80 -0
- package/src/Framework/WebServer/Controller/BaseController.ts +140 -0
- package/src/Framework/WebServer/Controller/BaseUserController.ts +209 -0
- package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +209 -0
- package/src/Framework/WebServer/Decorator/AdminValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +25 -0
- package/src/Framework/WebServer/Decorator/CreatorValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +16 -0
- package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
- package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +23 -0
- package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +19 -0
- package/src/Framework/WebServer/Decorator/SyncCall.ts +20 -0
- package/src/Framework/WebServer/Decorator/SyncCallServer.ts +45 -0
- package/src/Framework/WebServer/Engine/ControllerManager.ts +134 -0
- package/src/Framework/WebServer/Engine/Engine.ts +186 -0
- package/src/Framework/WebServer/Engine/RazorJs.ts +720 -0
- package/src/Framework/WebServer/Engine/Request.ts +267 -0
- package/src/Framework/WebServer/Engine/Response.ts +123 -0
- package/src/Framework/WebServer/IWebServer.ts +61 -0
- package/src/Framework/cgserver.ts +112 -0
- package/src/Framework/index.ts +92 -0
- package/src/test/test.ts +12 -0
- /package/dist/lib/{AI → Framework/AI}/AiObject.js +0 -0
- /package/dist/lib/{AI → Framework/AI}/Astar.js +0 -0
- /package/dist/lib/{AI → Framework/AI}/Entity.js +0 -0
- /package/dist/lib/{AI → Framework/AI}/Point.js +0 -0
- /package/dist/lib/{AI → Framework/AI}/TriggerMgr.js +0 -0
- /package/dist/lib/{Config → Framework/Config}/Config.js +0 -0
- /package/dist/lib/{Config → Framework/Config}/FrameworkConfig.js +0 -0
- /package/dist/lib/{Config → Framework/Config}/IServerConfig.js +0 -0
- /package/dist/lib/{Config → Framework/Config}/_error_.js +0 -0
- /package/dist/lib/{Core → Framework/Core}/Core.js +0 -0
- /package/dist/lib/{Core → Framework/Core}/Timer.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/AutoIncrement.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/DBCache.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/NotNull.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/PrimaryKey.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/Property.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/Table.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/Decorator/Type.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/MSSqlManager.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/MongoBaseService.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/MongoManager.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/MysqlBaseService.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/MysqlManager.js +0 -0
- /package/dist/lib/{Database → Framework/Database}/RedisManager.js +0 -0
- /package/dist/lib/{Logic → Framework/Logic}/CacheTool.js +0 -0
- /package/dist/lib/{Logic → Framework/Logic}/EventTool.js +0 -0
- /package/dist/lib/{Logic → Framework/Logic}/HttpTool.js +0 -0
- /package/dist/lib/{Logic → Framework/Logic}/Log.js +0 -0
- /package/dist/lib/{Logic → Framework/Logic}/SyncQueueTool.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/AccountService.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/MongoAccountService.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/MongoCacheService.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/MongoUserService.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/UserService.js +0 -0
- /package/dist/lib/{Service → Framework/Service}/ini.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IClientWebSocket.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpc.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IServerWebSocket.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/ISocketServer.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/IWebSocket.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.js +0 -0
- /package/dist/lib/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AlipayTool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Alisms.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/AppleTool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/CgMq.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/EmailTool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/OpenSocial.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QQTool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/QiniuTool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/Rpc.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatOATool.js +0 -0
- /package/dist/lib/{ThirdParty → Framework/ThirdParty}/WechatTool.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseController.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Controller/BaseUserController.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AdminValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCall.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Engine/ControllerManager.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Engine.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Engine/RazorJs.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Request.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/Engine/Response.js +0 -0
- /package/dist/lib/{WebServer → Framework/WebServer}/IWebServer.js +0 -0
- /package/dist/lib/{cgserver.js → Framework/cgserver.js} +0 -0
- /package/dist/types/{AI → Framework/AI}/AiObject.d.ts +0 -0
- /package/dist/types/{AI → Framework/AI}/Astar.d.ts +0 -0
- /package/dist/types/{AI → Framework/AI}/BehaviorAI.d.ts +0 -0
- /package/dist/types/{AI → Framework/AI}/Entity.d.ts +0 -0
- /package/dist/types/{AI → Framework/AI}/Point.d.ts +0 -0
- /package/dist/types/{AI → Framework/AI}/TriggerMgr.d.ts +0 -0
- /package/dist/types/{Config → Framework/Config}/Config.d.ts +0 -0
- /package/dist/types/{Config → Framework/Config}/FrameworkConfig.d.ts +0 -0
- /package/dist/types/{Config → Framework/Config}/IServerConfig.d.ts +0 -0
- /package/dist/types/{Config → Framework/Config}/_error_.d.ts +0 -0
- /package/dist/types/{Core → Framework/Core}/Core.d.ts +0 -0
- /package/dist/types/{Core → Framework/Core}/Timer.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/AutoIncrement.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/DBCache.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/NotNull.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/PrimaryKey.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/Property.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/Table.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/Decorator/Type.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/MSSqlManager.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/MongoBaseService.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/MongoManager.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/MysqlBaseService.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/MysqlManager.d.ts +0 -0
- /package/dist/types/{Database → Framework/Database}/RedisManager.d.ts +0 -0
- /package/dist/types/{Logic → Framework/Logic}/CacheTool.d.ts +0 -0
- /package/dist/types/{Logic → Framework/Logic}/EventTool.d.ts +0 -0
- /package/dist/types/{Logic → Framework/Logic}/HttpTool.d.ts +0 -0
- /package/dist/types/{Logic → Framework/Logic}/Log.d.ts +0 -0
- /package/dist/types/{Logic → Framework/Logic}/SyncQueueTool.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/AccountService.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/MongoAccountService.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/MongoCacheService.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/MongoUserService.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/UserService.d.ts +0 -0
- /package/dist/types/{Service → Framework/Service}/ini.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IClientWebSocket.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IRpc.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcClientWebSocket.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IRpcServerWebSocket.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IServerWebSocket.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/ISocketServer.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/IWebSocket.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/IProtoFilter.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/JsonProtoFilter.d.ts +0 -0
- /package/dist/types/{SocketServer → Framework/SocketServer}/ProtoFilter/ProtoFactory.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/AlipayTool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/Alisms.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/AppleTool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/CgMq.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/EmailTool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/OpenSocial.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/QQTool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/QiniuTool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/Rpc.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatOATool.d.ts +0 -0
- /package/dist/types/{ThirdParty → Framework/ThirdParty}/WechatTool.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseController.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Controller/BaseUserController.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Controller/MongoBaseUserController.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AdminValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/AuthorityValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/CreatorValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAdminValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonAuthorityValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/JsonCreatorValidate.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCall.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Decorator/SyncCallServer.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Engine/ControllerManager.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Engine/Engine.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Engine/RazorJs.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Engine/Request.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/Engine/Response.d.ts +0 -0
- /package/dist/types/{WebServer → Framework/WebServer}/IWebServer.d.ts +0 -0
- /package/dist/types/{cgserver.d.ts → Framework/cgserver.d.ts} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
import * as nodeMailer from "nodemailer";
|
|
3
|
+
import { GServerCfg } from "../Config/IServerConfig";
|
|
4
|
+
import { GLog } from "../Logic/Log";
|
|
5
|
+
export let GEmailTool:EmailTool=null
|
|
6
|
+
class EmailTool
|
|
7
|
+
{
|
|
8
|
+
send(to:string,subject:string,html:string)
|
|
9
|
+
{
|
|
10
|
+
return new Promise((resolve,reject)=>
|
|
11
|
+
{
|
|
12
|
+
let transport = nodeMailer.createTransport({
|
|
13
|
+
host: GServerCfg.third_cfg.email.host,
|
|
14
|
+
port: GServerCfg.third_cfg.email.port,
|
|
15
|
+
secure: GServerCfg.third_cfg.email.secure,
|
|
16
|
+
auth:
|
|
17
|
+
{
|
|
18
|
+
user: GServerCfg.third_cfg.email.auth.user,
|
|
19
|
+
pass: GServerCfg.third_cfg.email.auth.pass
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
let mail =
|
|
23
|
+
{
|
|
24
|
+
from: GServerCfg.third_cfg.email.from,
|
|
25
|
+
to: to,
|
|
26
|
+
subject: subject,
|
|
27
|
+
html: html
|
|
28
|
+
}
|
|
29
|
+
transport.sendMail(mail,(_err,msg)=>
|
|
30
|
+
{
|
|
31
|
+
GLog.error(JSON.stringify(_err))
|
|
32
|
+
resolve(_err)
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
GEmailTool = new EmailTool()
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { GServerCfg } from "../Config/IServerConfig";
|
|
2
|
+
import { GHttpTool } from "../Logic/HttpTool";
|
|
3
|
+
|
|
4
|
+
export let GOpenSocial:OpenSocial=null
|
|
5
|
+
class OpenSocial
|
|
6
|
+
{
|
|
7
|
+
protected _getNewMsg():any
|
|
8
|
+
{
|
|
9
|
+
return {
|
|
10
|
+
app_id:GServerCfg.third_cfg.open_social.app_id,
|
|
11
|
+
app_secret:GServerCfg.third_cfg.open_social.app_secret
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
async getUser(unionid:string,openid:string)
|
|
15
|
+
{
|
|
16
|
+
let msg=
|
|
17
|
+
{
|
|
18
|
+
unionid:unionid,
|
|
19
|
+
openid:openid
|
|
20
|
+
}
|
|
21
|
+
let rs=await GHttpTool.post({url:GServerCfg.third_cfg.open_social.user_url,json:msg})
|
|
22
|
+
return rs.body
|
|
23
|
+
}
|
|
24
|
+
async updatePwd(unionid:string,openid:string,new_pwd:string)
|
|
25
|
+
{
|
|
26
|
+
let msg=
|
|
27
|
+
{
|
|
28
|
+
unionid:unionid,
|
|
29
|
+
openid:openid,
|
|
30
|
+
password:new_pwd
|
|
31
|
+
}
|
|
32
|
+
let jsonData = await GHttpTool.post({url:GServerCfg.third_cfg.open_social.update_pwd_url,json:msg})
|
|
33
|
+
return jsonData.body||jsonData.error
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
GOpenSocial = new OpenSocial()
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import * as _ from "underscore";
|
|
2
|
+
import * as URLEncode from "urlencode";
|
|
3
|
+
import { GServerCfg } from "../Config/IServerConfig";
|
|
4
|
+
import { GHttpTool } from "../Logic/HttpTool";
|
|
5
|
+
import { GLog } from "../Logic/Log";
|
|
6
|
+
|
|
7
|
+
export class QQUserInfo
|
|
8
|
+
{
|
|
9
|
+
ret=0
|
|
10
|
+
msg=""
|
|
11
|
+
is_lost=0
|
|
12
|
+
nickname=""
|
|
13
|
+
gender=""//"男"
|
|
14
|
+
province=""//"四川"
|
|
15
|
+
city=""//"成都"
|
|
16
|
+
year=""//"1988"
|
|
17
|
+
constellation=""
|
|
18
|
+
figureurl=""//http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/30
|
|
19
|
+
figureurl_1=""//http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/50
|
|
20
|
+
figureurl_2=""//http://qzapp.qlogo.cn/qzapp/101775753/B5EA2E2138715A07DE91B5BACBA0CCE5/100
|
|
21
|
+
figureurl_qq_1=""//http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=40&t=1556419177
|
|
22
|
+
figureurl_qq_2=""//http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=100&t=1556419177
|
|
23
|
+
figureurl_qq=""//http://thirdqq.qlogo.cn/g?b=oidb&k=jgOibQ4eLHDBT57oAib1DrOg&s=140&t=1556419177
|
|
24
|
+
figureurl_type=""//"1"
|
|
25
|
+
is_yellow_vip:""//"0"
|
|
26
|
+
vip=""//"0"
|
|
27
|
+
yellow_vip_level=""//"0"
|
|
28
|
+
level=""//"0"
|
|
29
|
+
is_yellow_year_vip=""//"0"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export let GQQTool:QQTool=null
|
|
33
|
+
export class QQTool
|
|
34
|
+
{
|
|
35
|
+
/**
|
|
36
|
+
* 获取Authorization Code
|
|
37
|
+
* @param scope 可选 请求用户授权时向用户显示的可进行授权的列表。
|
|
38
|
+
可填写的值是API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
|
|
39
|
+
例如:scope=get_user_info,list_album,upload_pic,do_like
|
|
40
|
+
不传则默认请求对接口get_user_info进行授权。
|
|
41
|
+
建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
|
|
42
|
+
* @param display 仅PC网站接入时使用。
|
|
43
|
+
用于展示的样式。不传则默认展示为PC下的样式。
|
|
44
|
+
如果传入“mobile”,则展示为mobile端下的样式。
|
|
45
|
+
*/
|
|
46
|
+
getAuthCodeUrl(scope?:string,display?:string)
|
|
47
|
+
{
|
|
48
|
+
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
49
|
+
let redirect_uri = URLEncode.encode(GServerCfg.third_cfg.qq.redirect_uri)
|
|
50
|
+
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
51
|
+
let client_id = GServerCfg.third_cfg.qq.app_id
|
|
52
|
+
//必须 授权类型,此值固定为“code”。
|
|
53
|
+
let response_type="code"
|
|
54
|
+
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
55
|
+
let state=_.random(1000000,9999999)
|
|
56
|
+
//PC网站
|
|
57
|
+
let url="https://graph.qq.com/oauth2.0/authorize?redirect_uri="+redirect_uri+"&response_type="+response_type+"&state="+state+"&client_id="+client_id
|
|
58
|
+
if(scope)
|
|
59
|
+
{
|
|
60
|
+
url+="&scope="+scope
|
|
61
|
+
}
|
|
62
|
+
if(display)
|
|
63
|
+
{
|
|
64
|
+
url+="&display="+display
|
|
65
|
+
}
|
|
66
|
+
return url
|
|
67
|
+
}
|
|
68
|
+
async getAccessToken(auth_code:string):Promise<string>
|
|
69
|
+
{
|
|
70
|
+
if(!auth_code)
|
|
71
|
+
{
|
|
72
|
+
return null
|
|
73
|
+
}
|
|
74
|
+
//必须 授权类型,在本步骤中,此值为“authorization_code”。
|
|
75
|
+
let grant_type = "authorization_code"
|
|
76
|
+
//必须 申请QQ登录成功后,分配给应用的appid。
|
|
77
|
+
let client_id = GServerCfg.third_cfg.qq.app_id
|
|
78
|
+
//必须 申请QQ登录成功后,分配给网站的appkey。
|
|
79
|
+
let client_secret = GServerCfg.third_cfg.qq.app_key
|
|
80
|
+
//必须 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心
|
|
81
|
+
let redirect_uri = URLEncode.encode(GServerCfg.third_cfg.qq.redirect_uri)
|
|
82
|
+
|
|
83
|
+
let url="https://graph.qq.com/oauth2.0/token?code="+auth_code+"&grant_type="+grant_type+"&client_id="+client_id+"&client_secret="+client_secret+"&redirect_uri="+redirect_uri
|
|
84
|
+
let rs = await GHttpTool.get(url)
|
|
85
|
+
if(rs.body&&rs.body.access_token)
|
|
86
|
+
{
|
|
87
|
+
return rs.body.access_token
|
|
88
|
+
}
|
|
89
|
+
else
|
|
90
|
+
{
|
|
91
|
+
GLog.error(rs.body)
|
|
92
|
+
}
|
|
93
|
+
return null
|
|
94
|
+
}
|
|
95
|
+
async getOpenId(access_token:string):Promise<string>
|
|
96
|
+
{
|
|
97
|
+
let url="https://graph.qq.com/oauth2.0/me?access_token="+access_token
|
|
98
|
+
let rs = await GHttpTool.get(url)
|
|
99
|
+
let body = rs.response?rs.response.body:null
|
|
100
|
+
if(body)
|
|
101
|
+
{
|
|
102
|
+
body=body.replace("callback( ","")
|
|
103
|
+
body=body.replace(" );\n","")
|
|
104
|
+
try{body=JSON.parse(body)}catch(e){}
|
|
105
|
+
if(!body.openid)
|
|
106
|
+
{
|
|
107
|
+
GLog.error(rs.response.body)
|
|
108
|
+
}
|
|
109
|
+
return body.openid
|
|
110
|
+
}
|
|
111
|
+
return null
|
|
112
|
+
}
|
|
113
|
+
async getUserInfo(access_token:string,openid:string):Promise<QQUserInfo>
|
|
114
|
+
{
|
|
115
|
+
let url = "https://graph.qq.com/user/get_user_info?access_token="+access_token+"&oauth_consumer_key="+GServerCfg.third_cfg.qq.app_id+"&openid="+openid
|
|
116
|
+
let rs = await GHttpTool.get(url)
|
|
117
|
+
if(rs.body)
|
|
118
|
+
{
|
|
119
|
+
return rs.body
|
|
120
|
+
}
|
|
121
|
+
return null
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
GQQTool=new QQTool()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as qiniu from "qiniu";
|
|
2
|
+
import { GServerCfg } from "../Config/IServerConfig";
|
|
3
|
+
|
|
4
|
+
export let GQiniuTool:QiniuTool = null
|
|
5
|
+
class QiniuTool
|
|
6
|
+
{
|
|
7
|
+
get host()
|
|
8
|
+
{
|
|
9
|
+
return GServerCfg.third_cfg.qiniu.host
|
|
10
|
+
}
|
|
11
|
+
getUploadToken(filename)
|
|
12
|
+
{
|
|
13
|
+
let mac = new qiniu.auth.digest.Mac(GServerCfg.third_cfg.qiniu.accessKey, GServerCfg.third_cfg.qiniu.secretKey)
|
|
14
|
+
let options =
|
|
15
|
+
{
|
|
16
|
+
scope: GServerCfg.third_cfg.qiniu.bucket+":"+filename,
|
|
17
|
+
}
|
|
18
|
+
let putPolicy = new qiniu.rs.PutPolicy(options)
|
|
19
|
+
let uploadToken = putPolicy.uploadToken(mac)
|
|
20
|
+
return uploadToken
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
GQiniuTool = new QiniuTool()
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { core } from "../Core/Core"
|
|
2
|
+
import { GLog } from "../Logic/Log"
|
|
3
|
+
import { CgMq, CgMqConfig, CgMqRetMsg } from "./CgMq"
|
|
4
|
+
|
|
5
|
+
class Remote
|
|
6
|
+
{
|
|
7
|
+
protected _retmsg:CgMqRetMsg=null
|
|
8
|
+
get retMsg()
|
|
9
|
+
{
|
|
10
|
+
return this._retmsg
|
|
11
|
+
}
|
|
12
|
+
protected _cgmq:CgMq=null
|
|
13
|
+
get cgmq()
|
|
14
|
+
{
|
|
15
|
+
return this._cgmq
|
|
16
|
+
}
|
|
17
|
+
protected _to_identity=""
|
|
18
|
+
constructor(identity:string,cgmq:CgMq)
|
|
19
|
+
{
|
|
20
|
+
this._to_identity=identity
|
|
21
|
+
this._cgmq=cgmq
|
|
22
|
+
}
|
|
23
|
+
async call(func_name:string,...args):Promise<any|any[]>
|
|
24
|
+
{
|
|
25
|
+
this._retmsg = await this._cgmq.callRemote(this._to_identity,func_name,...args)
|
|
26
|
+
if(!this._retmsg.data)
|
|
27
|
+
{
|
|
28
|
+
return
|
|
29
|
+
}
|
|
30
|
+
let datas:any[]=this._retmsg.data
|
|
31
|
+
if(datas.length==1)
|
|
32
|
+
{
|
|
33
|
+
return datas[0]
|
|
34
|
+
}
|
|
35
|
+
return datas
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class RpcConfig extends CgMqConfig
|
|
39
|
+
{
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
export class Rpc
|
|
43
|
+
{
|
|
44
|
+
protected _cgmq:CgMq=null
|
|
45
|
+
get cgmq()
|
|
46
|
+
{
|
|
47
|
+
return this._cgmq
|
|
48
|
+
}
|
|
49
|
+
async init(cfg:RpcConfig)
|
|
50
|
+
{
|
|
51
|
+
this._cgmq=new CgMq()
|
|
52
|
+
let ret = await this._cgmq.init(cfg,this.onMsg.bind(this))
|
|
53
|
+
return ret
|
|
54
|
+
}
|
|
55
|
+
getRemote(identity:string)
|
|
56
|
+
{
|
|
57
|
+
return new Remote(identity,this._cgmq)
|
|
58
|
+
}
|
|
59
|
+
async onMsg(msg:CgMqRetMsg)
|
|
60
|
+
{
|
|
61
|
+
if(!msg||!msg.data||!msg.data.cmd)
|
|
62
|
+
{
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
let cmd:string = msg.data.cmd
|
|
66
|
+
let func = this[cmd]
|
|
67
|
+
if(!func)
|
|
68
|
+
{
|
|
69
|
+
GLog.error({des:"rpc no cmd",msg})
|
|
70
|
+
return
|
|
71
|
+
}
|
|
72
|
+
let data = await core.safeCall(func,this,...msg.data?.args,msg)
|
|
73
|
+
return data
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//OA=offical account公众号
|
|
2
|
+
export class WechatOAMsg
|
|
3
|
+
{
|
|
4
|
+
// <xml>
|
|
5
|
+
// <ToUserName><![CDATA[toUser]]></ToUserName>
|
|
6
|
+
// <FromUserName><![CDATA[fromUser]]></FromUserName>
|
|
7
|
+
// <CreateTime>1348831860</CreateTime>
|
|
8
|
+
// <MsgType><![CDATA[text]]></MsgType>
|
|
9
|
+
// <Content><![CDATA[this is a test]]></Content>
|
|
10
|
+
// <MsgId>1234567890123456</MsgId>
|
|
11
|
+
// </xml>
|
|
12
|
+
toUserName=""
|
|
13
|
+
fromUserName=""//其实是一个userid
|
|
14
|
+
createTime=-1
|
|
15
|
+
msgType=""//text文本
|
|
16
|
+
content=""
|
|
17
|
+
msgId=-1//只有收到消息才会有
|
|
18
|
+
}
|
|
19
|
+
export let GWechatOATool:WechatOATool=null
|
|
20
|
+
export class WechatOATool
|
|
21
|
+
{
|
|
22
|
+
convertMsg(xmlStr:string)
|
|
23
|
+
{
|
|
24
|
+
if(!xmlStr)
|
|
25
|
+
{
|
|
26
|
+
return null
|
|
27
|
+
}
|
|
28
|
+
let msg = new WechatOAMsg()
|
|
29
|
+
let pre = "<ToUserName><![CDATA["
|
|
30
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
31
|
+
msg.toUserName=xmlStr.substr(0,xmlStr.indexOf("]"))
|
|
32
|
+
pre = "<FromUserName><![CDATA["
|
|
33
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
34
|
+
msg.fromUserName=xmlStr.substr(0,xmlStr.indexOf("]"))
|
|
35
|
+
pre = "<CreateTime>"
|
|
36
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
37
|
+
msg.createTime=parseInt(xmlStr.substr(0,xmlStr.indexOf("<")))
|
|
38
|
+
pre = "<MsgType><![CDATA["
|
|
39
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
40
|
+
msg.msgType=xmlStr.substr(0,xmlStr.indexOf("]"))
|
|
41
|
+
pre = "<Content><![CDATA["
|
|
42
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
43
|
+
msg.content=xmlStr.substr(0,xmlStr.indexOf("]"))
|
|
44
|
+
pre = "<MsgId>"
|
|
45
|
+
xmlStr=xmlStr.substr(xmlStr.indexOf(pre)+pre.length)
|
|
46
|
+
msg.msgId=parseInt(xmlStr.substr(0,xmlStr.indexOf("<")))
|
|
47
|
+
return msg
|
|
48
|
+
}
|
|
49
|
+
toReplyXmlStr(msg:WechatOAMsg)
|
|
50
|
+
{
|
|
51
|
+
let xmlStr="<xml>"
|
|
52
|
+
xmlStr+="<ToUserName><![CDATA["+msg.toUserName+"]]></ToUserName>"
|
|
53
|
+
xmlStr+="<FromUserName><![CDATA["+msg.fromUserName+"]]></FromUserName>"
|
|
54
|
+
xmlStr+="<CreateTime>"+msg.createTime+"</CreateTime>"
|
|
55
|
+
xmlStr+="<MsgType><![CDATA["+msg.msgType+"]]></MsgType>"
|
|
56
|
+
xmlStr+="<Content><![CDATA["+msg.content+"]]></Content>"
|
|
57
|
+
xmlStr+="</xml>"
|
|
58
|
+
return xmlStr
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
GWechatOATool=new WechatOATool()
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as _ from "underscore";
|
|
2
|
+
import * as URLEncode from "urlencode";
|
|
3
|
+
import { GServerCfg } from "../Config/IServerConfig";
|
|
4
|
+
import { GHttpTool } from "../Logic/HttpTool";
|
|
5
|
+
import { GLog } from "../Logic/Log";
|
|
6
|
+
|
|
7
|
+
export class WechatUserInfo
|
|
8
|
+
{
|
|
9
|
+
openid="OPENID"
|
|
10
|
+
nickname="NICKNAME"
|
|
11
|
+
sex=1
|
|
12
|
+
province="PROVINCE"
|
|
13
|
+
city="CITY"
|
|
14
|
+
country="COUNTRY"
|
|
15
|
+
headimgurl= "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0"
|
|
16
|
+
privilege=[
|
|
17
|
+
"PRIVILEGE1",
|
|
18
|
+
"PRIVILEGE2"
|
|
19
|
+
]
|
|
20
|
+
unionid="o6_bmasdasdsad6_2sgVt7hMZOPfL"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export let GWechatTool:WechatTool=null
|
|
24
|
+
export class WechatTool
|
|
25
|
+
{
|
|
26
|
+
/**
|
|
27
|
+
* 获取获取code的url
|
|
28
|
+
*/
|
|
29
|
+
getAuthCodeUrl()
|
|
30
|
+
{
|
|
31
|
+
let appid="wx80f0f10fe1304e9d"
|
|
32
|
+
let url = "https://open.weixin.qq.com/connect/qrconnect?appid="+ GServerCfg.third_cfg.wechat.app_id
|
|
33
|
+
url+="&redirect_uri="+URLEncode.encode(GServerCfg.third_cfg.wechat.redirect_uri)
|
|
34
|
+
url+="&response_type=code&scope=snsapi_login"
|
|
35
|
+
//必须 client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
|
|
36
|
+
let state=_.random(1000000,9999999)
|
|
37
|
+
url+="&state="+state
|
|
38
|
+
return url
|
|
39
|
+
}
|
|
40
|
+
async getAccessInfo(auth_code:string):Promise<any>
|
|
41
|
+
{
|
|
42
|
+
if(!auth_code)
|
|
43
|
+
{
|
|
44
|
+
return null
|
|
45
|
+
}
|
|
46
|
+
let url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+GServerCfg.third_cfg.wechat.app_id+"&secret="+GServerCfg.third_cfg.wechat.app_key+"&code="+auth_code+"&grant_type=authorization_code"
|
|
47
|
+
let rs = await GHttpTool.get(url)
|
|
48
|
+
/*
|
|
49
|
+
{
|
|
50
|
+
"access_token":"ACCESS_TOKEN",
|
|
51
|
+
"expires_in":7200,
|
|
52
|
+
"refresh_token":"REFRESH_TOKEN",
|
|
53
|
+
"openid":"OPENID",
|
|
54
|
+
"scope":"SCOPE",
|
|
55
|
+
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
|
|
56
|
+
}
|
|
57
|
+
{"errcode":40029,"errmsg":"invalid code"}
|
|
58
|
+
*/
|
|
59
|
+
if(rs.body&&rs.body.access_token)
|
|
60
|
+
{
|
|
61
|
+
return rs.body
|
|
62
|
+
}
|
|
63
|
+
else
|
|
64
|
+
{
|
|
65
|
+
GLog.error(rs.body)
|
|
66
|
+
}
|
|
67
|
+
return null
|
|
68
|
+
}
|
|
69
|
+
async getUserInfo(access_token:string,openid:string):Promise<WechatUserInfo>
|
|
70
|
+
{
|
|
71
|
+
let url = "https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+openid
|
|
72
|
+
let rs = await GHttpTool.get(url)
|
|
73
|
+
if(rs.body)
|
|
74
|
+
{
|
|
75
|
+
return rs.body
|
|
76
|
+
}
|
|
77
|
+
return null
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
GWechatTool=new WechatTool()
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Engine } from './../Engine/Engine';
|
|
2
|
+
import { Request } from '../Engine/Request';
|
|
3
|
+
import { Response } from '../Engine/Response';
|
|
4
|
+
|
|
5
|
+
export class BaseController
|
|
6
|
+
{
|
|
7
|
+
protected _request:Request=null
|
|
8
|
+
get request()
|
|
9
|
+
{
|
|
10
|
+
return this._request
|
|
11
|
+
}
|
|
12
|
+
protected _response:Response=null
|
|
13
|
+
get response()
|
|
14
|
+
{
|
|
15
|
+
return this._response
|
|
16
|
+
}
|
|
17
|
+
//模块名称
|
|
18
|
+
protected _module:string=""
|
|
19
|
+
protected _ctr_name:string=""
|
|
20
|
+
get ctrName()
|
|
21
|
+
{
|
|
22
|
+
return this._ctr_name
|
|
23
|
+
}
|
|
24
|
+
protected _engine:Engine=null
|
|
25
|
+
get postData()
|
|
26
|
+
{
|
|
27
|
+
if(!this._request)
|
|
28
|
+
{
|
|
29
|
+
return <any>{}
|
|
30
|
+
}
|
|
31
|
+
return this._request.postData||<any>{}
|
|
32
|
+
}
|
|
33
|
+
get paramData()
|
|
34
|
+
{
|
|
35
|
+
if(!this._request)
|
|
36
|
+
{
|
|
37
|
+
return <any>{}
|
|
38
|
+
}
|
|
39
|
+
return this._request.params||<any>{}
|
|
40
|
+
}
|
|
41
|
+
constructor(req:Request, res:Response,engine:Engine)
|
|
42
|
+
{
|
|
43
|
+
this._engine = engine
|
|
44
|
+
this._request = req
|
|
45
|
+
this._response = res
|
|
46
|
+
//静态控制器,传过来全是空
|
|
47
|
+
if(this._request)
|
|
48
|
+
{
|
|
49
|
+
this._request.debugInfo()
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async init()
|
|
53
|
+
{
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 方便static ctr使用
|
|
58
|
+
* @param req
|
|
59
|
+
* @param res
|
|
60
|
+
* @param engine
|
|
61
|
+
*/
|
|
62
|
+
initStatic(req:Request, res:Response,engine:Engine)
|
|
63
|
+
{
|
|
64
|
+
this._engine = engine
|
|
65
|
+
this._request = req
|
|
66
|
+
this._response = res
|
|
67
|
+
this._request.debugInfo()
|
|
68
|
+
}
|
|
69
|
+
//填充每个页面需要的通用数据
|
|
70
|
+
protected _init_data(model?)
|
|
71
|
+
{
|
|
72
|
+
model = model||{}
|
|
73
|
+
model.webName = this._engine.cfg.web_name
|
|
74
|
+
return {model}
|
|
75
|
+
}
|
|
76
|
+
showJson(model?)
|
|
77
|
+
{
|
|
78
|
+
this._response.renderJson(model,this._request.headers.origin)
|
|
79
|
+
}
|
|
80
|
+
show(model?)
|
|
81
|
+
{
|
|
82
|
+
let html = this._engine.getRenderHtml(this._request, this._response, this._init_data(model))
|
|
83
|
+
this._response.renderHtml(html)
|
|
84
|
+
}
|
|
85
|
+
showText(text,noMeta?:boolean)
|
|
86
|
+
{
|
|
87
|
+
if(!noMeta)
|
|
88
|
+
{
|
|
89
|
+
text="<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"+text
|
|
90
|
+
}
|
|
91
|
+
this._response.renderHtml(text)
|
|
92
|
+
}
|
|
93
|
+
redirect(module?:string,controller?:string, action?:string,params?)
|
|
94
|
+
{
|
|
95
|
+
module = module || this._module
|
|
96
|
+
controller = controller || this._ctr_name
|
|
97
|
+
let url = this.parseFullUrl(module,controller, action)
|
|
98
|
+
params=params||{}
|
|
99
|
+
let str_p=""
|
|
100
|
+
for(let key in params)
|
|
101
|
+
{
|
|
102
|
+
str_p+="&"+key+"="+params[key]
|
|
103
|
+
}
|
|
104
|
+
if(str_p.length>0)
|
|
105
|
+
{
|
|
106
|
+
str_p="?"+str_p.substring(1)
|
|
107
|
+
}
|
|
108
|
+
url+=str_p
|
|
109
|
+
this._response.redirect(url)
|
|
110
|
+
}
|
|
111
|
+
parseFullUrl(module:string,controller:string, action:string)
|
|
112
|
+
{
|
|
113
|
+
if (typeof action === "undefined" || !action)
|
|
114
|
+
{
|
|
115
|
+
action = "index"
|
|
116
|
+
if(this._engine.cfg.routs.defaults.action==action)
|
|
117
|
+
{
|
|
118
|
+
action=null
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
let url = ""
|
|
122
|
+
if(this._engine.cfg.routs.onlyModule)
|
|
123
|
+
{
|
|
124
|
+
url = this._request.root + "/" + controller
|
|
125
|
+
}
|
|
126
|
+
else
|
|
127
|
+
{
|
|
128
|
+
url = this._request.root + "/" + module+ "/" + controller
|
|
129
|
+
}
|
|
130
|
+
if(action)
|
|
131
|
+
{
|
|
132
|
+
url+="/"+action
|
|
133
|
+
}
|
|
134
|
+
return url
|
|
135
|
+
}
|
|
136
|
+
get remoteHost()
|
|
137
|
+
{
|
|
138
|
+
return this._request.remoteHost
|
|
139
|
+
}
|
|
140
|
+
}
|