123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\HasMany;
- use Illuminate\Database\Eloquent\Relations\HasOne;
- class SsNode extends Model {
- protected $table = 'ss_node';
- public function label(): HasMany {
- return $this->hasMany(SsNodeLabel::class, 'node_id', 'id');
- }
- public function auth(): HasOne {
- return $this->hasOne(NodeAuth::class, 'node_id', 'id');
- }
- public function getLevelNameAttribute(): string {
- return Level::whereLevel($this->attributes['level'])->first()->name;
- }
-
- public function scopeGroupNodePermit($query, $group_id = 0) {
- $userGroup = UserGroup::find($group_id);
- if($userGroup){
- $nodes = explode(',', $userGroup->nodes);
- if($nodes){
- return $query->whereIn('id', $nodes);
- }
- }
- return $query;
- }
- public function getTypeLabelAttribute(): string {
- switch($this->attributes['type']){
- case 1:
- $type_label = 'ShadowsocksR';
- break;
- case 2:
- $type_label = 'V2Ray';
- break;
- case 3:
- $type_label = 'Trojan';
- break;
- case 4:
- $type_label = 'VNet';
- break;
- default:
- $type_label = 'UnKnown';
- }
- return $type_label;
- }
- }
|