chart_framework.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package data_manage
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "strings"
  6. "time"
  7. )
  8. // ChartFramework 图库框架表
  9. type ChartFramework struct {
  10. ChartFrameworkId int `orm:"column(chart_framework_id);pk"`
  11. FrameworkCode string `description:"框架唯一编码"`
  12. FrameworkName string `description:"框架名称"`
  13. FrameworkImg string `description:"框架图片"`
  14. FrameworkContent string `description:"框架内容"`
  15. IsPublic int `description:"是否公开:0-私有;1-公开"`
  16. PublicTime time.Time `description:"公开时间"`
  17. Sort int `description:"排序"`
  18. AdminId int `description:"创建人ID"`
  19. AdminName string `description:"创建人姓名"`
  20. CreateTime time.Time `description:"创建时间"`
  21. ModifyTime time.Time `description:"更新时间"`
  22. }
  23. func (m *ChartFramework) TableName() string {
  24. return "chart_framework"
  25. }
  26. func (m *ChartFramework) PrimaryId() string {
  27. return ChartFrameworkColumns.ChartFrameworkId
  28. }
  29. var ChartFrameworkColumns = struct {
  30. ChartFrameworkId string
  31. FrameworkCode string
  32. FrameworkName string
  33. FrameworkImg string
  34. FrameworkContent string
  35. IsPublic string
  36. PublicTime string
  37. Sort string
  38. AdminId string
  39. AdminName string
  40. CreateTime string
  41. ModifyTime string
  42. }{
  43. ChartFrameworkId: "chart_framework_id",
  44. FrameworkCode: "framework_code",
  45. FrameworkName: "framework_name",
  46. FrameworkImg: "framework_img",
  47. FrameworkContent: "framework_content",
  48. IsPublic: "is_public",
  49. PublicTime: "public_time",
  50. Sort: "sort",
  51. AdminId: "admin_id",
  52. AdminName: "admin_name",
  53. CreateTime: "create_time",
  54. ModifyTime: "modify_time",
  55. }
  56. func (m *ChartFramework) Create() (err error) {
  57. o := orm.NewOrmUsingDB("data")
  58. id, err := o.Insert(m)
  59. if err != nil {
  60. return
  61. }
  62. m.ChartFrameworkId = int(id)
  63. return
  64. }
  65. func (m *ChartFramework) CreateMulti(items []*ChartFramework) (err error) {
  66. if len(items) == 0 {
  67. return
  68. }
  69. o := orm.NewOrmUsingDB("data")
  70. _, err = o.InsertMulti(len(items), items)
  71. return
  72. }
  73. func (m *ChartFramework) Update(cols []string) (err error) {
  74. o := orm.NewOrmUsingDB("data")
  75. _, err = o.Update(m, cols...)
  76. return
  77. }
  78. func (m *ChartFramework) Del() (err error) {
  79. o := orm.NewOrmUsingDB("data")
  80. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  81. _, err = o.Raw(sql, m.ChartFrameworkId).Exec()
  82. return
  83. }
  84. func (m *ChartFramework) GetItemById(id int) (item *ChartFramework, err error) {
  85. o := orm.NewOrmUsingDB("data")
  86. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  87. err = o.Raw(sql, id).QueryRow(&item)
  88. return
  89. }
  90. func (m *ChartFramework) GetItemByCondition(condition string, pars []interface{}) (item *ChartFramework, err error) {
  91. o := orm.NewOrmUsingDB("data")
  92. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
  93. err = o.Raw(sql, pars).QueryRow(&item)
  94. return
  95. }
  96. func (m *ChartFramework) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  97. o := orm.NewOrmUsingDB("data")
  98. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  99. err = o.Raw(sql, pars).QueryRow(&count)
  100. return
  101. }
  102. func (m *ChartFramework) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ChartFramework, err error) {
  103. o := orm.NewOrmUsingDB("data")
  104. fields := strings.Join(fieldArr, ",")
  105. if len(fieldArr) == 0 {
  106. fields = `*`
  107. }
  108. order := `ORDER BY create_time DESC`
  109. if orderRule != "" {
  110. order = ` ORDER BY ` + orderRule
  111. }
  112. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  113. _, err = o.Raw(sql, pars).QueryRows(&items)
  114. return
  115. }
  116. func (m *ChartFramework) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ChartFramework, err error) {
  117. o := orm.NewOrmUsingDB("data")
  118. fields := strings.Join(fieldArr, ",")
  119. if len(fieldArr) == 0 {
  120. fields = `*`
  121. }
  122. order := `ORDER BY create_time DESC`
  123. if orderRule != "" {
  124. order = ` ORDER BY ` + orderRule
  125. }
  126. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  127. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  128. return
  129. }
  130. func (m *ChartFramework) CreateFrameworkAndNodes(item *ChartFramework, nodes []*ChartFrameworkNode) (err error) {
  131. o := orm.NewOrmUsingDB("data")
  132. tx, e := o.Begin()
  133. if e != nil {
  134. err = fmt.Errorf("orm begin err: %s", e.Error())
  135. return
  136. }
  137. defer func() {
  138. if err != nil {
  139. _ = tx.Rollback()
  140. return
  141. }
  142. _ = tx.Commit()
  143. }()
  144. id, e := tx.Insert(item)
  145. if e != nil {
  146. err = fmt.Errorf("insert framework err: %s", e.Error())
  147. return
  148. }
  149. newId := int(id)
  150. item.ChartFrameworkId = newId
  151. if len(nodes) > 0 {
  152. for _, n := range nodes {
  153. n.ChartFrameworkId = newId
  154. }
  155. _, e = tx.InsertMulti(len(nodes), nodes)
  156. if e != nil {
  157. err = fmt.Errorf("insert multi nodes err: %s", e.Error())
  158. return
  159. }
  160. }
  161. return
  162. }
  163. func (m *ChartFramework) EditFrameworkAndNodes(item *ChartFramework, updateCols []string, nodes []*ChartFrameworkNode) (err error) {
  164. o := orm.NewOrmUsingDB("data")
  165. tx, e := o.Begin()
  166. if e != nil {
  167. err = fmt.Errorf("orm begin err: %s", e.Error())
  168. return
  169. }
  170. defer func() {
  171. if err != nil {
  172. _ = tx.Rollback()
  173. return
  174. }
  175. _ = tx.Commit()
  176. }()
  177. _, e = tx.Update(item, updateCols...)
  178. if e != nil {
  179. err = fmt.Errorf("framework update err: %s", e.Error())
  180. return
  181. }
  182. sql := `DELETE FROM chart_framework_node WHERE chart_framework_id = ?`
  183. _, e = tx.Raw(sql, item.ChartFrameworkId).Exec()
  184. if e != nil {
  185. err = fmt.Errorf("clear nodes err: %s", e.Error())
  186. return
  187. }
  188. if len(nodes) > 0 {
  189. _, e = tx.InsertMulti(len(nodes), nodes)
  190. if e != nil {
  191. err = fmt.Errorf("insert multi nodes err: %s", e.Error())
  192. return
  193. }
  194. }
  195. return
  196. }
  197. // ChartFrameworkAddReq 图库框架新增请求体
  198. type ChartFrameworkAddReq struct {
  199. FrameworkName string `description:"框架名称"`
  200. FrameworkImg string `description:"框架图片"`
  201. FrameworkContent string `description:"框架内容"`
  202. Nodes []int `description:"框架关联的所有节点ID"`
  203. }
  204. // ChartFrameworkEditReq 图库框架编辑请求体
  205. type ChartFrameworkEditReq struct {
  206. ChartFrameworkId int `description:"图库框架ID"`
  207. ChartFrameworkAddReq
  208. }
  209. // ChartFrameworkRemoveReq 图库框架编辑请求体
  210. type ChartFrameworkRemoveReq struct {
  211. ChartFrameworkId int `description:"图库框架ID"`
  212. }
  213. // ChartFrameworkRenameReq 图库框架重命名请求体
  214. type ChartFrameworkRenameReq struct {
  215. ChartFrameworkId int `description:"图库框架ID"`
  216. FrameworkName int `description:"框架名称"`
  217. }
  218. // ChartFrameworkEditPublicReq 图库框架编辑公开请求体
  219. type ChartFrameworkEditPublicReq struct {
  220. ChartFrameworkId int `description:"图库框架ID"`
  221. IsPublic int `description:"0-隐藏公开; 1-公开"`
  222. }
  223. // ChartFrameworkMoveReq 图库框架移动排序请求体
  224. type ChartFrameworkMoveReq struct {
  225. ChartFrameworkId int `description:"图库框架ID"`
  226. PrevChartFrameworkId int `description:"上一个框架ID"`
  227. NextChartFrameworkId int `description:"下一个框架ID"`
  228. }