package eta import ( "fmt" "hongze/hz_crm_eta/global" "time" ) type ClassifyMenu struct { MenuId int `gorm:"column:menu_id;primary_key;AUTO_INCREMENT;NOT NULL;comment:'子目录ID'"` MenuName string `gorm:"column:menu_name;default:;NOT NULL;comment:'子目录名称'"` ClassifyId int `gorm:"column:classify_id;default:0;NOT NULL;comment:'分类ID'"` Sort int `gorm:"column:sort;default:0;NOT NULL;comment:'排序'"` CreateTime time.Time `gorm:"column:create_time;default:NULL;comment:'创建时间'"` ModifyTime time.Time `gorm:"column:modify_time;default:NULL;comment:'更新时间'"` } func (c *ClassifyMenu) TableName() string { return "classify_menu" } // GetClassifyMenuList 获取子目录列表 func (c *ClassifyMenu) GetClassifyMenuList(condition string, pars []interface{}) (items []*ClassifyMenu, err error) { // todo 当condition为空时 err = global.MYSQL["rddp"].Model(c).Where(condition, pars...).Order("sort ASC, create_time ASC").Scan(&items).Error return } // InsertAndUpdateClassifyMenu 新增/编辑/删除分类子目录 func InsertAndUpdateClassifyMenu(insertMenus []*ClassifyMenu, editMenus []*ClassifyMenu, deleteMenuIds []int) (err error) { tx := global.MYSQL["rddp"].Begin() defer func() { if err != nil { tx.Rollback() } else { tx.Commit() } }() // 编辑 sql := `` if len(editMenus) > 0 { for i := range editMenus { sql = fmt.Sprintf(`UPDATE classify_menu SET menu_name = '%s', sort = %d, modify_time = NOW() WHERE menu_id = %d`, editMenus[i].MenuName, editMenus[i].Sort, editMenus[i].MenuId) if e := tx.Exec(sql).Error; e != nil { err = e return } } } // 删除 if len(deleteMenuIds) > 0 { for i := range deleteMenuIds { sql = fmt.Sprintf(`DELETE FROM classify_menu WHERE menu_id = %d LIMIT 1`, deleteMenuIds[i]) if e := tx.Exec(sql).Error; e != nil { err = e return } // 删除关联关系 sql = fmt.Sprintf(`DELETE FROM classify_menu_relation WHERE menu_id = %d`, deleteMenuIds[i]) if e := tx.Exec(sql).Error; e != nil { err = e return } } } // 新增 if len(insertMenus) > 0 { e := tx.CreateInBatches(insertMenus, len(insertMenus)).Error if e != nil { err = e return } } return }