/
SysDept.go
63 lines (52 loc) · 1.15 KB
/
SysDept.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package models
type SysDept struct {
Name string `json:"name" valid:"Required;"`
Pid int64 `json:"pid"`
Enabled int8 `json:"enabled" `
Children []SysDept `gorm:"-" json:"children"`
Label string `gorm:"-" json:"label"`
BaseModel
}
func (SysDept) TableName() string {
return "sys_dept"
}
func GetAllDepts(maps interface{}) []SysDept {
var depts []SysDept
db.Where(maps).Find(&depts)
return RecursionDeptList(depts, 0)
}
// 递归函数
func RecursionDeptList(data []SysDept, pid int64) []SysDept {
var listTree = make([]SysDept, 0)
for _, value := range data {
value.Label = value.Name
if value.Pid == pid {
value.Children = RecursionDeptList(data, value.Id)
listTree = append(listTree, value)
}
}
return listTree
}
func AddDept(m *SysDept) error {
var err error
if err = db.Create(m).Error; err != nil {
return err
}
return err
}
func UpdateByDept(m *SysDept) error {
var err error
err = db.Save(m).Error
if err != nil {
return err
}
return err
}
func DelByDept(ids []int64) error {
var err error
err = db.Where("id in (?)", ids).Delete(&SysDept{}).Error
if err != nil {
return err
}
return err
}