OrgRole.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace app\common\model\base\org;
  3. use app\common\model\Common;
  4. /**
  5. * 组织自定义角色模型
  6. */
  7. use think\facade\Db;
  8. use app\common\model\base\Systemroles;
  9. use app\common\model\base\user\User;
  10. class OrgRole extends Common{
  11. protected $name = "system_org_roles";
  12. protected $pk = "role_id";
  13. protected $createTime = "create_at";
  14. protected $updateTime = "update_at";
  15. protected $deleteTime = "delete_at";
  16. protected $schema = [
  17. 'role_id' => 'int',
  18. 'name' => 'varchar',
  19. 'code' => 'varchar',
  20. 'status' => 'tinyint',
  21. 'org_id' => 'int',
  22. 'depart_id' => 'int',
  23. 'desc' => 'varchar',
  24. 'menu_ids' => 'text',
  25. 'request_ids' => 'text',
  26. 'front_ids' => 'text',
  27. 'create_at' => 'datetime',
  28. 'update_at' => 'datetime',
  29. 'delete_at' => 'datetime',
  30. ];
  31. protected $append = [
  32. 'status_txt',
  33. ];
  34. public function getStatusList()
  35. {
  36. return [1=>'可用',2=>'不可用'];
  37. }
  38. public function getStatusTxtAttr($value,$data)
  39. {
  40. $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
  41. $statusList = $this->getStatusList();
  42. return isset($statusList[$value])?$statusList[$value]:'无';
  43. }
  44. // 菜单权限修改器
  45. public function setMenuIdsAttr($value,$data)
  46. {
  47. $value = $value ? $value : (isset($data['menu_ids']) ? $data['menu_ids'] : '');
  48. if(!empty($value) && is_array($value)){
  49. return implode(',',$value);
  50. }else{
  51. return $value;
  52. }
  53. }
  54. // 菜单权限获取器
  55. public function getMenuIdsAttr($value,$data)
  56. {
  57. $value = $value ? $value : (isset($data['menu_ids']) ? $data['menu_ids'] : []);
  58. return is_string($value)?explode(',',$value):$value;
  59. }
  60. // 请求权限修改器
  61. public function setRequestIdsAttr($value,$data)
  62. {
  63. $value = $value ? $value : (isset($data['request_ids']) ? $data['request_ids'] : '');
  64. if(!empty($value) && is_array($value)){
  65. return implode(',',$value);
  66. }else{
  67. return $value;
  68. }
  69. }
  70. // 请求权限获取器
  71. public function getRequestIdsAttr($value,$data)
  72. {
  73. $value = $value ? $value : (isset($data['request_ids']) ? $data['request_ids'] : []);
  74. return is_string($value)?explode(',',$value):$value;
  75. }
  76. // 手机端权限修改器
  77. public function setFrontIdsAttr($value,$data)
  78. {
  79. $value = $value ? $value : (isset($data['front_ids']) ? $data['front_ids'] : '');
  80. if(!empty($value) && is_array($value)){
  81. return implode(',',$value);
  82. }else{
  83. return $value;
  84. }
  85. }
  86. // 手机端权限获取器
  87. public function getFrontIdsAttr($value,$data)
  88. {
  89. $value = $value ? $value : (isset($data['front_ids']) ? $data['front_ids'] : []);
  90. return is_string($value)?explode(',',$value):$value;
  91. }
  92. public function org()
  93. {
  94. return $this->belongsTo(Org::class,"org_id","org_id",[],"LEFT");
  95. }
  96. /**
  97. * @title: 创建组织管理员角色,每个组织只能有一个管理员角色
  98. * @desc: 描述
  99. * @return {*}
  100. * @author: Rock
  101. * @method: POST
  102. * @Date: 2023-02-02 09:52:26
  103. */
  104. static public function createAdmin(int $org_id=0)
  105. {
  106. $data = [
  107. 'name' => '管理员',
  108. 'code' => 'ADMIN',
  109. 'status'=> 1,
  110. 'org_id'=> $org_id,
  111. 'desc' => '组织内的最高权限',
  112. ];
  113. $has = self::where('org_id',$org_id)->where('code','ADMIN')->value('role_id');
  114. if(!empty($has)){
  115. return false;
  116. }
  117. (new self)->replace()->save($data);
  118. return true;
  119. }
  120. }