RawSql.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package RawSql
  2. import (
  3. "Cold_Api/conf"
  4. "Cold_Api/controllers/lib"
  5. "fmt"
  6. "github.com/beego/beego/v2/adapter/orm"
  7. _ "github.com/go-sql-driver/mysql"
  8. "time"
  9. )
  10. // 模板
  11. type RawSql struct {
  12. Id int `orm:"column(ID);size(11);auto;pk"`
  13. T_id string `orm:"size(10);null"` // 订单唯一ID
  14. T_name string `orm:"size(256);null"` // 设备名称
  15. T_text string `orm:"type(text);null"` // 详情
  16. CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
  17. }
  18. type RawSqlR struct {
  19. T_id string // ID
  20. T_name string // SQL 名称
  21. T_text string // 详情
  22. }
  23. func (t *RawSql) TableName() string {
  24. return "RawSql" // 数据库名称 // ************** 替换 FormulaList **************
  25. }
  26. func init() {
  27. //注册模型
  28. orm.RegisterModel(new(RawSql))
  29. }
  30. // ---------------- 特殊方法 -------------------
  31. func RawSqlToRawSqlR(t RawSql) (r RawSqlR) {
  32. r.T_id = t.T_id
  33. r.T_name = t.T_name
  34. r.T_text = t.T_text
  35. return
  36. }
  37. // 获取 ById
  38. func Read_RawSql_ById(id int) (r RawSql) {
  39. o := orm.NewOrm()
  40. r = RawSql{Id: id}
  41. err := o.Read(&r) // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  42. if err != nil {
  43. fmt.Println(err)
  44. }
  45. return r
  46. }
  47. // 获取 ById
  48. func Read_RawSql_ByT_id(T_id string) (r RawSql) {
  49. o := orm.NewOrm()
  50. r = RawSql{T_id: T_id}
  51. err := o.Read(&r, "T_id") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  52. if err != nil {
  53. fmt.Println(err)
  54. }
  55. return r
  56. }
  57. // 添加
  58. func Add_RawSql(m RawSql) (id int64, err error) {
  59. o := orm.NewOrm()
  60. T_id := ""
  61. var rand_x int64
  62. for true {
  63. var rx RawSql
  64. rx.T_id = lib.GetRandstring(5, "", rand_x)
  65. err = o.Read(&rx, "T_id") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  66. if err != nil {
  67. T_id = rx.T_id
  68. break
  69. }
  70. rand_x++
  71. }
  72. m.T_id = T_id
  73. id, err = o.Insert(&m)
  74. if err != nil {
  75. fmt.Println(err)
  76. }
  77. return id, err
  78. }
  79. // 修改
  80. func Update_TRawSql(r RawSql, cols ...string) bool {
  81. o := orm.NewOrm()
  82. if num, err := o.Update(&r, cols...); err == nil {
  83. fmt.Println("Number of records updated in database:", num)
  84. return true
  85. }
  86. return false
  87. }
  88. // 删除
  89. func Delete_RawSql(m RawSql) (err error) {
  90. o := orm.NewOrm()
  91. if num, err := o.Delete(&m); err == nil {
  92. fmt.Println("Number of records deleted in database:", num)
  93. }
  94. return
  95. }
  96. // 获取列表
  97. func Read_RawSql_List(page int, page_z int) (t []RawSql, cnt int64) {
  98. o := orm.NewOrm()
  99. // 也可以直接使用 Model 结构体作为表名
  100. qs := o.QueryTable(new(RawSql))
  101. var offset int64
  102. if page_z == 0 {
  103. page_z = conf.Page_size
  104. }
  105. if page <= 1 {
  106. offset = 0
  107. } else {
  108. offset = int64((page - 1) * page_z)
  109. }
  110. qs.Limit(page_z, offset).OrderBy("Id").All(&t)
  111. cnt, _ = qs.Count()
  112. return t, cnt
  113. }