UserRole.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Facades\DB;
  5. use Illuminate\Support\Facades\Log;
  6. class UserRole extends Model
  7. {
  8. protected $table = "user_roles";
  9. public $timestamps = false;
  10. public function AssignRoles($uid, array $roles)
  11. {
  12. $checkData = $this->select("id")
  13. ->where("user_id", $uid)
  14. ->where("is_del", false)
  15. ->first;
  16. $r = 0;
  17. foreach ($roles as $role) {
  18. $r = $r & $role;
  19. }
  20. if (!$checkData) {
  21. // 插入新数据
  22. $this->user_id = $uid;
  23. $this->roles = $r;
  24. $this->save();
  25. } else {
  26. // 更新旧角色
  27. $this->roles = $r;
  28. $this->save();
  29. }
  30. return"success";
  31. }
  32. public function LoadRoleByUid($uid)
  33. {
  34. $role = $this->select("user_id", "role_id", "status")
  35. ->where("user_id", $uid)
  36. ->where("is_del", false)
  37. ->first();
  38. return $role;
  39. }
  40. /**
  41. * 根据角色id,列出用户-角色数据
  42. *
  43. * @param $rids 多个角色id
  44. * @return array
  45. */
  46. public function LoadUsersWithRoles($rids)
  47. {
  48. $user_roles = $this->select("id", "user_id", "role_id", "status")
  49. ->whereIn("role_id", $rids)->where("is_del", false)
  50. ->get();
  51. $uids = [];
  52. foreach ($user_roles as $ur) {
  53. array_push($uids, $ur["user_id"]);
  54. }
  55. if (count($uids) == 0) {
  56. return ["user_role" => [], "userInfo" => null];
  57. }
  58. // load user info
  59. $u = new User();
  60. $users = $u->ListUserByIds_KV($uids);
  61. return ["user_role" => $user_roles, "userInfo" => $users];
  62. }
  63. }