119 lines
2.9 KiB
PHP
119 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Schools;
|
|
|
|
use App\Models\BaseModel;
|
|
use App\Models\Schools\SchoolCampus;
|
|
use App\Models\Schools\SchoolClass;
|
|
use App\Models\System\SystemUserSchoolCampus;
|
|
|
|
/**
|
|
* 学校模型
|
|
* @package App\Models\Schools
|
|
* @property int $id 主键ID
|
|
* @property int $type 学校类型
|
|
* @property string $name 学校名称
|
|
* @property string|null $alias 学校别名
|
|
* @property int $province_id 省份ID
|
|
* @property int $city_id 城市ID
|
|
* @property int $district_id 区县ID
|
|
* @property string|null $grade_period 学段
|
|
* @property int $status 状态
|
|
* @property string|null $code 学校代码
|
|
* @property int $sno_automatic 学号自动生成
|
|
* @property int $show_order 显示顺序
|
|
* @property int $is_open_user_login 是否开放用户登录
|
|
* @property int $max_sno 最大学号
|
|
* @property string|null $default_password 默认密码
|
|
* @property int $school_district_id 学区ID
|
|
* @property \Carbon\Carbon $created_at 创建时间
|
|
* @property \Carbon\Carbon $updated_at 更新时间
|
|
* @property \Carbon\Carbon|null $deleted_at 删除时间
|
|
* @property int $tenant_id 租户ID
|
|
*/
|
|
class School extends BaseModel
|
|
{
|
|
protected $table = 'school';
|
|
|
|
/**
|
|
* 启用系统字段自动维护
|
|
*/
|
|
protected $enableSystemFields = true;
|
|
|
|
/**
|
|
* 启用租户隔离
|
|
*/
|
|
protected $enableTenantScope = true;
|
|
|
|
protected $fillable = [
|
|
'type',
|
|
'name',
|
|
'alias',
|
|
'province_id',
|
|
'city_id',
|
|
'district_id',
|
|
'grade_period',
|
|
'status',
|
|
'code',
|
|
'sno_automatic',
|
|
'show_order',
|
|
'is_open_user_login',
|
|
'max_sno',
|
|
'default_password',
|
|
'school_district_id',
|
|
];
|
|
|
|
protected $casts = [
|
|
'type' => 'integer',
|
|
'province_id' => 'integer',
|
|
'city_id' => 'integer',
|
|
'district_id' => 'integer',
|
|
'status' => 'integer',
|
|
'sno_automatic' => 'integer',
|
|
'show_order' => 'integer',
|
|
'is_open_user_login' => 'integer',
|
|
'max_sno' => 'integer',
|
|
'school_district_id' => 'integer',
|
|
];
|
|
|
|
/**
|
|
* 学校的校区关联
|
|
*/
|
|
public function campuses()
|
|
{
|
|
return $this->hasMany(SchoolCampus::class, 'school_id');
|
|
}
|
|
|
|
/**
|
|
* 学校的班级关联
|
|
*/
|
|
public function classes()
|
|
{
|
|
return $this->hasMany(SchoolClass::class, 'school_id');
|
|
}
|
|
|
|
/**
|
|
* 学校的用户关联
|
|
*/
|
|
public function userSchoolCampuses()
|
|
{
|
|
return $this->hasMany(SystemUserSchoolCampus::class, 'schoolid');
|
|
}
|
|
|
|
/**
|
|
* 激活状态查询作用域
|
|
*/
|
|
public function scopeActive($query)
|
|
{
|
|
return $query->where('status', 1);
|
|
}
|
|
|
|
/**
|
|
* 按显示顺序排序
|
|
*/
|
|
public function scopeOrdered($query)
|
|
{
|
|
return $query->orderBy('show_order', 'asc')->orderBy('id', 'desc');
|
|
}
|
|
}
|