realtime.go 1017 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // 实时数据
  2. package controllers
  3. import (
  4. "encoding/json"
  5. "box-gm/utils"
  6. "io/ioutil"
  7. "log"
  8. "github.com/astaxie/beego"
  9. )
  10. type RealTimeController struct {
  11. beego.Controller
  12. }
  13. // 主界面
  14. // 通过c.Data[key]返回数据
  15. // ace模板文件通过{{.key}}获取数据
  16. func (c *RealTimeController) Get() {
  17. userinfo := c.GetSession("user")
  18. if userinfo == nil {
  19. c.Ctx.Redirect(302, "/accountlogin")
  20. return
  21. }
  22. //界面模板文件
  23. c.TplName = "welcome.tpl"
  24. }
  25. // 同步数据
  26. func (c *RealTimeController) Post() {
  27. body, err := ioutil.ReadAll(c.Ctx.Request.Body)
  28. if err != nil {
  29. log.Printf("realtime post err[%v]", err)
  30. c.Data["json"] = map[string]interface{}{
  31. "code": "1",
  32. "msg": "数据为空",
  33. }
  34. c.ServeJSON()
  35. return
  36. }
  37. var report []*utils.RTLogStruct
  38. json.Unmarshal(body, &report)
  39. for _, v := range report {
  40. // log.Printf("realtime [%v]", v)
  41. utils.WriteLog(v)
  42. }
  43. c.Data["json"] = map[string]interface{}{
  44. "code": "0",
  45. "msg": "上报数据成功",
  46. }
  47. c.ServeJSON()
  48. }