userGroupRelate.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package userGroupRelate
  2. import (
  3. "errors"
  4. "github.com/baiy/Cadmin-server-go/models"
  5. "github.com/baiy/Cadmin-server-go/utils/set"
  6. "github.com/doug-martin/goqu/v9"
  7. )
  8. type Model struct {
  9. models.Model
  10. AdminUserGroupId string `json:"admin_user_group_id"`
  11. AdminAuthId string `json:"admin_auth_id"`
  12. }
  13. func AuthIds(userGroupIds []int) []int {
  14. ids := make([]int, 0)
  15. _ = models.Db.From("admin_user_group_relate").Select("admin_auth_id").Where(goqu.Ex{
  16. "admin_user_group_id": userGroupIds,
  17. }).ScanVals(&ids)
  18. return ids
  19. }
  20. func UserGroupIds(authIds []int) []int {
  21. ids := make([]int, 0)
  22. _ = models.Db.From("admin_user_group_relate").Select("admin_user_group_id").Where(goqu.Ex{
  23. "admin_auth_id": authIds,
  24. }).ScanVals(&ids)
  25. return ids
  26. }
  27. // 用户分组权限检查
  28. func Check(authIds []int, userGroupIds []int) bool {
  29. if len(authIds) == 0 || len(userGroupIds) == 0 {
  30. return false
  31. }
  32. existAuthIds := AuthIds(userGroupIds)
  33. if len(existAuthIds) == 0 {
  34. return false
  35. }
  36. return len(set.IntSliceIntersect(existAuthIds, authIds)) != 0
  37. }
  38. func Add(userGroupId, authId int) error {
  39. _, err := models.Db.Insert("admin_user_group_relate").Rows(
  40. goqu.Record{"admin_user_group_id": userGroupId, "admin_auth_id": authId},
  41. ).Executor().Exec()
  42. return err
  43. }
  44. func Remove(userGroupId, authId int) error {
  45. if userGroupId == 0 && authId == 0 {
  46. return errors.New("参数错误")
  47. }
  48. where := make(goqu.Ex)
  49. if userGroupId != 0 {
  50. where["admin_user_group_id"] = userGroupId
  51. }
  52. if authId != 0 {
  53. where["admin_auth_id"] = authId
  54. }
  55. _, err := models.Db.Delete("admin_user_group_relate").Where(where).Executor().Exec()
  56. return err
  57. }