http_log_autoprocess.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "html/template"
  6. "io"
  7. "net/http"
  8. "path/filepath"
  9. "strconv"
  10. "redisdog/model"
  11. )
  12. type LogProcessLogListRetData struct {
  13. Count int64
  14. List []*model.ProcessLogRow
  15. }
  16. type LogProcessLogListRet struct {
  17. Errno int `json:"errno"`
  18. Error string `json:"error"`
  19. Data LogProcessLogListRetData `json:"data"`
  20. }
  21. func log_autoprocess(resp http.ResponseWriter, req *http.Request) {
  22. sess, ok := checkLogin(resp, req)
  23. if !ok {
  24. return
  25. }
  26. //视图输出
  27. files := []string{
  28. filepath.Join(Cfg.TmplDir, "log", "autoprocess.tmpl"),
  29. filepath.Join(Cfg.TmplDir, "header.tmpl"),
  30. filepath.Join(Cfg.TmplDir, "navbar.tmpl"),
  31. }
  32. tmpl, err := template.New("autoprocess.tmpl").Funcs(TmplFuncMap).ParseFiles(files...)
  33. if err != nil {
  34. io.WriteString(resp, fmt.Sprintf("Error: %s\n", err.Error()))
  35. } else {
  36. tmpl.Execute(resp, struct {
  37. Sess *Session
  38. Req *http.Request
  39. Title string
  40. }{
  41. sess,
  42. req,
  43. "Redis扩容日志",
  44. })
  45. }
  46. }
  47. func log_autoprocess_list(resp http.ResponseWriter, req *http.Request) {
  48. _, ok := checkLogin(resp, req)
  49. if !ok {
  50. return
  51. }
  52. req.ParseForm()
  53. redisId, size, page, desc := 0, 50, 1, true
  54. if redisIdStr := req.Form.Get("redis_id"); redisIdStr != "" {
  55. if redisId, _ = strconv.Atoi(redisIdStr); redisId < 1 {
  56. redisId = 0
  57. }
  58. }
  59. if sizeStr := req.Form.Get("size"); sizeStr != "" {
  60. if size, _ = strconv.Atoi(sizeStr); size <= 1 {
  61. size = 50
  62. }
  63. }
  64. if pageStr := req.Form.Get("page"); pageStr != "" {
  65. if page, _ = strconv.Atoi(pageStr); page < 1 {
  66. page = 1
  67. }
  68. }
  69. if orderStr := req.Form.Get("order"); orderStr != "" {
  70. if orderStr == "ASC" {
  71. desc = false
  72. }
  73. }
  74. mdl := model.NewProcessLog(Db)
  75. cnt, err := mdl.Count(int64(redisId))
  76. if err != nil {
  77. resp.Write(ERROR_RET(1, fmt.Sprintf("查询失败:%s", err.Error())))
  78. } else {
  79. logs, err := mdl.GetList(int64(redisId), int64(size*(page-1)), int64(size), desc)
  80. if err != nil {
  81. resp.Write(ERROR_RET(1, fmt.Sprintf("查询失败:%s", err.Error())))
  82. } else {
  83. ret, _ := json.Marshal(LogProcessLogListRet{Errno: 0, Error: "", Data: LogProcessLogListRetData{Count: cnt, List: logs}})
  84. resp.Write(ret)
  85. }
  86. }
  87. }