h_monitor.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package handler
  2. import (
  3. "cicv-data-closedloop/common/config/c_db"
  4. "cicv-data-closedloop/common/config/c_log"
  5. commonEntity "cicv-data-closedloop/common/entity"
  6. "cicv-data-closedloop/common/util"
  7. "github.com/gin-gonic/gin"
  8. "net/http"
  9. )
  10. type DeviceMonitor struct {
  11. Id int `db:"id" json:"id"` // 自增id
  12. TotalCpuUsage string `db:"total_cpu_usage" json:"totalCpuUsage"` // cpu总占用
  13. TotalMemoryUsage string `db:"total_memory_usage" json:"totalMemoryUsage"` // 内存总占用
  14. Top10Process string `db:"top10_process" json:"top10Process"` // cpu占用前十的进程信息
  15. }
  16. // SaveDeviceMonitor 保存实车上传的监控信息
  17. func SaveDeviceMonitor(c *gin.Context) {
  18. param := new(DeviceMonitor)
  19. // 映射到结构体
  20. if err := c.ShouldBindJSON(&param); err != nil {
  21. c_log.GlobalLogger.Error("项目启动接收请求参数报错:", err)
  22. c.JSON(http.StatusBadRequest, commonEntity.Response{
  23. Code: 500,
  24. Msg: "请求体解析失败。",
  25. })
  26. return
  27. }
  28. // 插入到数据库
  29. sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["insert_device_monitor.sql"])
  30. if err := c_db.DoTx(sqlTemplate, []any{param.TotalCpuUsage, param.TotalMemoryUsage, param.Top10Process}); err != nil {
  31. c_log.GlobalLogger.Error("插入数据报错:", err)
  32. c.JSON(http.StatusBadRequest, commonEntity.Response{
  33. Code: 500,
  34. Msg: "插入数据报错。",
  35. })
  36. return
  37. }
  38. c.JSON(http.StatusOK, commonEntity.Response{
  39. Code: 200,
  40. Msg: "插入数据成功。",
  41. })
  42. }