zhangzengfei
2023-09-04 e8e536d1cb52d2126c8c7ce2ba1c7a76f7208678
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
64
65
66
67
68
69
70
71
72
73
74
package models
 
type SysMenu struct {
    Id             string         `gorm:"column:id;primary_key;" json:"id"`
    ParentId     string         `gorm:"column:parent_id" json:"parent_id"`
    ParentIds     string         `gorm:"column:parent_ids" json:"parent_ids"`
    Type         int         `gorm:"column:type" json:"type"`
    Name         string         `gorm:"column:name" json:"name"`
    Module         string         `gorm:"column:module" json:"module"`
    Permission     string         `gorm:"column:permission" json:"permission"`
    Sort         int         `gorm:"column:sort" json:"sort"`
    Icon         string         `gorm:"column:icon" json:"icon"`
    Url         string         `gorm:"column:url" json:"url"`
    Enable         bool         `gorm:"column:enable" json:"enable"`
    DelFlag     bool         `gorm:"column:del_flag" json:"del_flag"`
}
 
func (SysMenu) TableName() string {
    return "sys_menu"
}
 
func (sm *SysMenu) Insert() bool {
    result := db.Table("sys_menu").Create(&sm)
    if result.Error !=nil {
        return false
    }
    return result.RowsAffected>0
}
 
func (sm *SysMenu) Update() bool {
    result := db.Table("sys_menu").Update(&sm)
    if result.Error !=nil {
        return false
    }
    return result.RowsAffected>0
}
 
func (sm *SysMenu) SelectById(id string) (int64, error){
    result := db.Table("sys_menu").Where("id=?",id).First(&sm)
    if result.Error != nil || result.RowsAffected == 0 {
        return 0, err
    }
    return result.RowsAffected, nil
}
 
func (sm *SysMenu) FindAll() (list []SysMenu){
    if err:=db.Table("sys_menu").Scan(&list).Error;err !=nil{
        return nil
    }
    return list
}
 
func (sm *SysMenu) FindByRoleId(roleId string) (list []SysMenu) {
    if err:=db.Raw("select * from sys_menu sm join sys_role_menu srm on sm.id=srm.menu_id where srm.role_id=? order by sm.sort asc",roleId).Find(&list).Error;err !=nil{
        return nil
    }
    return list
}
 
func (sm *SysMenu) FindByUserId(userId string) (list []SysMenu) {
    if err:=db.Raw("select * from sys_menu sm join sys_user_menu srm on sm.id=srm.menu_id where srm.user_id=? order by sm.sort asc",userId).Find(&list).Error;err !=nil{
        return nil
    }
    return list
}
 
func (sm *SysMenu) GetMaxSort() int {
    var sort int
    err := db.Raw("select max(sort) as sort from sys_menu where type=0").Count(&sort).Error
    if err ==nil {
        return sort
    }
    return 1
}