sys_role.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package models
  2. import (
  3. "context"
  4. "time"
  5. "github.com/beego/beego/v2/client/orm"
  6. )
  7. type SysRole struct {
  8. SysRoleId int `orm:"pk" description:"角色id"`
  9. SysRoleName string `description:"姓名"`
  10. CreateTime time.Time `description:"创建时间"`
  11. ModifyTime time.Time `description:"更新时间"`
  12. }
  13. func (s *SysRole) Add() (err error) {
  14. o := orm.NewOrm()
  15. _, err = o.Insert(s)
  16. return
  17. }
  18. func DeleteSysRoleById(roleId int) (err error) {
  19. sql := `DELETE FROM sys_role WHERE sys_role_id=? `
  20. o := orm.NewOrm()
  21. _, err = o.Raw(sql, roleId).Exec()
  22. return
  23. }
  24. func GetSysRoleCountByRoleName(roleName string) (count int, err error) {
  25. sql := `SELECT COUNT(1) AS count FROM sys_role WHERE sys_role_name=? `
  26. o := orm.NewOrm()
  27. err = o.Raw(sql, roleName).QueryRow(&count)
  28. return
  29. }
  30. func UpdateSysUserRoleByRoleId(roleId int, roleName string) (err error) {
  31. o := orm.NewOrm()
  32. err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error {
  33. role := &SysRole{}
  34. role.SysRoleId = roleId
  35. role.SysRoleName = roleName
  36. role.ModifyTime = time.Now()
  37. _, e := txOrm.Update(role, "sys_role_id", "sys_role_name", "modify_time")
  38. if e != nil {
  39. return e
  40. }
  41. sql := `UPDATE sys_user SET sys_role_name=? WHERE sys_role_id=?`
  42. _, e = txOrm.Raw(sql, roleName, roleId).Exec()
  43. return e
  44. })
  45. return
  46. }
  47. func GetSysRoleById(id int) (item *SysRole, err error) {
  48. o := orm.NewOrm()
  49. sql := `SELECT * FROM sys_role WHERE sys_role_id=?`
  50. err = o.Raw(sql, id).QueryRow(&item)
  51. return
  52. }
  53. func GetSysRoleListCount() (count int, err error) {
  54. o := orm.NewOrm()
  55. sql := `SELECT COUNT(1) AS count FROM sys_role `
  56. err = o.Raw(sql).QueryRow(&count)
  57. return
  58. }
  59. func GetSysRoleList(startSize, pageSize int) (items []*SysRole, err error) {
  60. o := orm.NewOrm()
  61. sql := `SELECT * FROM sys_role ORDER BY modify_time DESC LIMIT ?,?`
  62. _, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
  63. return
  64. }
  65. // CreateMultiSysRoleMenu 删除并新增角色权限
  66. func CreateMultiSysRoleMenu(roleId int, items []*SysRoleMenuMapping) (err error) {
  67. if roleId == 0 {
  68. return
  69. }
  70. o := orm.NewOrm()
  71. err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error {
  72. sql := `DELETE FROM sys_role_menu_mapping WHERE sys_role_id = ?`
  73. _, e := txOrm.Raw(sql, roleId).Exec()
  74. if e != nil {
  75. return e
  76. }
  77. if len(items) > 0 {
  78. _, e = txOrm.InsertMulti(len(items), items)
  79. if e != nil {
  80. return e
  81. }
  82. }
  83. return nil
  84. })
  85. return
  86. }
  87. // GetSysRoleMenuByRoleId 获取角色关联菜单
  88. func GetSysRoleMenuByRoleId(roleId int) (items []*SysRoleMenuMapping, err error) {
  89. o := orm.NewOrm()
  90. sql := `SELECT * FROM sys_role_menu_mapping WHERE sys_role_id = ?`
  91. _, err = o.Raw(sql, roleId).QueryRows(&items)
  92. return
  93. }