package hotime import ( . "code.hoteas.com/golang/hotime/cache" . "code.hoteas.com/golang/hotime/common" . "code.hoteas.com/golang/hotime/db" "encoding/json" "net/http" "time" ) type Context struct { *Application Resp http.ResponseWriter Req *http.Request Log Map//日志有则创建 RouterString []string Config Map Db *HoTimeDB RespData Map RespFunc func() CacheIns SessionIns DataSize int HandlerStr string //复写请求url } // Mtd 唯一标志 func (that *Context) Mtd(router [3]string) Map { that.Application.Router[router[0]][router[1]][router[2]](that) d := that.RespData that.RespData = nil return d } //打印 func (that *Context) Display(statu int, data interface{}) { resp := Map{"status": statu} if statu != 0 { temp := Map{} tpe := that.Config.GetMap("error").GetString(ObjToStr(statu)) if tpe == "" { //logFmt(errors.New("找不到对应的错误码"), 2, LOG_WARN) } temp["type"] = tpe temp["msg"] = data resp["result"] = temp //兼容android等需要json转对象的服务 resp["error"] = temp } else { resp["result"] = data } that.RespData = resp //that.Data=d; } func (that *Context) View() { if that.RespFunc!=nil { that.RespFunc() } if that.RespData == nil { return } //创建日志 if that.Log!=nil{ that.Log["time"]=time.Now().Unix() if that.Session("admin_id").Data!=nil{ that.Log["admin_id"]=that.Session("admin_id").ToCeilInt() } if that.Session("user_id").Data!=nil{ that.Log["user_id"]=that.Session("user_id").ToCeilInt() } that.Db.Insert("logs",that.Log) } d, err := json.Marshal(that.RespData) if err != nil { return } that.DataSize = len(d) that.RespData = nil that.Resp.Write(d) return }