cgserver 7.10.2113 → 7.12.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.
Files changed (80) hide show
  1. package/package.json +3 -3
  2. package/src/Framework/AI/AiObject.ts +0 -12
  3. package/src/Framework/AI/Astar.ts +0 -157
  4. package/src/Framework/AI/BehaviorAI.ts +0 -382
  5. package/src/Framework/AI/Entity.ts +0 -37
  6. package/src/Framework/AI/Point.ts +0 -84
  7. package/src/Framework/AI/TriggerMgr.ts +0 -280
  8. package/src/Framework/Config/Config.ts +0 -61
  9. package/src/Framework/Config/FrameworkConfig.ts +0 -286
  10. package/src/Framework/Config/IServerConfig.ts +0 -28
  11. package/src/Framework/Config/_error_.ts +0 -32
  12. package/src/Framework/Core/Core.ts +0 -810
  13. package/src/Framework/Core/Timer.ts +0 -147
  14. package/src/Framework/Database/Decorator/AutoIncrement.ts +0 -9
  15. package/src/Framework/Database/Decorator/DBCache.ts +0 -74
  16. package/src/Framework/Database/Decorator/NotNull.ts +0 -9
  17. package/src/Framework/Database/Decorator/PrimaryKey.ts +0 -9
  18. package/src/Framework/Database/Decorator/Property.ts +0 -64
  19. package/src/Framework/Database/Decorator/Table.ts +0 -13
  20. package/src/Framework/Database/Decorator/Type.ts +0 -21
  21. package/src/Framework/Database/MSSqlManager.ts +0 -52
  22. package/src/Framework/Database/MongoBaseService.ts +0 -136
  23. package/src/Framework/Database/MongoManager.ts +0 -501
  24. package/src/Framework/Database/MysqlBaseService.ts +0 -345
  25. package/src/Framework/Database/MysqlManager.ts +0 -212
  26. package/src/Framework/Database/RedisManager.ts +0 -544
  27. package/src/Framework/Logic/CacheTool.ts +0 -85
  28. package/src/Framework/Logic/EventTool.ts +0 -31
  29. package/src/Framework/Logic/HttpTool.ts +0 -82
  30. package/src/Framework/Logic/Log.ts +0 -171
  31. package/src/Framework/Logic/SyncQueueTool.ts +0 -51
  32. package/src/Framework/Service/AccountService.ts +0 -508
  33. package/src/Framework/Service/MongoAccountService.ts +0 -456
  34. package/src/Framework/Service/MongoCacheService.ts +0 -48
  35. package/src/Framework/Service/MongoUserService.ts +0 -103
  36. package/src/Framework/Service/UserService.ts +0 -168
  37. package/src/Framework/Service/ini.ts +0 -33
  38. package/src/Framework/SocketServer/IClientWebSocket.ts +0 -50
  39. package/src/Framework/SocketServer/IRpc.ts +0 -12
  40. package/src/Framework/SocketServer/IRpcClientWebSocket.ts +0 -75
  41. package/src/Framework/SocketServer/IRpcServerWebSocket.ts +0 -76
  42. package/src/Framework/SocketServer/IServerWebSocket.ts +0 -88
  43. package/src/Framework/SocketServer/ISocketServer.ts +0 -243
  44. package/src/Framework/SocketServer/IWebSocket.ts +0 -243
  45. package/src/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.ts +0 -68
  46. package/src/Framework/SocketServer/ProtoFilter/IProtoFilter.ts +0 -11
  47. package/src/Framework/SocketServer/ProtoFilter/JsonProtoFilter.ts +0 -34
  48. package/src/Framework/SocketServer/ProtoFilter/ProtoFactory.ts +0 -34
  49. package/src/Framework/ThirdParty/AlipayTool.ts +0 -224
  50. package/src/Framework/ThirdParty/Alisms.ts +0 -53
  51. package/src/Framework/ThirdParty/AppleTool.ts +0 -252
  52. package/src/Framework/ThirdParty/CgMq.ts +0 -153
  53. package/src/Framework/ThirdParty/EmailTool.ts +0 -37
  54. package/src/Framework/ThirdParty/OpenSocial.ts +0 -36
  55. package/src/Framework/ThirdParty/QQTool.ts +0 -124
  56. package/src/Framework/ThirdParty/QiniuTool.ts +0 -23
  57. package/src/Framework/ThirdParty/Rpc.ts +0 -75
  58. package/src/Framework/ThirdParty/WechatOATool.ts +0 -61
  59. package/src/Framework/ThirdParty/WechatTool.ts +0 -80
  60. package/src/Framework/WebServer/Controller/BaseController.ts +0 -140
  61. package/src/Framework/WebServer/Controller/BaseUserController.ts +0 -209
  62. package/src/Framework/WebServer/Controller/MongoBaseUserController.ts +0 -209
  63. package/src/Framework/WebServer/Decorator/AdminValidate.ts +0 -19
  64. package/src/Framework/WebServer/Decorator/AuthorityValidate.ts +0 -25
  65. package/src/Framework/WebServer/Decorator/CreatorValidate.ts +0 -19
  66. package/src/Framework/WebServer/Decorator/JsonAdminValidate.ts +0 -16
  67. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +0 -2
  68. package/src/Framework/WebServer/Decorator/JsonAuthorityValidate.ts +0 -23
  69. package/src/Framework/WebServer/Decorator/JsonCreatorValidate.ts +0 -19
  70. package/src/Framework/WebServer/Decorator/SyncCall.ts +0 -20
  71. package/src/Framework/WebServer/Decorator/SyncCallServer.ts +0 -45
  72. package/src/Framework/WebServer/Engine/ControllerManager.ts +0 -134
  73. package/src/Framework/WebServer/Engine/Engine.ts +0 -186
  74. package/src/Framework/WebServer/Engine/RazorJs.ts +0 -720
  75. package/src/Framework/WebServer/Engine/Request.ts +0 -267
  76. package/src/Framework/WebServer/Engine/Response.ts +0 -123
  77. package/src/Framework/WebServer/IWebServer.ts +0 -61
  78. package/src/Framework/cgserver.ts +0 -112
  79. package/src/Framework/index.ts +0 -92
  80. package/src/test/test.ts +0 -12
@@ -1,37 +0,0 @@
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()
@@ -1,36 +0,0 @@
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()
@@ -1,124 +0,0 @@
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()
@@ -1,23 +0,0 @@
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()
@@ -1,75 +0,0 @@
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
- }
@@ -1,61 +0,0 @@
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()
@@ -1,80 +0,0 @@
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()
@@ -1,140 +0,0 @@
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
- }