dbmsv4/app/Cells/Equipment/ServerCell.php
2025-12-04 14:06:36 +09:00

81 lines
3.7 KiB
PHP

<?php
namespace App\Cells\Equipment;
use App\Helpers\Equipment\ServerPartHelper;
use App\Services\Equipment\ServerService;
class ServerCell extends EquipmentCell
{
public function __construct()
{
parent::__construct(service('equipment_serverservice'));
}
//서비스 방식에 따른 서비스별 Count
final public function totalCountDashboard(array $params): string
{
$totalCounts = [
'all' => [
'normal' => ['tokyo' => 0, 'chiba' => 0],
'defence' => ['tokyo' => 0, 'chiba' => 0],
'dedicated' => ['tokyo' => 0, 'chiba' => 0],
'alternative' => ['tokyo' => 0, 'chiba' => 0],
'vpn' => ['tokyo' => 0, 'chiba' => 0],
'event' => ['tokyo' => 0, 'chiba' => 0],
'test' => ['tokyo' => 0, 'chiba' => 0],
'summary_tokyo' => 0,
'summary_chiba' => 0,
'summary_all' => 0,
]
];
foreach (array_keys(SITES) as $site) {
$totalCounts[$site] = $this->getService()->getTotalServiceCount(['serviceinfo.site' => $site]);
$totalCounts['all']['normal']['tokyo'] += $totalCounts[$site]['normal']['tokyo'];
$totalCounts['all']['normal']['chiba'] += $totalCounts[$site]['normal']['chiba'];
$totalCounts['all']['defence']['tokyo'] += $totalCounts[$site]['defence']['tokyo'];
$totalCounts['all']['defence']['chiba'] += $totalCounts[$site]['defence']['chiba'];
$totalCounts['all']['dedicated']['tokyo'] += $totalCounts[$site]['dedicated']['tokyo'];
$totalCounts['all']['dedicated']['chiba'] += $totalCounts[$site]['dedicated']['chiba'];
$totalCounts['all']['alternative']['tokyo'] += $totalCounts[$site]['alternative']['tokyo'];
$totalCounts['all']['alternative']['chiba'] += $totalCounts[$site]['alternative']['chiba'];
$totalCounts['all']['vpn']['tokyo'] += $totalCounts[$site]['vpn']['tokyo'];
$totalCounts['all']['vpn']['chiba'] += $totalCounts[$site]['vpn']['chiba'];
$totalCounts['all']['event']['tokyo'] += $totalCounts[$site]['event']['tokyo'];
$totalCounts['all']['event']['chiba'] += $totalCounts[$site]['event']['chiba'];
$totalCounts['all']['test']['tokyo'] += $totalCounts[$site]['test']['tokyo'];
$totalCounts['all']['test']['chiba'] += $totalCounts[$site]['test']['chiba'];
$totalCounts['all']['summary_tokyo'] += $totalCounts[$site]['tokyo_summary'];
$totalCounts['all']['summary_chiba'] += $totalCounts[$site]['chiba_summary'];
$totalCounts['all']['summary_all'] = $totalCounts['all']['summary_tokyo'] + $totalCounts['all']['summary_chiba'];
}
$template = array_key_exists('template', $params) ? $params['template'] : __FUNCTION__;
return view('cells/server/' . $template, [
'serviceCellDatas' => [
'totalCounts' => $totalCounts,
]
]);
}
public function detail(array $params): string
{
$this->getService()->action_init_process(__FUNCTION__);
if (!array_key_exists('serviceEntity', $params)) {
return __METHOD__ . "에서 오류발생: 서비스 정보가 정의되지 않았습니다.";
}
$serviceEntity = $params['serviceEntity'];
$entities = $this->getService()->getEntities(['serviceinfo_uid' => $params['serviceEntity']->getPK()]);
$template = array_key_exists('template', $params) ? $params['template'] : __FUNCTION__;
return view('cells/server/' . $template, [
'serverCellDatas' => [
'formFilters' => $this->getService()->getFormService()->getFormFilters(),
'formOptions' => $this->getService()->getFormService()->getFormOptions(),
'helper' => $this->getService()->getHelper(),
'entities' => $entities,
'serviceEntity' => $serviceEntity,
'serverPartHelper' => new ServerPartHelper(),
]
]);
}
}