1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace App\Http\Models;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsToMany;
- use Illuminate\Database\Eloquent\SoftDeletes;
- class Role extends Model
- {
- use SoftDeletes;
- protected $table = 'roles';
- protected $guarded = [];
-
- public function permissions(): BelongsToMany
- {
- return $this->belongsToMany(
- Permission::class,
- 'role_has_permissions',
- 'role_id',
- 'permission_id'
- );
- }
- public function users()
- {
- return $this->hasMany(User::class, 'role_id', 'id');
- }
- public function projects(): BelongsToMany
- {
- return $this->belongsToMany(
- Project::class,
- 'role_has_projects',
- 'project_id',
- 'permission_id'
- );
- }
- const TYPE_CLIENT = -1;
- const TYPE_SELLER = 1;
- const TYPE_AE = 2;
- const TYPE_LINK_PART = 3;
- const TYPE_ARTICLE_PART = 4;
- const TYPE_CUSTOMER = 5;
- const TYPE_MANAGER = 6;
- const TYPE_SERVER = 7;
- const TYPE_CHANNEL_BOSS = 8;
- const TYPE_AGENT_BOSS = 9;
- const TYPE_LINK_PART_CHONGQING = 13;
- const TYPE_WEB = 14;
- const TYPE_PROPAGANDA = 15;
- const TYPE_BID = 16;
- const TYPE_ARTICLE = 17;
- const TYPE_LINK = 18;
- const TYPE_AGENT_MANAGER = 19;
- const TYPE_AGENT_WORKER = 20;
- const TYPE_CHANNEL_MANAGER = 21;
- const TYPE_CHANNEL_WORKER = 22;
- const TYPE_TYPE_CUSTOMER_STAFF = 23;
- const TYPE_MANAGE_LEADER = 24;
- const TYPE_MANAGE_HELPER = 25;
- const TYPE_OPTIMIZER = 26;
- const TYPE_DESIGNER = 27;
- const TYPE_financial = 28;
- const TYPE_PLANNER = 29;
- const TYPE_QUALITY = 30;
- const TYPE_DESIGN_DIRECTOR = 31;
- const TYPE_OPTIMIZATION_EDITING = 32;
- const TYPE_HR = 33;
- const TYPE_SOFT_TEXT_SEARCH = 34;
- const TYPE_BIDDING_MANAGER = 35;
- const TYPE_CHONGQING_MANAGER = 36;
- const TYPE_CHONGQING_LINK = 37;
- public static function getUsers($type)
- {
- $role = self::query()->where(['id' => $type])->first();
- if (!$role) return collect([]);
- return $role->users()->where(['status' => 1])->select(['id', 'username', 'nickname'])->get();
- }
- }
|