This commit is contained in:
parent
5bd7013570
commit
88c668b1a4
@ -2,86 +2,132 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Utils;
|
||||||
|
use App\Models\City;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class Park extends Model
|
class Park extends Model
|
||||||
{
|
{
|
||||||
|
const CREATED_AT = 'created_at';
|
||||||
|
const UPDATED_AT = 'updated_at';
|
||||||
|
|
||||||
protected $table = 'park';
|
protected $table = 'park';
|
||||||
protected $primaryKey = 'park_id';
|
protected $primaryKey = 'park_id';
|
||||||
public $timestamps = true;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that are mass assignable.
|
|
||||||
*
|
|
||||||
* @var list<string>
|
|
||||||
*/
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'park_name',
|
'park_id', // 駐輪場ID
|
||||||
'park_address',
|
'city_id', // 市区
|
||||||
'park_phone',
|
'park_name', // 駐輪場名
|
||||||
'park_description',
|
'park_ruby', // 駐輪場ふりがな
|
||||||
'park_status',
|
'park_syllabary', // 駐輪場五十音
|
||||||
'park_capacity',
|
'park_adrs', // 住所
|
||||||
'park_price',
|
'park_close_flag', // 閉設フラグ
|
||||||
'park_operating_hours',
|
'park_day', // 閉設日
|
||||||
|
'price_memo', // 価格メモ
|
||||||
|
'alert_flag', // 残警告チェックフラグ
|
||||||
|
'print_number', // 印字数
|
||||||
|
'keep_alive', // 最新キープアライブ
|
||||||
|
'renew_start_date', // 更新期間開始日
|
||||||
|
'renew_start_time', // 更新期間開始時
|
||||||
|
'renew_end_date', // 更新期間終了日
|
||||||
|
'renew_end_time', // 更新期間終了時
|
||||||
|
'parking_start_period', // 駐輪開始期間
|
||||||
|
'reminder_type', // リマインダー種別
|
||||||
|
'reminder_time', // リマインダー時間
|
||||||
|
'immediate_use_after_contract', // 契約後即利用許可
|
||||||
|
'display_gender', // 項目表示設定:性別
|
||||||
|
'display_birthday', // 項目表示設定:生年月日
|
||||||
|
'display_security_registration_number', // 項目表示設定:防犯登録番号
|
||||||
|
'distance_between_two_points', // 二点間距離
|
||||||
|
'latitude', // 駐車場座標(緯度)
|
||||||
|
'longitude', // 駐車場座標(経度)
|
||||||
|
'phone_number', // 電話番号
|
||||||
|
'contract_type_regular', // 駐輪場契約形態(定期)
|
||||||
|
'contract_type_temporary', // 駐輪場契約形態(一時利用)
|
||||||
|
'vehicle_type_limit', // 車種制限
|
||||||
|
'procedure_method', // 手続方法
|
||||||
|
'payment_method', // 支払方法
|
||||||
|
'usage_time_limit_flag', // 利用可能時間制限フラグ
|
||||||
|
'usage_time_start', // 利用可能時間(開始)
|
||||||
|
'usage_time_end', // 利用可能時間(終了)
|
||||||
|
'resident_manager_flag', // 常駐管理人フラグ
|
||||||
|
'resident_time_start', // 常駐時間(開始)
|
||||||
|
'resident_time_end', // 常駐時間(終了)
|
||||||
|
'roof_flag', // 屋根フラグ
|
||||||
|
'seal_issuing_machine_flag', // シール発行機フラグ
|
||||||
|
'usage_method', // 駐輪場利用方法
|
||||||
|
'periodic_update_period', // 定期更新期間
|
||||||
|
'waiting_reservation', // 空き待ち予約
|
||||||
|
'special_notes', // 特記事項
|
||||||
|
'student_id_confirmation_type', // 学生証確認種別
|
||||||
|
'reduction_guide_display_flag', // 減免案内表示フラグ
|
||||||
|
'reduction_target_age', // 減免対象年齢
|
||||||
|
'reduction_guide_display_start_month', // 減免案内表示開始月数
|
||||||
|
'cross_year' // 年跨ぎ
|
||||||
|
// 如有 created_at/updated_at 可省略不填
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
|
||||||
* 駐車場検索
|
|
||||||
*/
|
|
||||||
public static function search($inputs)
|
public static function search($inputs)
|
||||||
{
|
{
|
||||||
$query = self::query();
|
$list = self::query();
|
||||||
|
if ($inputs['isMethodPost']) {
|
||||||
// 検索条件の適用
|
// 搜索条件可追加
|
||||||
if (!empty($inputs['park_name'])) {
|
|
||||||
$query->where('park_name', 'like', '%' . $inputs['park_name'] . '%');
|
|
||||||
}
|
}
|
||||||
if (!empty($inputs['park_address'])) {
|
// Sort
|
||||||
$query->where('park_address', 'like', '%' . $inputs['park_address'] . '%');
|
if ($inputs['sort']) {
|
||||||
|
$list->orderBy($inputs['sort'], $inputs['sort_type']);
|
||||||
}
|
}
|
||||||
if (isset($inputs['park_status']) && $inputs['park_status'] !== '') {
|
if ($inputs['isExport']){
|
||||||
$query->where('park_status', $inputs['park_status']);
|
$list = $list->get();
|
||||||
}
|
|
||||||
|
|
||||||
// ソート
|
|
||||||
if (!empty($inputs['sort'])) {
|
|
||||||
$sortType = !empty($inputs['sort_type']) ? $inputs['sort_type'] : 'asc';
|
|
||||||
$query->orderBy($inputs['sort'], $sortType);
|
|
||||||
}else{
|
}else{
|
||||||
$query->orderBy('park_id', 'desc');
|
$list = $list->paginate(Utils::item_per_page);
|
||||||
|
}
|
||||||
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
// エクスポート用の場合はページネーションしない
|
public static function getByPk($pk)
|
||||||
if (!empty($inputs['isExport'])) {
|
{
|
||||||
return $query->get();
|
return self::find($pk);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ページネーション(Utilsクラスの定数を使用)
|
public static function deleteByPk($arr)
|
||||||
return $query->paginate(\App\Utils::item_per_page);
|
{
|
||||||
|
return self::whereIn('park_id', $arr)->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function boot()
|
||||||
|
{
|
||||||
|
parent::boot();
|
||||||
|
self::creating(function (Park $model) {
|
||||||
|
$model->operator_id = Auth::user()->ope_id ?? null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IDで駐車場を取得
|
* GET 閉設フラグ
|
||||||
*/
|
*/
|
||||||
public static function getParkById($id)
|
public function getParkCloseFlagDisplay() {
|
||||||
{
|
if($this->park_close_flag == 1) {
|
||||||
return self::find($id);
|
return '閉設';
|
||||||
|
}
|
||||||
|
else if($this->park_close_flag == 0) {
|
||||||
|
return '開設';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function getCity()
|
||||||
* 駐車場リストを取得(ドロップダウン用)
|
|
||||||
*/
|
|
||||||
public static function getList()
|
|
||||||
{
|
{
|
||||||
return self::pluck('park_name', 'park_id')->toArray();
|
// city_id => city_id (City モデル要有 city_id PK)
|
||||||
|
return $this->belongsTo(City::class, 'city_id', 'city_id')->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public static function getList(){
|
||||||
* 定期契約とのリレーション
|
return self::pluck('park_name','park_id');
|
||||||
*/
|
}
|
||||||
public function regularContracts()
|
|
||||||
{
|
public static function getIdByName($park_name){
|
||||||
return $this->hasMany(RegularContract::class, 'park_id', 'park_id');
|
return self::where('park_name',$park_name)->pluck('park_id')->first();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user