Files
jx-callback/business/model/dao/permission.go
2020-09-28 11:26:54 +08:00

69 lines
1.5 KiB
Go

package dao
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
)
func GetMenu(db *DaoDB, name string, level int, userID string) (menus []*model.Menu, err error) {
sqlParams := []interface{}{}
sql := `
SELECT DISTINCT a.*
FROM menu a
`
if userID != "" {
sql += `
JOIN menu d ON d.parent_id = a.id
JOIN user_role b ON b.user_id = ?
JOIN role_menu c ON c.menu_id = d.id AND c.role_id = b.role_id
`
sqlParams = append(sqlParams, userID)
}
sql += " WHERE a.deleted_at = ?"
sqlParams = append(sqlParams, utils.DefaultTimeValue)
if name != "" {
sql += " AND a.name LIKE ?"
sqlParams = append(sqlParams, "%"+name+"%")
}
if level != 0 {
sql += " AND a.level = ?"
sqlParams = append(sqlParams, level)
}
err = GetRows(db, &menus, sql, sqlParams)
return menus, err
}
func GetRole(db *DaoDB, name string) (roles []*model.Role, err error) {
sql := `
SELECT *
FROM role
WHERE deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if name != "" {
sql += " AND name LIKE ?"
sqlParams = append(sqlParams, "%"+name+"%")
}
err = GetRows(db, &roles, sql, sqlParams)
return roles, err
}
func GetUserRole(db *DaoDB, userID string) (userRoles []*model.UserRole, err error) {
sql := `
SELECT *
FROM user_role
WHERE deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if userID != "" {
sql += " AND user_id = ?"
sqlParams = append(sqlParams, userID)
}
err = GetRows(db, &userRoles, sql, sqlParams)
return userRoles, err
}