cloud_disk_menu.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package models
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. type CloudDiskMenu struct {
  10. MenuId int `gorm:"column:menu_id;primaryKey"` // `orm:"column(menu_id);pk" gorm:"primaryKey" description:"目录ID"`
  11. MenuName string `gorm:"column:menu_name"` //`description:"目录名称"`
  12. ParentId int `gorm:"column:parent_id"` //`description:"父级ID"`
  13. Size int64 `gorm:"column:size"` //`description:"目录大小"`
  14. AdminId int `gorm:"column:admin_id"` //`description:"创建人ID"`
  15. AdminName string `gorm:"column:admin_name"` //`description:"创建人名称"`
  16. CreateTime time.Time `grom:"column:create_time"` //`description:"创建时间"`
  17. ModifyTime time.Time `gorm:"column:modify_time"` //`description:"修改时间"`
  18. }
  19. func (m *CloudDiskMenu) TableName() string {
  20. return "cloud_disk_menu"
  21. }
  22. func (m *CloudDiskMenu) Create() (err error) {
  23. err = global.DEFAULT_DmSQL.Create(m).Error
  24. return
  25. }
  26. func (m *CloudDiskMenu) Update(cols []string) (err error) {
  27. err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
  28. return
  29. }
  30. func (m *CloudDiskMenu) GetItemById(id int) (err error) {
  31. sql := `SELECT * FROM cloud_disk_menu WHERE menu_id = ? LIMIT 1`
  32. err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
  33. return
  34. }
  35. func (m *CloudDiskMenu) GetItemByCondition(condition string, pars []interface{}) (err error) {
  36. sql := `SELECT * FROM cloud_disk_menu WHERE 1=1 `
  37. sql += condition
  38. sql += ` LIMIT 1`
  39. err = global.DEFAULT_DmSQL.Raw(sql, pars...).First(&m).Error
  40. return
  41. }
  42. func (m *CloudDiskMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*CloudDiskMenu, err error) {
  43. fields := strings.Join(fieldArr, ",")
  44. if len(fieldArr) == 0 {
  45. fields = `*`
  46. }
  47. order := ``
  48. if orderRule != "" {
  49. order = ` ORDER BY ` + orderRule
  50. }
  51. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  52. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&items).Error
  53. return
  54. }
  55. type CloudDiskMenuCreateReq struct {
  56. MenuName string `description:"目录名称"`
  57. ParentId int `description:"父级ID"`
  58. }
  59. type CloudDiskMenuRenameReq struct {
  60. MenuId int `description:"目录ID"`
  61. MenuName string `description:"目录名称"`
  62. }
  63. type CloudDiskMenuDeleteReq struct {
  64. MenuId int `description:"目录ID"`
  65. }
  66. // DeleteCloudDiskMenuAndResourcesByMenuIds 根据目录IDs删除目录及文件
  67. func DeleteCloudDiskMenuAndResourcesByMenuIds(menuIds []int) (err error) {
  68. menuLens := len(menuIds)
  69. if menuLens == 0 {
  70. return
  71. }
  72. tx := global.DEFAULT_DmSQL.Begin()
  73. defer func() {
  74. if err != nil {
  75. _ = tx.Rollback()
  76. } else {
  77. _ = tx.Commit()
  78. }
  79. }()
  80. sql := `DELETE FROM cloud_disk_menu WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
  81. if err = tx.Exec(sql, menuIds).Error; err != nil {
  82. return
  83. }
  84. sql = `DELETE FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
  85. if err = tx.Exec(sql, menuIds).Error; err != nil {
  86. return
  87. }
  88. return
  89. }
  90. type CloudDiskMenuTree struct {
  91. *CloudDiskMenu
  92. Children []*CloudDiskMenuTree `gorm:"-"`
  93. }