SystemDept.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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_dept 部门表
  13. *
  14. * @property $id 编号
  15. * @property $parent_id 父级ID,0为根节点
  16. * @property $name 部门名称
  17. * @property $code 部门编码
  18. * @property $leader_id 部门负责人ID
  19. * @property $level 祖级列表,格式: 0,1,5,
  20. * @property $sort 排序,数字越小越靠前
  21. * @property $status 状态: 1启用, 0禁用
  22. * @property $remark 备注
  23. * @property $created_by 创建者
  24. * @property $updated_by 更新者
  25. * @property $create_time 创建时间
  26. * @property $update_time 修改时间
  27. */
  28. class SystemDept extends BaseModel
  29. {
  30. /**
  31. * 数据表主键
  32. * @var string
  33. */
  34. protected $pk = 'id';
  35. protected $table = 'sa_system_dept';
  36. /**
  37. * 权限范围
  38. */
  39. public function scopeAuth($query, $value)
  40. {
  41. if (!empty($value)) {
  42. $deptIds = [$value['id']];
  43. $deptLevel = $value['level'] . $value['id'] . ',';
  44. $ids = static::whereLike('level', $deptLevel . '%')->column('id');
  45. $deptIds = array_merge($deptIds, $ids);
  46. $query->whereIn('id', $deptIds);
  47. }
  48. }
  49. /**
  50. * 部门领导
  51. */
  52. public function leader()
  53. {
  54. return $this->hasOne(SystemUser::class, 'id', 'leader_id');
  55. }
  56. }