WarningDB.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package Warning
  2. //
  3. //import (
  4. // "database/sql"
  5. // "fmt"
  6. // "gorm.io/driver/mysql"
  7. // "gorm.io/gorm"
  8. // "strings"
  9. //
  10. // "time"
  11. //)
  12. //
  13. //var db *gorm.DB
  14. //var sqlDB *sql.DB
  15. //
  16. //type WarningDB struct {
  17. // Id int64 `gorm:"column:ID;type:bigint;primaryKey"`
  18. // T_pid int32 `gorm:"column:t_pid;index:merge"` // Account.Company 绑定公司
  19. // T_tp int `gorm:"column:t_tp;index:merge"` // 报警类型 ->WarningList
  20. // T_sn string `gorm:"column:t_sn;index:tsn;size:256;"` // 设备序列号
  21. // T_D_name string `gorm:"column:t__d_name;size:256;"` // 设备名称
  22. // T_id int32 `gorm:"column:t_id;"` // 传感器 ID
  23. // T_DS_name string `gorm:"column:t__d_s_name;size:256;"` // 传感器名称
  24. // T_Remark string `gorm:"column:t__remark;type:longtext;"` // 采集内容
  25. // T_Ut time.Time `gorm:"column:t__ut;type:datetime;"` // 采集时间
  26. // T_fUt time.Time `gorm:"column:t_f_ut;type:datetime;"` // 首次采集时间
  27. // T_Text string `gorm:"column:t__text;type:longtext;"` // 处理备注
  28. // T_Log string `gorm:"column:t__log;type:longtext;"` // 通知日志
  29. // T_Msid int64 `gorm:"column:t__msid;"` // 消息ID
  30. // T_State int `gorm:"column:t__state;size:2;default:2;index:merge"` // 0 删除 1 不处理 2 已处理 3 未处理
  31. // CreateTime time.Time `gorm:"column:create_time;type:datetime;autoUpdateTime"` //auto_now_add 第一次保存时才设置时间
  32. // UpdateTime time.Time `gorm:"column:update_time;type:datetime;autoCreateTime"` //auto_now 每次 model 保存时都会对时间自动更新
  33. //}
  34. //
  35. //var MysqlServer_UrlPort = "127.0.0.1:40306"
  36. //var MysqlServer_Database = "cold"
  37. //var MysqlServer_Username = "cold"
  38. //var MysqlServer_Password = "yjwyEckZS7rE5H!"
  39. //
  40. //func init() {
  41. // // 连接数据库
  42. // var err error
  43. //
  44. // dsn := MysqlServer_Username + ":" + MysqlServer_Password + "@tcp(" + MysqlServer_UrlPort + ")/" + MysqlServer_Database + "?charset=utf8mb4&loc=Local&parseTime=True"
  45. // db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
  46. // if err != nil {
  47. //
  48. // fmt.Println(err)
  49. //
  50. // }
  51. // sqlDB, err = db.DB()
  52. // // SetMaxIdleConns 设置空闲连接池中的最大连接数。
  53. // sqlDB.SetMaxIdleConns(1)
  54. //
  55. // // SetMaxOpenConns 设置数据库连接最大打开数。
  56. // sqlDB.SetMaxOpenConns(10)
  57. //
  58. // // SetConnMaxLifetime 设置可重用连接的最长时间
  59. // sqlDB.SetConnMaxLifetime(time.Hour)
  60. // //db.AutoMigrate(&DeviceWarning{})
  61. //
  62. // //db.SetLogger(log.New(logs.LogxOrm, "\r\nWarningBack:", 0))
  63. // fmt.Println("db init")
  64. //}
  65. //
  66. ///*
  67. //time_a : 开始时间 "2024-01-24 08:21:40"
  68. //time_b : 结束时间 "2024-03-24 08:21:40"
  69. //WHERE_t_pid : 公司ID > 0
  70. //WHERE_t_tp : 报警类型 > 0
  71. //WHERE_t__state : 状态 -1 无限制 0 删除 1 不处理 2 已处理 3 未处理
  72. //WHERE_t_sn : 设备序列号
  73. //PageIndex : 页码值
  74. //PageSize : 每页多少
  75. //*/
  76. //
  77. //func Handy(time_a, time_b string, WHERE_t_pid int, WHERE_t_tp int, WHERE_t__state int, WHERE_t_sn string, PageIndex int, PageSize int) ([]WarningDB, int) {
  78. // var offset int // 数据起点
  79. // if PageIndex <= 1 {
  80. // offset = 0
  81. // } else {
  82. // offset = (PageIndex - 1) * PageSize
  83. // }
  84. // var TABLE = "warning_"
  85. // monthsArray := generateMonthArray(time_a, time_b)
  86. //
  87. // var Warning_List []WarningDB
  88. // var Count_List []int
  89. // var Count_Num int // 累积数量
  90. // for _, v := range monthsArray {
  91. // var count int64
  92. // var countoffset int // 当前数据起点
  93. //
  94. // db.Table(TABLE+v).Where("t_tp = ?", 110).Count(&count)
  95. // Count_List = append(Count_List, int(count))
  96. // fmt.Println("TABLE:", TABLE+v, count)
  97. // countoffset = offset - Count_Num // 当前数据起点
  98. // if countoffset < 0 {
  99. // countoffset = 0
  100. // }
  101. // Count_Num += int(count)
  102. // Limit := PageSize - len(Warning_List) // 还缺多少数量
  103. // if offset <= Count_Num && Limit > 0 {
  104. // var warninglist []WarningDB
  105. // dbW := db.Table(TABLE + v)
  106. // if WHERE_t_pid > 0 {
  107. // dbW.Where("t_tp = ? ", WHERE_t_pid)
  108. // }
  109. // if WHERE_t_tp > 0 {
  110. // dbW.Where("t_pid = ? ", WHERE_t_pid)
  111. // }
  112. // if WHERE_t__state != -1 {
  113. // dbW.Where("t__state = ? ", WHERE_t__state)
  114. // }
  115. // if len(WHERE_t_sn) > 0 {
  116. // dbW.Where("t__state LIKE ? ", WHERE_t_sn)
  117. // }
  118. // dbW.Order("t__ut").Offset(countoffset).Limit(Limit).Find(&warninglist)
  119. // Warning_List = append(Warning_List, warninglist...)
  120. // }
  121. //
  122. // }
  123. // return Warning_List, Count_Num
  124. //}
  125. //
  126. //func (t *WarningDB) Create(TableName string) {
  127. //CreateSQL:
  128. // result := db.Table(TableName).Create(t) // 插入数据
  129. // if result.Error != nil {
  130. // if strings.Compare(result.Error.Error(), "doesn't exist") != 0 {
  131. // db.Table(TableName).AutoMigrate(&WarningDB{}) // 建表
  132. // goto CreateSQL // 返回 重新插入
  133. // }
  134. // }
  135. //}
  136. //
  137. ////func UPDATE(name string, ID int64, t__log string) {
  138. //// logs.Println("修改数据:", name, " ID:", ID)
  139. //// db.Exec("UPDATE "+name+" SET t__log = ? WHERE ID = ? ;", t__log, ID)
  140. ////}
  141. //
  142. //func generateMonthArray(startDateStr string, endDateStr string) []string {
  143. // startDate, _ := time.Parse("2006-01-02 15:04:05", startDateStr)
  144. // endDate, _ := time.Parse("2006-01-02 15:04:05", endDateStr)
  145. //
  146. // monthsArray := []string{}
  147. // for startDate.Before(endDate) || startDate.Equal(endDate) {
  148. // monthsArray = append(monthsArray, fmt.Sprintf("%d_%02d", startDate.Year(), startDate.Month()))
  149. // startDate = startDate.AddDate(0, 1, 0) // Add one month
  150. // }
  151. //
  152. // return monthsArray
  153. //}