123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package models
- import (
- "eta_gn/eta_api/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- type CloudDiskMenu struct {
- MenuId int `orm:"column(menu_id);pk" 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) {
- o := orm.NewOrm()
- id, err := o.Insert(m)
- if err != nil {
- return
- }
- m.MenuId = int(id)
- return
- }
- func (m *CloudDiskMenu) Update(cols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(m, cols...)
- return
- }
- func (m *CloudDiskMenu) GetItemById(id int) (err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cloud_disk_menu WHERE menu_id = ? LIMIT 1`
- err = o.Raw(sql, id).QueryRow(&m)
- return
- }
- func (m *CloudDiskMenu) GetItemByCondition(condition string, pars []interface{}) (err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM cloud_disk_menu WHERE 1=1 `
- sql += condition
- sql += ` LIMIT 1`
- err = o.Raw(sql, pars).QueryRow(&m)
- return
- }
- func (m *CloudDiskMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*CloudDiskMenu, err error) {
- o := orm.NewOrm()
- 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 = o.Raw(sql, pars).QueryRows(&items)
- 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
- }
- o := orm.NewOrm()
- tx, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- } else {
- _ = tx.Commit()
- }
- }()
- sql := `DELETE FROM cloud_disk_menu WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
- if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
- return
- }
- sql = `DELETE FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
- if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
- return
- }
- return
- }
- type CloudDiskMenuTree struct {
- *CloudDiskMenu
- Children []*CloudDiskMenuTree
- }
|