海工商新版后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

240 lines
7.6 KiB

<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class SelectedDormitory extends Model
{
use HasDateTimeFormatter;
protected $table = 'selected_dormitory';
public $timestamps = false;
const STATUS_YES = 1; //正常
const STATUS_NO = 2; //禁用
/**
* 根据床位ID取出详细信息
* @param $id
* @return array
*/
public static function getBedInfoById($id)
{
$lable = ["性别", "宿舍类型", "几人间", "生活区", "楼栋", "楼层", "宿舍号", "床位", "专业", "二级学院"];
//取出床位详细信息
$dormitoryBed = AllocationDormitoryBed::query()->where("id", $id)->first();
if(empty($dormitoryBed)){
return ["lable" => $lable, "value" => []];
}
//宿舍类型
$dormitoryTypeInfo = DormitoryType::query()->where([
"id" => $dormitoryBed["dormitory_type"],
])->first()->toArray();
//多人间
$multipleInfo = MultipleWorld::query()->where([
"id" => $dormitoryBed["multiple_worlds"],
"dormitory_type_id" => $dormitoryBed["dormitory_type"],
])->first()->toArray();
//生活区
$livingInfo = LivingArea::query()->where([
"id" => $dormitoryBed["living_area"],
])->first()->toArray();
//楼栋
$buildingInfo = Building::query()->where([
"id" => $dormitoryBed["building_id"],
])->first()->toArray();
//楼层
$floorInfo = Floor::query()->where([
"id" => $dormitoryBed["floor_id"],
])->first()->toArray();
//宿舍号
$dormitory = DormitoryNumber::query()->where([
"id" => $dormitoryBed["dormitory_number"],
])->first()->toArray();
//床位号
$bed = Bed::query()->where([
"id" => $dormitoryBed["bed_id"],
])->first()->toArray();
//取出专业
$specialityInfo = Speciality::query()->where("id", $dormitoryBed["speciality_id"])->first()->toArray();
//取出二级学院
$collegeInfo = SecondaryCollege::query()->where("id", $specialityInfo["secondary_college_id"])->first()->toArray();
$sex = "男生";
if($dormitoryBed["sex"] == 2){
$sex = "女生";
}
$value[] = [
$sex,
$dormitoryTypeInfo["dormitory"],
$multipleInfo["people"],
$livingInfo["title"],
$buildingInfo["building_title"],
$floorInfo["floor_title"],
$dormitory["dormitory_number"],
$bed["bed_number"],
$specialityInfo["speciality_name"],
$collegeInfo["name"]
];
return ["lable" => $lable, "value" => $value];
}
/**
* 根据床位ID取出详细信息(导出使用)
* @param $id
* @return array
*/
public static function getBedInfoByIdNew($id)
{
//取出床位详细信息
$dormitoryBed = AllocationDormitoryBed::query()->where("id", $id)->first();
//宿舍类型
$dormitoryTypeInfo = DormitoryType::query()->where([
"id" => $dormitoryBed["dormitory_type"],
])->first()->toArray();
//多人间
$multipleInfo = MultipleWorld::query()->where([
"id" => $dormitoryBed["multiple_worlds"],
"dormitory_type_id" => $dormitoryBed["dormitory_type"],
])->first()->toArray();
//生活区
$livingInfo = LivingArea::query()->where([
"id" => $dormitoryBed["living_area"],
])->first()->toArray();
//楼栋
$buildingInfo = Building::query()->where([
"id" => $dormitoryBed["building_id"],
])->first()->toArray();
//楼层
$floorInfo = Floor::query()->where([
"id" => $dormitoryBed["floor_id"],
])->first()->toArray();
//宿舍号
$dormitory = DormitoryNumber::query()->where([
"id" => $dormitoryBed["dormitory_number"],
])->first()->toArray();
//床位号
$bed = Bed::query()->where([
"id" => $dormitoryBed["bed_id"],
])->first()->toArray();
//取出专业
$specialityInfo = Speciality::query()->where("id", $dormitoryBed["speciality_id"])->first()->toArray();
//取出二级学院
$collegeInfo = SecondaryCollege::query()->where("id", $specialityInfo["secondary_college_id"])->first()->toArray();
$sex = "男生";
if($dormitoryBed["sex"] == 2){
$sex = "女生";
}
$result = [
"sex" => $sex,
"dormitory" => $dormitoryTypeInfo["dormitory"],
"multipleInfo" => $multipleInfo["people"],
"livingInfo" => $livingInfo["title"],
"buildingInfo" => $buildingInfo["building_title"],
"floorInfo" => $floorInfo["floor_title"],
"dormitoryNumber" => $dormitory["dormitory_number"],
"bedNumber" => $bed["bed_number"],
"specialityName" => $specialityInfo["speciality_name"],
"collegeInfo" => $collegeInfo["name"]
];
return $result;
}
/**
* 写入已选宿舍信息时拼接完整的宿舍名
* @param $dormitoryBed
* @return string
*/
public static function getSelectedBedName($dormitoryBed, $type = 1)
{
$dormitoryTypeInfo = DormitoryType::query()->where([
"id" => $dormitoryBed["dormitory_type"],
"status" => DormitoryType::STATUS_YES
])->first()->toArray();
//多人间
$multipleInfo = MultipleWorld::query()->where([
"id" => $dormitoryBed["multiple_worlds"],
"dormitory_type_id" => $dormitoryBed["dormitory_type"],
"status" => MultipleWorld::STATUS_YES
])->first()->toArray();
//生活区
$livingInfo = LivingArea::query()->where([
"id" => $dormitoryBed["living_area"],
"status" => LivingArea::STATUS_YES
])->first()->toArray();
//楼栋
$buildingInfo = Building::query()->where([
"id" => $dormitoryBed["building_id"],
"status" => Building::STATUS_YES
])->first()->toArray();
//楼层
$floorInfo = Floor::query()->where([
"id" => $dormitoryBed["floor_id"],
"status" => Floor::STATUS_YES
])->first()->toArray();
//宿舍号
$dormitory = DormitoryNumber::query()->where([
"id" => $dormitoryBed["dormitory_number"],
"status" => DormitoryNumber::STATUS_YES
])->first()->toArray();
//床位号
$bed = Bed::query()->where([
"id" => $dormitoryBed["bed_id"],
"status" => Bed::STATUS_YES
])->first()->toArray();
//返回数据
if($type == 2){
$dormitoryInfo = [
"livingTitle" => $livingInfo["title"],
"buildingTitle" => $buildingInfo["building_title"],
"floorTitle" => $floorInfo["floor_title"],
"dormitoryNumber" => $dormitory["dormitory_number"],
"bedNumber" => $bed["bed_number"],
"price" => $multipleInfo["price"]
];
return $dormitoryInfo;
}
//拼接宿舍信息
$name = $dormitoryTypeInfo["dormitory"]."-".$multipleInfo["people"]."----".
$livingInfo["title"]."/".$buildingInfo["building_title"]."/".
$floorInfo["floor_title"]."/".$dormitory["dormitory_number"]."/".$bed["bed_number"];
return $name;
}
}