getClassName(); } public function getModel(): Model { if ($this->_model === null) { $this->_model = new Model(); $this->_model->setDebug(true); } return $this->_model; } final public function getClientModel(): ClientModel { if ($this->_clientModel === null) { $this->_clientModel = new ClientModel(); } return $this->_clientModel; } public function getAdddbModel(): AdddbModel { if ($this->_adddbModel === null) { $this->_adddbModel = new AdddbModel(); } return $this->_adddbModel; } public function getNewServerCount(int $day, array $excepts): int|string { $this->getModel()->where("service_open_date > DATE_ADD(now(), INTERVAL -{$day} DAY)"); $this->getModel()->where("service_status", 'o'); $this->getModel()->whereNotIn("service_line", $excepts); $count = $this->getModel()->countAllResults(); // throw new \Exception($this->getModel()->getLastQuery()); echo __FUNCTION__ . ":" . $this->getModel()->getLastQuery(); return $count; } public function getUnPaymentCount(array $excepts): int|string { $this->getModel()->where("service_payment_date > now()"); $this->getModel()->where("service_status", 'o'); $this->getModel()->whereNotIn("service_line", $excepts); $count = $this->getModel()->countAllResults(); // throw new \Exception($this->getModel()->getLastQuery()); echo __FUNCTION__ . ":" . $this->getModel()->getLastQuery(); return $count; } private function getTotalCountByDistriction(string $where, string $type, string $switch_code1, string $switch_code2): int { $this->getModel()->where($where); $this->getModel()->where(["service_line" => $type, "service_status" => 'o']); $this->getModel()->where("service_sw BETWEEN '{$switch_code1}' AND '{$switch_code2}'"); $count = $this->getModel()->countAllResults(); // echo "
" . $this->getModel()->getLastQuery(); return $count; } final public function getTotalCount(array $siteinfo): array { $temps = array(); foreach ($siteinfo['totalcount_customers'] as $customer => $where) { $temps[$customer] = []; foreach ($siteinfo['totalcount_types'] as $type) { $temps[$customer][$type]['Chiba'] = $this->getTotalCountByDistriction($where, $type, 'C00%', 'C64%'); $temps[$customer][$type]['Tokyo'] = $this->getTotalCountByDistriction($where, $type, 'C80%', 'C99%'); } //foreach // echo var_dump($temps); } //foreach return $temps; } final public function getExtras(array $service_codes): mixed { // 공백 값 제거 $service_codes = array_filter($service_codes, function ($value) { return !empty(trim($value)); // 공백 제거 후 비어있지 않은 값만 필터링 }); // 배열 키를 다시 정렬 (선택 사항) $service_codes = array_values($service_codes); // echo "
" . $this->getAdddbModel()->getLastQuery(); // dd($service_codes); if (!count($service_codes)) { // echo $this->getAdddbModel()->getLastQuery(); return []; } $this->getModel()->select("clientdb.Client_Name,{$this->getModel()->getTable()}.server_code,{$this->getModel()->getTable()}.service_ip,{$this->getModel()->getTable()}.service_os,{$this->getModel()->getTable()}.service_sw"); $this->getModel()->join('clientdb', "{$this->getModel()->getTable()}.client_code=clientdb.Client_Code"); $this->getModel()->whereIn('service_code', $service_codes); // $sql = sprintf("SELECT C.Client_Name,S.server_code,S.service_ip,S.service_os,S.service_sw // FROM servicedb AS S JOIN clientdb AS C ON S.client_code = C.Client_Code // WHERE S.service_code IN (SELECT service_code FROM adddb WHERE addDB_code ='%s')", $code); // return $this->getRows($sql); return $this->getModel()->getEntitys(); } public function getNews(int $limit): array { $this->getModel()->orderBy($this->getModel()->getPKField(), 'DESC'); $this->getModel()->limit($limit); return $this->getModel()->getEntitys(); } public function getServiceByServiceCode(string $service_code): Entity|null { $this->getModel()->where("service_code", $service_code); return $this->getModel()->getEntity(); } }