123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- package system
- import (
- "eta/eta_api/utils"
- "time"
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- )
- type SysRoleAddReq struct {
- RoleName string `description:"角色名称"`
- RoleType string `description:"角色类型"`
- }
- type SysRole struct {
- RoleId int `orm:"column(role_id);pk" description:"角色ID"`
- RoleName string `description:"角色名称"`
- RoleType string `description:"角色类型"`
- RoleTypeCode string `description:"角色类型编码"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time
- }
- type SysRoleItem struct {
- RoleId int `orm:"column(role_id);pk" description:"角色ID"`
- RoleName string `description:"角色名称"`
- RoleType string `description:"角色类型"`
- RoleTypeCode string `description:"角色类型编码"`
- CreateTime time.Time `description:"创建时间"`
- RoleLevel int `description:"角色等级:0-表示一级角色,每个账号只能绑定一个一级角色 ,1-表示二级角色,每个账号可以绑定多个二级 角色"`
- }
- func GetSysRoleCount(roleName string) (count int, err error) {
- sql := `SELECT COUNT(1) AS count FROM sys_role WHERE role_name=? `
- o := orm.NewOrm()
- err = o.Raw(sql, roleName).QueryRow(&count)
- return
- }
- func AddSysRole(item *SysRole) (lastId int64, err error) {
- o := orm.NewOrm()
- lastId, err = o.Insert(item)
- return
- }
- type SysRoleEditReq struct {
- RoleId int `description:"角色ID"`
- RoleName string `description:"角色名称"`
- RoleType string `description:"角色类型"`
- }
- func GetSysRoleById(roleId int) (item *SysRoleItem, err error) {
- sql := `SELECT * FROM sys_role WHERE role_id=? `
- o := orm.NewOrm()
- err = o.Raw(sql, roleId).QueryRow(&item)
- return
- }
- func GetSysRoleByName(roleName string) (item *SysRoleItem, err error) {
- sql := `SELECT * FROM sys_role WHERE role_name=? `
- o := orm.NewOrm()
- err = o.Raw(sql, roleName).QueryRow(&item)
- return
- }
- // GetSysRoleByRoleTypeCode role_type_code
- func GetSysRoleByRoleTypeCode(roleTypeCode string) (item *SysRoleItem, err error) {
- sql := `SELECT * FROM sys_role WHERE role_type_code=? `
- o := orm.NewOrm()
- err = o.Raw(sql, roleTypeCode).QueryRow(&item)
- return
- }
- func ModifySysRole(roleName, roleType, roleTypeCode string, groupId int) (err error) {
- sql := `UPDATE sys_role SET role_name=?,role_type=?,role_type_code=?,modify_time=NOW() WHERE role_id=? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, roleName, roleType, roleTypeCode, groupId).Exec()
- return
- }
- type SysRoleDeleteReq struct {
- RoleId int `description:"角色ID"`
- }
- func DeleteSysRole(roleId int) (err error) {
- sql := `DELETE FROM sys_role WHERE role_id=? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, roleId).Exec()
- return
- }
- func GetSysRoleListCount(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrm()
- sql := `SELECT COUNT(1) AS count FROM sys_role WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func GetSysRoleList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysRoleItem, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM sys_role WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += `ORDER BY modify_time DESC LIMIT ?,?`
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- type SysRoleListResp struct {
- List []*SysRoleItem
- Paging *paging.PagingItem `description:"分页数据"`
- }
- type RoleMenu struct {
- MenuId int `description:"导航唯一标识"`
- Name string `description:"导航名称"`
- NameEn string `description:"导航名称(英文)"`
- }
- type RoleMenuList struct {
- MenuId int `description:"导航唯一标识"`
- Name string `description:"导航名称"`
- NameEn string `description:"导航名称(英文)"`
- Child []*RoleMenu
- CheckList []int
- }
- type RoleMenuListResp struct {
- List []*RoleMenuList
- }
- func GetRoleMenuList() (items []*RoleMenuList, err error) {
- sql := `SELECT * FROM sys_menu WHERE parent_id=0 ORDER BY sort ASC `
- _, err = orm.NewOrm().Raw(sql).QueryRows(&items)
- return
- }
- func GetRoleMenuByParentId(parentId int) (items []*RoleMenu, err error) {
- sql := `SELECT * FROM sys_menu WHERE parent_id=? ORDER BY sort ASC `
- _, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
- return
- }
- func GetCheckListRoleMenu(roleId, parentId int) (items []*RoleMenuList, err error) {
- sql := ` SELECT b.menu_id FROM sys_role_menu AS a
- INNER JOIN sys_menu AS b ON a.menu_id=b.menu_id
- WHERE a.role_id=? AND a.type = 0
- AND b.parent_id=? `
- _, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
- return
- }
- type RoleMenusAddReq struct {
- RoleId int `description:"角色ID"`
- MenuIdStr string `description:"MenuId,多个用英文逗号隔开"`
- MenuButtonIdStr string `description:"menu_button_id,多个用英文逗号隔开"`
- }
- func DeleteRoleMenuByRoleId(roleId int) (err error) {
- sql := `DELETE FROM sys_role_menu WHERE role_id=? `
- _, err = orm.NewOrm().Raw(sql, roleId).Exec()
- return
- }
- type SysRoleMenu struct {
- RoleMenuId int `orm:"column(role_menu_id);pk" description:"关联id"`
- RoleId int
- MenuId int
- Type int `description:"类型:0-全选;1-半选(此字段仅用于前端的回显)"`
- }
- func AddSysRoleMenu(item *SysRoleMenu) (lastId int64, err error) {
- o := orm.NewOrm()
- lastId, err = o.Insert(item)
- return
- }
- // CreateMultiSysRoleMenu 删除并新增角色权限
- func CreateMultiSysRoleMenu(roleId int, items []*SysRoleMenu) (err error) {
- if roleId == 0 {
- return
- }
- o := orm.NewOrm()
- tx, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- return
- }
- _ = tx.Commit()
- }()
- sql := `DELETE FROM sys_role_menu WHERE role_id = ?`
- _, err = tx.Raw(sql, roleId).Exec()
- if err != nil {
- return
- }
- if len(items) > 0 {
- _, err = tx.InsertMulti(len(items), items)
- }
- return
- }
- func GetSysRoleAll(levelFlag bool) (items []*SysRoleItem, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM sys_role WHERE 1=1`
- if levelFlag {
- sql += ` and role_level = 0`
- }
- sql += ` ORDER BY create_time DESC `
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- type SysRoleAllResp struct {
- List []*SysRoleItem
- }
- // GetEnglishAuthRoleIds 获取英文权限角色IDs
- func GetEnglishAuthRoleIds(roleCodes []string) (roleIds []int, err error) {
- if len(roleCodes) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT role_id FROM sys_role WHERE role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
- _, err = o.Raw(sql, roleCodes).QueryRows(&roleIds)
- return
- }
- // GetSysRoleMenuByRoleId 获取角色关联菜单
- func GetSysRoleMenuByRoleId(roleId int) (items []*SysRoleMenu, err error) {
- sql := `SELECT
- *
- FROM
- sys_role_menu
- WHERE
- role_id = ?`
- _, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
- return
- }
- // GetEnglishAuthRoleItems 获取英文权限角色
- func GetEnglishAuthRoleItems(roleCodes []string) (items []*SysRole, err error) {
- if len(roleCodes) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT * FROM sys_role WHERE role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
- _, err = o.Raw(sql, roleCodes).QueryRows(&items)
- return
- }
- func GetSysRoleByIdList(id []int) (items []*SysRole, err error) {
- if len(id) == 0 {
- return
- }
- o := orm.NewOrm()
- sql := `SELECT * FROM sys_role WHERE role_id IN (` + utils.GetOrmInReplace(len(id)) + `)`
- _, err = o.Raw(sql, id).QueryRows(&items)
- return
- }
|