role.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package models
  2. import (
  3. "errors"
  4. "log"
  5. "github.com/astaxie/beego/orm"
  6. "github.com/astaxie/beego/validation"
  7. )
  8. type Role struct {
  9. Id int64 `form:"id"`
  10. Name string `orm:"size(32)" form:"name" valid:"Required;MaxSize(32);MinSize(6)"`
  11. Permission int64 `form:"permission"`
  12. }
  13. func init() {
  14. orm.RegisterModel(new(Role))
  15. }
  16. func (r *Role) TableName() string {
  17. return "tb_role"
  18. }
  19. func checkRole(r *Role) (err error) {
  20. valid := validation.Validation{}
  21. b, _ := valid.Valid(&r)
  22. if !b {
  23. for _, err := range valid.Errors {
  24. log.Println(err.Key, err.Message)
  25. return errors.New(err.Message)
  26. }
  27. }
  28. return nil
  29. }
  30. func GetRolelist() (roles []orm.Params, count int64) {
  31. o := orm.NewOrm()
  32. role := new(Role)
  33. qs := o.QueryTable(role)
  34. qs.Values(&roles)
  35. count, _ = qs.Count()
  36. return roles, count
  37. }
  38. // 添加权限组
  39. func AddRole(r *Role) (int64, error) {
  40. if err := checkRole(r); err != nil {
  41. return 0, err
  42. }
  43. o := orm.NewOrm()
  44. role := new(Role)
  45. role.Name = r.Name
  46. role.Permission = r.Permission
  47. id, err := o.Insert(role)
  48. return id, err
  49. }
  50. // 更新用户
  51. func UpdateRole(r *Role) (int64, error) {
  52. if err := checkRole(r); err != nil {
  53. return 0, err
  54. }
  55. o := orm.NewOrm()
  56. role := make(orm.Params)
  57. if len(r.Name) > 0 {
  58. role["Name"] = r.Name
  59. }
  60. if r.Permission != 0 {
  61. role["Permission"] = r.Permission
  62. }
  63. if len(role) == 0 {
  64. return 0, errors.New("update field is empty")
  65. }
  66. var table Role
  67. num, err := o.QueryTable(table).Filter("Id", r.Id).Update(role)
  68. return num, err
  69. }
  70. func DelRoleById(Id int64) (int64, error) {
  71. o := orm.NewOrm()
  72. status, err := o.Delete(&Role{Id: Id})
  73. return status, err
  74. }
  75. func GetRoleById(id int64) (role *Role) {
  76. role = &Role{Id: id}
  77. o := orm.NewOrm()
  78. err := o.Read(role, "Id")
  79. if err != nil {
  80. return nil
  81. }
  82. return role
  83. }
  84. func GetRoleIdByName(name string) int64 {
  85. role := &Role{Name: name}
  86. o := orm.NewOrm()
  87. err := o.Read(role, "Name")
  88. if err != nil {
  89. return -1
  90. }
  91. return role.Id
  92. }