hotime/context.go
2017-08-17 02:14:22 +00:00

76 lines
1.2 KiB
Go

package hotime
import (
"encoding/json"
"net/http"
"time"
"errors"
)
type Context struct {
LastErr Error
tag int64
Resp http.ResponseWriter
Req *http.Request
Application *Application
RouterString []string
Config Map
Db *HoTimeDB
resp Map
CacheIns
SessionIns
}
//唯一标志
func (this *Context) GetTag() int64 {
if this.tag == int64(0) {
this.tag = time.Now().UnixNano()
}
return this.tag
}
//唯一标志
func (this *Context) Mtd(router [3]string) Map {
this.Application.Router[router[0]][router[1]][router[2]](this)
d := this.resp
this.resp = nil
return d
}
//打印
func (this *Context) Display(statu int, data interface{}) {
resp := Map{"statu": statu}
if statu != 0 {
temp := Map{}
tpe:=this.Config.GetMap("error").GetString(ObjToStr(statu))
if tpe==""{
this.LastErr.SetError(errors.New("找不到对应的错误码"))
}
temp["type"] = tpe
temp["msg"] = data
resp["result"] = temp
} else {
resp["result"] = data
}
this.resp = resp
//this.Data=d;
}
func (this *Context) View() {
if this.resp == nil {
return
}
d, err := json.Marshal(this.resp)
if err != nil {
return
}
this.resp = nil
this.Resp.Write(d)
}