UserRole.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. public function LoadUsersWithRoles($rids)
  41. {
  42. $user_roles = $this->select("id", "user_id", "role_id", "status")
  43. ->whereIn("role_id", $rids)->where("is_del", false)
  44. ->get();
  45. $uids = [];
  46. foreach ($user_roles as $ur) {
  47. array_push($uids, $ur["user_id"]);
  48. }
  49. if (count($uids) == 0) {
  50. return ["user_role" => [], "userInfo" => null];
  51. }
  52. // load user info
  53. $u = new User();
  54. $users = $u->ListUserByIds_KV($uids);
  55. return ["user_role" => $user_roles, "userInfo" => $users];
  56. }
  57. }