SystemUser.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\model\system;
  8. use plugin\saiadmin\basic\think\BaseModel;
  9. /**
  10. * 用户信息模型
  11. *
  12. * sa_system_user 用户表
  13. *
  14. * @property $id
  15. * @property $username 登录账号
  16. * @property $password 加密密码
  17. * @property $realname 真实姓名
  18. * @property $gender 性别
  19. * @property $avatar 头像
  20. * @property $email 邮箱
  21. * @property $phone 手机号
  22. * @property $signed 个性签名
  23. * @property $dashboard 工作台
  24. * @property $dept_id 主归属部门
  25. * @property $is_super 是否超级管理员: 1是
  26. * @property $status 状态: 1启用, 2禁用
  27. * @property $remark 备注
  28. * @property $login_time 最后登录时间
  29. * @property $login_ip 最后登录IP
  30. * @property $created_by 创建者
  31. * @property $updated_by 更新者
  32. * @property $create_time 创建时间
  33. * @property $update_time 修改时间
  34. */
  35. class SystemUser extends BaseModel
  36. {
  37. /**
  38. * 数据表主键
  39. * @var string
  40. */
  41. protected $pk = 'id';
  42. /**
  43. * 数据表完整名称
  44. * @var string
  45. */
  46. protected $table = 'sa_system_user';
  47. public function searchKeywordAttr($query, $value)
  48. {
  49. if ($value) {
  50. $query->where('username|realname|phone', 'like', '%' . $value . '%');
  51. }
  52. }
  53. /**
  54. * 权限范围 - 过滤部门用户
  55. */
  56. public function scopeAuth($query, $value)
  57. {
  58. if (!empty($value)) {
  59. $deptIds = [$value['id']];
  60. $deptLevel = $value['level'] . $value['id'] . ',';
  61. $dept_ids = SystemDept::whereLike('level', $deptLevel . '%')->column('id');
  62. $deptIds = array_merge($deptIds, $dept_ids);
  63. $query->whereIn('dept_id', $deptIds);
  64. }
  65. }
  66. /**
  67. * 通过中间表关联角色
  68. */
  69. public function roles()
  70. {
  71. return $this->belongsToMany(SystemRole::class, SystemUserRole::class, 'role_id', 'user_id');
  72. }
  73. /**
  74. * 通过中间表关联岗位
  75. */
  76. public function posts()
  77. {
  78. return $this->belongsToMany(SystemPost::class, SystemUserPost::class, 'post_id', 'user_id');
  79. }
  80. /**
  81. * 通过中间表关联部门
  82. */
  83. public function depts()
  84. {
  85. return $this->belongsTo(SystemDept::class, 'dept_id', 'id');
  86. }
  87. }