main.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package main
  2. import (
  3. _ "Cold_Api/Nats"
  4. "Cold_Api/conf"
  5. "Cold_Api/controllers"
  6. "Cold_Api/models/Device"
  7. "Cold_Api/routers"
  8. _ "Cold_Api/routers"
  9. "fmt"
  10. "github.com/beego/beego/v2/adapter/orm"
  11. beego "github.com/beego/beego/v2/server/web"
  12. "github.com/beego/beego/v2/server/web/filter/cors"
  13. _ "github.com/go-sql-driver/mysql"
  14. "runtime"
  15. "strconv"
  16. "strings"
  17. )
  18. func init() {
  19. //lib.WritePid()
  20. fmt.Println(runtime.GOOS)
  21. orm.RegisterDriver("mysql", orm.DRMySQL)
  22. //orm.RegisterDataBase("default", "mysql", "zdxq:7e5853d9178edfcc@tcp(47.108.133.234:3306)/zdxq?charset=utf8",100,200)
  23. orm.RegisterDataBase("default", "mysql",
  24. conf.MysqlServer_Username+":"+conf.MysqlServer_Password+"@tcp("+conf.MysqlServer_UrlPort+")/"+conf.MysqlServer_Database+"?charset=utf8mb4&loc=Local&parseTime=True",
  25. conf.MysqlServer_MaxIdleConnections, conf.MysqlServer_MaxOpenConnections)
  26. orm.RunSyncdb("default", false, false) // 创建数据库
  27. println(conf.MysqlServer_Username + ":" + conf.MysqlServer_Password + "@tcp(" + conf.MysqlServer_UrlPort + ")/" + conf.MysqlServer_Database + "?charset=utf8mb4&loc=Local&parseTime=True")
  28. }
  29. func main() {
  30. HTTPPort_int, _ := strconv.Atoi(conf.HTTPPort)
  31. beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
  32. // 允许访问所有源
  33. AllowAllOrigins: true,
  34. // 可选参数"GET", "POST", "PUT", "DELETE", "OPTIONS" (*为所有)
  35. AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
  36. // 指的是允许的Header的种类
  37. AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "T_pid"},
  38. // 公开的HTTP标头列表
  39. ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Access-Control-Allow-Headers", "Content-Type"},
  40. // 如果设置,则允许共享身份验证凭据,例如cookie
  41. AllowCredentials: true,
  42. })).InsertFilter("/*", beego.BeforeRouter, routers.RBACFilter)
  43. beego.BConfig.AppName = conf.AppName // 项目名
  44. beego.BConfig.ServerName = conf.AppName + conf.HTTPPort //server 名称
  45. beego.BConfig.RunMode = "dev" // 应用的运行模式
  46. beego.BConfig.Listen.HTTPPort = HTTPPort_int //监听端口 本地:8518 线上:8528
  47. beego.AddFuncMap("convertm", convertM)
  48. beego.AddFuncMap("IsYD", IsYD)
  49. go controllers.DeviceRealTime() // 实时 数据
  50. fmt.Println("======= beego.Run ======")
  51. beego.Run()
  52. }
  53. // 转十进制
  54. func convertM(Devicesensor Device.DeviceSensor) (out string) {
  55. //var TouTime float64
  56. //TouTime = 2 * 60
  57. //now := time.Now()
  58. //DeviceData_, is := Device.Read_DeviceSensorData_ById_New(Devicesensor.T_sn, Devicesensor.T_id)
  59. //if is {
  60. // // 谁 是最新的
  61. // fmt.Println(DeviceData_.T_time, DeviceData_.T_time.Format("2006-01-02 15:04:05"))
  62. // fmt.Println(Devicesensor.T_time, Devicesensor.T_time.Format("2006-01-02 15:04:05"))
  63. // if DeviceData_.T_time.Unix() > Devicesensor.T_time.Unix() {
  64. // subM := now.Sub(DeviceData_.T_time)
  65. // fmt.Println(subM.Minutes(), "分钟")
  66. // if subM.Minutes() > TouTime {
  67. // return "温湿度传感器-2.png"
  68. // } else {
  69. // return "温湿度传感器-1.png"
  70. // }
  71. // }
  72. //}
  73. //fmt.Println(Devicesensor.T_time, Devicesensor.T_time.Format("2006-01-02 15:04:05"))
  74. //subM := now.Sub(Devicesensor.T_time)
  75. //fmt.Println(int(subM.Minutes()), "分钟")
  76. //if subM.Minutes() > TouTime {
  77. // // 传感器超时
  78. // return "温湿度传感器-2.png"
  79. //}
  80. //if (0 == Devicesensor.T_Tlower && 0 == Devicesensor.T_RHlower) && (0 == Devicesensor.T_Tupper && 0 == Devicesensor.T_RHupper) {
  81. // return "温湿度传感器-1.png"
  82. //}
  83. //if Devicesensor.T_t < Devicesensor.T_Tlower || Devicesensor.T_rh < Devicesensor.T_RHlower || Devicesensor.T_t > Devicesensor.T_Tupper || Devicesensor.T_rh > Devicesensor.T_RHupper {
  84. // // 传感器 超标
  85. // return "温湿度传感器-3.png"
  86. //}
  87. // 传感器正常
  88. return "温湿度传感器-1.png"
  89. }
  90. // 转十进制
  91. func IsYD(sn string) (out int) {
  92. if strings.Contains(sn, "YD") {
  93. return 1
  94. }
  95. // 传感器正常
  96. return 0
  97. }