'int', 'name' => 'varchar', 'code' => 'varchar', 'status' => 'tinyint', 'org_id' => 'int', 'depart_id' => 'int', 'desc' => 'varchar', 'menu_ids' => 'text', 'request_ids' => 'text', 'front_ids' => 'text', 'create_at' => 'datetime', 'update_at' => 'datetime', 'delete_at' => 'datetime', ]; protected $append = [ 'status_txt', ]; public function getStatusList() { return [1=>'可用',2=>'不可用']; } public function getStatusTxtAttr($value,$data) { $value = $value ? $value : (isset($data['status']) ? $data['status'] : ''); $statusList = $this->getStatusList(); return isset($statusList[$value])?$statusList[$value]:'无'; } // 菜单权限修改器 public function setMenuIdsAttr($value,$data) { $value = $value ? $value : (isset($data['menu_ids']) ? $data['menu_ids'] : ''); if(!empty($value) && is_array($value)){ return implode(',',$value); }else{ return $value; } } // 菜单权限获取器 public function getMenuIdsAttr($value,$data) { $value = $value ? $value : (isset($data['menu_ids']) ? $data['menu_ids'] : []); return is_string($value)?explode(',',$value):$value; } // 请求权限修改器 public function setRequestIdsAttr($value,$data) { $value = $value ? $value : (isset($data['request_ids']) ? $data['request_ids'] : ''); if(!empty($value) && is_array($value)){ return implode(',',$value); }else{ return $value; } } // 请求权限获取器 public function getRequestIdsAttr($value,$data) { $value = $value ? $value : (isset($data['request_ids']) ? $data['request_ids'] : []); return is_string($value)?explode(',',$value):$value; } // 手机端权限修改器 public function setFrontIdsAttr($value,$data) { $value = $value ? $value : (isset($data['front_ids']) ? $data['front_ids'] : ''); if(!empty($value) && is_array($value)){ return implode(',',$value); }else{ return $value; } } // 手机端权限获取器 public function getFrontIdsAttr($value,$data) { $value = $value ? $value : (isset($data['front_ids']) ? $data['front_ids'] : []); return is_string($value)?explode(',',$value):$value; } public function org() { return $this->belongsTo(Org::class,"org_id","org_id",[],"LEFT"); } /** * @title: 创建组织管理员角色,每个组织只能有一个管理员角色 * @desc: 描述 * @return {*} * @author: Rock * @method: POST * @Date: 2023-02-02 09:52:26 */ static public function createAdmin(int $org_id=0) { $data = [ 'name' => '管理员', 'code' => 'ADMIN', 'status'=> 1, 'org_id'=> $org_id, 'desc' => '组织内的最高权限', ]; $has = self::where('org_id',$org_id)->where('code','ADMIN')->value('role_id'); if(!empty($has)){ return false; } (new self)->replace()->save($data); return true; } }