UserRole.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\common\model\base\user;
  3. use think\model\concern\SoftDelete;
  4. use app\common\model\base\org\Org;
  5. use app\common\model\base\org\OrgRole;
  6. use app\common\model\Common;
  7. class UserRole extends Common
  8. {
  9. use SoftDelete;
  10. protected $name = "system_user_roles";
  11. protected $pk = "id";
  12. protected $createTime = 'create_at';
  13. protected $updateTime = 'update_at';
  14. protected $deleteTime = 'delete_at';
  15. protected $schema = [
  16. 'id' => 'int',
  17. 'user_id' => 'int',
  18. 'org_id' => 'int',
  19. 'role_id' => 'int',
  20. 'role_code' => 'varchar',
  21. 'create_at' => 'datetime',
  22. 'update_at' => 'datetime',
  23. 'delete_at' => 'datetime',
  24. 'is_role_type' => 'int',
  25. ];
  26. protected $append = ['org_name', 'role_name'];
  27. public function org()
  28. {
  29. return $this->belongsTo(Org::class, 'org_id', 'org_id');
  30. }
  31. public function role()
  32. {
  33. return $this->belongsTo(OrgRole::class, 'role_id', 'role_id');
  34. }
  35. public function user()
  36. {
  37. return $this->belongsTo(User::class, 'user_id', 'user_id');
  38. }
  39. public function getOrgNameAttr($value, $data)
  40. {
  41. $list = Org::cache(300)->column('name', 'org_id');
  42. $org_id = $data['org_id'];
  43. return isset($list[$org_id]) ? $list[$org_id] : '';
  44. }
  45. public function getRoleNameAttr($value, $data)
  46. {
  47. $list = OrgRole::cache(300)->column('name', 'role_id');
  48. $role_id = $data['role_id'] ?? 0;
  49. return isset($list[$role_id]) ? $list[$role_id] : '';
  50. }
  51. }