trafficmonitor init...1

This commit is contained in:
choi.jh 2025-11-12 18:43:47 +09:00
parent 2eba508f74
commit a026bdff6f
6 changed files with 57 additions and 3 deletions

View File

@ -127,6 +127,48 @@ abstract class AdminController extends CommonController
return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정 오류:" . $e->getMessage());
}
}
final public function batchjob(): string|RedirectResponse
{
try {
$action = __FUNCTION__;
$this->action_init_process($action);
$selectedFields = [];
$formDatas = [];
foreach ($this->service->getFormService->getBatchjobFilters() as $field) {
$value = $this->request->getPost($field);
if ($value) {
$selectedFields[] = $field;
$formDatas[$field] = $value;
}
}
if (!count($selectedFields)) {
throw new \Exception("변경할 조건항목을 선택하셔야합니다.");
}
//변경할 UIDS 정의
$uids = $this->request->getPost('batchjob_uids[]');
if (!is_array($uids) || !count($uids)) {
throw new \Exception("적용할 리스트을 선택하셔야합니다.");
}
$this->service->getFormService()->setFormFields($selectedFields);
$this->service->getFormService()->setFormRules($action, $selectedFields);
$this->service->getFormService()->setFormFilters($selectedFields);
$this->service->getFormService()->setFormOptions($selectedFields);
$entities = [];
$errors = [];
foreach ($uids as $uid) {
try {
$entities[] = $this->modify_process($uid);
} catch (ValidationException $e) {
$errors[] = "{$this->getTitle()}에서 {$uid} 수정 검증오류:" . $e->getMessage();
} catch (\Exception $e) {
$errors[] = "{$this->getTitle()}에서 {$uid} 수정 오류:" . $e->getMessage();
}
}
return $this->action_modal_process("{$this->getTitle()}에서 " . count($entities) . "개, 총:" . count($uids) . " 수정이 완료되었습니다.");
} catch (\Exception $e) {
return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정 오류:" . $e->getMessage());
}
}
protected function delete_process($uid): CommonEntity
{
return $this->service->delete($uid);

View File

@ -25,7 +25,7 @@ class TrafficController extends AdminController
}
protected function action_init_process(string $action): void
{
$fields = ['client', 'switch', 'ip', 'interface', 'status'];
$fields = ['client', 'server', 'server_ip',, 'switch', 'ip', 'interface', 'status'];
$filters = ['status'];
switch ($action) {
case 'create':

View File

@ -6,6 +6,8 @@ class TrafficDTO extends CommonDTO
{
public ?int $uid = null;
public ?string $client = null;
public ?string $server = null;
public ?string $server_ip = null;
public ?string $switch = null;
public ?string $ip = null;
public ?string $interface = null;
@ -26,6 +28,8 @@ class TrafficDTO extends CommonDTO
return [
'uid' => $this->uid,
'client' => $this->client,
'server' => $this->server,
'server_ip' => $this->server_ip,
'switch' => $this->switch,
'ip' => $this->ip,
'interface' => $this->interface,

View File

@ -18,10 +18,14 @@ class TrafficForm extends CommonForm
case "status":
$rule = "required|trim|string";
break;
case "server":
case "switch":
$rule = "required|trim|string";
$rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : "";
break;
case "server_ip":
$rule = "required|trim|valid_ip[both]"; //ipv4 , ipv6 , both(ipv4,ipv6)
break;
case "ip":
$rule = "required|trim|valid_ip[both]"; //ipv4 , ipv6 , both(ipv4,ipv6)
break;

View File

@ -3,8 +3,10 @@ return [
'title' => "트래픽정보",
'label' => [
'client' => "고객명",
'switch' => "스위치",
'ip' => "IP",
'server' => "서버번호",
'server_ip' => "서버IP",
'switch' => "스위치번호",
'ip' => "스위치IP",
'interface' => "인텍스",
'status' => "상태",
'updated_at' => "수정일",

View File

@ -16,6 +16,8 @@ class TrafficModel extends CommonModel
protected $allowedFields = [
"uid",
"client",
"server",
"server_ip",
"switch",
"ip",
"interface",