|
|
|
@ -12,6 +12,20 @@ class AdminFloorService |
|
|
|
{ |
|
|
|
private static array $buildingFloor = [1 => 'MSCP', 2 => 'GSCP']; |
|
|
|
|
|
|
|
private static array $statusArr = ['disabled', 'enable']; |
|
|
|
|
|
|
|
/** |
|
|
|
* @return array|string[] |
|
|
|
*/ |
|
|
|
public static function getStatus(): array |
|
|
|
{ |
|
|
|
$statusArr = self::$statusArr; |
|
|
|
foreach ($statusArr as $key => $value) { |
|
|
|
$statusArr[$key] = __('admin.' . $value); |
|
|
|
} |
|
|
|
return $statusArr; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @var OperationLogService |
|
|
|
*/ |
|
|
|
@ -36,7 +50,6 @@ class AdminFloorService |
|
|
|
{ |
|
|
|
try { |
|
|
|
DB::beginTransaction(); |
|
|
|
$region_data = $data['region_data'] ?? []; |
|
|
|
|
|
|
|
if (AdminFloor::query()->where('name', $data['name'])->exists()) { |
|
|
|
throw new Exception(__('service.admin_floor.name_exists')); |
|
|
|
@ -45,15 +58,21 @@ class AdminFloorService |
|
|
|
$model = AdminFloor::query()->create([ |
|
|
|
'name' => $data['name'], |
|
|
|
'image_url' => $data['image_url'], |
|
|
|
'open_time' => $data['open_time'], |
|
|
|
'close_time' => $data['close_time'], |
|
|
|
'building_floor' => $data['building_floor'] ?? 1, |
|
|
|
'created_at' => get_datetime() |
|
|
|
]); |
|
|
|
|
|
|
|
$this->logService->logCreated($model, 'admin_floor.create'); |
|
|
|
|
|
|
|
if ($region_data) { |
|
|
|
$this->addAdminFloorRegion($model->id, $region_data); |
|
|
|
} |
|
|
|
AdminTranslationService::saveTranslation( |
|
|
|
$data['name'], |
|
|
|
$data['en_name'] ?? '', |
|
|
|
$data['tw_name'] ?? '', |
|
|
|
$model->id, |
|
|
|
4 |
|
|
|
); |
|
|
|
|
|
|
|
DB::commit(); |
|
|
|
return $model; |
|
|
|
@ -97,7 +116,6 @@ class AdminFloorService |
|
|
|
{ |
|
|
|
try { |
|
|
|
DB::beginTransaction(); |
|
|
|
$region_data = $data['region_data'] ?? []; |
|
|
|
|
|
|
|
// 验证 |
|
|
|
$existsWhere = [ |
|
|
|
@ -115,20 +133,21 @@ class AdminFloorService |
|
|
|
$model->update([ |
|
|
|
'name' => $data['name'], |
|
|
|
'image_url' => $data['image_url'], |
|
|
|
'open_time' => $data['open_time'], |
|
|
|
'close_time' => $data['close_time'], |
|
|
|
'building_floor' => $data['building_floor'] ?? 1, |
|
|
|
'updated_at' => get_datetime() |
|
|
|
]); |
|
|
|
|
|
|
|
$this->logService->logUpdated($model, $oldValues, 'admin_floor.update'); |
|
|
|
|
|
|
|
// 删除再创建关联 |
|
|
|
$nameArr = array_column($region_data, 'name'); |
|
|
|
if (AdminFloorRegion::existsRoleMenu($id, $nameArr)) { |
|
|
|
$this->delAdminFloorRegion($id); |
|
|
|
if ($region_data) { |
|
|
|
$this->addAdminFloorRegion($id, $region_data); |
|
|
|
} |
|
|
|
} |
|
|
|
AdminTranslationService::saveTranslation( |
|
|
|
$data['name'], |
|
|
|
$data['en_name'] ?? '', |
|
|
|
$data['tw_name'] ?? '', |
|
|
|
$id, |
|
|
|
4 |
|
|
|
); |
|
|
|
|
|
|
|
DB::commit(); |
|
|
|
return $model; |
|
|
|
@ -166,8 +185,6 @@ class AdminFloorService |
|
|
|
|
|
|
|
$model->delete(); |
|
|
|
|
|
|
|
$this->delAdminFloorRegion($id); |
|
|
|
|
|
|
|
DB::commit(); |
|
|
|
return true; |
|
|
|
} catch (Exception $e) { |
|
|
|
|