DataSource.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package DataSource
  2. import (
  3. "Cold_Api/controllers/lib"
  4. "github.com/beego/beego/v2/adapter/orm"
  5. orm2 "github.com/beego/beego/v2/client/orm"
  6. "github.com/beego/beego/v2/core/logs"
  7. "time"
  8. )
  9. // 产品类型
  10. type DataSource struct {
  11. Id int `orm:"column(ID);size(11);auto;pk"`
  12. T_id string `orm:"size(256);null"` // 数据源id
  13. T_name string `orm:"size(256);null"` // 数据源名称
  14. T_sql string `orm:"type(text);null"` // sql语句
  15. CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
  16. UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now 每次 model 保存时都会对时间自动更新
  17. }
  18. type DataSource_R struct {
  19. Id int
  20. T_id string
  21. T_name string
  22. T_sql string
  23. CreateTime string
  24. UpdateTime string
  25. }
  26. func (t *DataSource) TableName() string {
  27. return "data_source" // 数据库名称 // ************** 替换 FormulaList **************
  28. }
  29. func init() {
  30. //注册模型
  31. orm.RegisterModel(new(DataSource))
  32. }
  33. // ---------------- 特殊方法 -------------------
  34. func DataSourceToDataSource_R(t DataSource) (r DataSource_R) {
  35. r.Id = t.Id
  36. r.T_id = t.T_id
  37. r.T_name = t.T_name
  38. r.T_sql = t.T_sql
  39. r.CreateTime = t.CreateTime.Format("2006-01-02 15:04:05")
  40. r.UpdateTime = t.UpdateTime.Format("2006-01-02 15:04:05")
  41. return r
  42. }
  43. // 获取 ById
  44. func Read_DataSource_ById(id int) (r DataSource, err error) {
  45. o := orm.NewOrm()
  46. r = DataSource{Id: id}
  47. err = o.Read(&r)
  48. if err != nil {
  49. logs.Error(lib.FuncName(), err)
  50. return r, err
  51. }
  52. return r, err
  53. }
  54. func Read_DataSource_ByT_id(T_id string) (r DataSource, err error) {
  55. o := orm.NewOrm()
  56. r = DataSource{T_id: T_id}
  57. err = o.Read(&r, "T_id")
  58. if err != nil {
  59. logs.Error(lib.FuncName(), err)
  60. return r, err
  61. }
  62. return r, err
  63. }
  64. // 添加
  65. func Add_DataSource(r DataSource) (id int, err error) {
  66. o := orm.NewOrm()
  67. // 生成编号
  68. rand_x := 0
  69. for true {
  70. r.T_id = lib.GetRandstring(6, "", int64(rand_x)) // 1,336,336
  71. err = o.Read(&r, "T_id") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  72. if err != nil {
  73. break
  74. }
  75. rand_x += 1
  76. }
  77. _, err = o.Insert(&r)
  78. if err != nil {
  79. logs.Error(lib.FuncName(), err)
  80. return
  81. }
  82. id = r.Id
  83. return
  84. }
  85. func Update_DataSource(r DataSource, cols ...string) error {
  86. o := orm.NewOrm()
  87. _, err := o.Update(&r, cols...)
  88. if err != nil {
  89. logs.Error(lib.FuncName(), err)
  90. return err
  91. }
  92. return nil
  93. }
  94. // 删除
  95. func Delete_DataSource_ById(id int) (err error) {
  96. o := orm.NewOrm()
  97. v := DataSource{Id: id}
  98. _, err = o.Delete(&v)
  99. if err != nil {
  100. logs.Error(lib.FuncName(), err)
  101. return err
  102. }
  103. return nil
  104. }
  105. func Exec_DataSource_Sql(sql string, data []interface{}) (lists []orm2.Params) {
  106. o := orm.NewOrm()
  107. var pl_lists []orm2.Params
  108. _, err := o.Raw(sql).SetArgs(data...).Values(&pl_lists)
  109. if err != nil {
  110. logs.Error(lib.FuncName(), err)
  111. }
  112. return pl_lists
  113. }
  114. // 获取列表
  115. func Read_DataSource_List(T_name string, page int, page_z int) (r []DataSource_R, cnt int64) {
  116. o := orm.NewOrm()
  117. // 也可以直接使用 Model 结构体作为表名
  118. var map_r []DataSource
  119. qs := o.QueryTable(new(DataSource))
  120. var offset int64
  121. if page <= 1 {
  122. offset = 0
  123. } else {
  124. offset = int64((page - 1) * page_z)
  125. }
  126. cond := orm.NewCondition()
  127. if len(T_name) > 0 {
  128. cond = cond.And("T_name__icontains", T_name)
  129. }
  130. _, err := qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond)).OrderBy("-Id").All(&map_r)
  131. if err != nil {
  132. logs.Error(lib.FuncName(), err)
  133. return
  134. }
  135. cnt, err = qs.SetCond((*orm2.Condition)(cond)).Count()
  136. if err != nil {
  137. logs.Error(lib.FuncName(), err)
  138. return
  139. }
  140. for _, v := range map_r {
  141. r = append(r, DataSourceToDataSource_R(v))
  142. }
  143. return r, cnt
  144. }