123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package models
- import (
- "eta/eta_api/global"
- "eta/eta_api/utils"
- "fmt"
- "strings"
- "time"
- )
- type CloudDiskMenu struct {
- MenuId int `gorm:"column:menu_id;primaryKey;autoIncrement" description:"目录ID"`
- MenuName string `description:"目录名称"`
- ParentId int `description:"父级ID"`
- Size int64 `description:"目录大小"`
- AdminId int `description:"创建人ID"`
- AdminName string `description:"创建人名称"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- }
- func (m *CloudDiskMenu) TableName() string {
- return "cloud_disk_menu"
- }
- func (m *CloudDiskMenu) Create() (err error) {
- err = global.DEFAULT_DB.Create(m).Error
- return
- }
- func (m *CloudDiskMenu) Update(cols []string) (err error) {
- err = global.DEFAULT_DB.Select(cols).Updates(m).Error
- return
- }
- func (m *CloudDiskMenu) GetItemById(id int) (err error) {
- sql := `SELECT * FROM cloud_disk_menu WHERE menu_id = ? LIMIT 1`
- err = global.DEFAULT_DB.Raw(sql, id).Find(&m).Error
- return
- }
- func (m *CloudDiskMenu) GetItemByCondition(condition string, pars []interface{}) (err error) {
- sql := `SELECT * FROM cloud_disk_menu WHERE 1=1 `
- sql += condition
- sql += ` LIMIT 1`
- err = global.DEFAULT_DB.Raw(sql, pars...).Find(&m).Error
- return
- }
- func (m *CloudDiskMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*CloudDiskMenu, err error) {
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := ``
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
- err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
- return
- }
- type CloudDiskMenuCreateReq struct {
- MenuName string `description:"目录名称"`
- ParentId int `description:"父级ID"`
- }
- type CloudDiskMenuRenameReq struct {
- MenuId int `description:"目录ID"`
- MenuName string `description:"目录名称"`
- }
- type CloudDiskMenuDeleteReq struct {
- MenuId int `description:"目录ID"`
- }
- // DeleteCloudDiskMenuAndResourcesByMenuIds 根据目录IDs删除目录及文件
- func DeleteCloudDiskMenuAndResourcesByMenuIds(menuIds []int) (err error) {
- menuLens := len(menuIds)
- if menuLens == 0 {
- return
- }
- tx := global.DEFAULT_DB.Begin()
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- } else {
- _ = tx.Commit()
- }
- }()
- sql := `DELETE FROM cloud_disk_menu WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
- err = tx.Exec(sql, menuIds).Error
- if err != nil {
- return
- }
- sql = `DELETE FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
- err = tx.Exec(sql, menuIds).Error
- if err != nil {
- return
- }
- return
- }
- type CloudDiskMenuTree struct {
- *CloudDiskMenu
- Children []*CloudDiskMenuTree
- }
|