123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace app\common\model\base\org;
- use app\common\model\Common;
- /**
- * 组织自定义角色模型
- */
- use think\facade\Db;
- use app\common\model\base\Systemroles;
- use app\common\model\base\user\User;
- class OrgRole extends Common{
- protected $name = "system_org_roles";
- protected $pk = "role_id";
- protected $createTime = "create_at";
- protected $updateTime = "update_at";
- protected $deleteTime = "delete_at";
- protected $schema = [
- 'role_id' => '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;
- }
- }
|