변경 파일 목록
총 1개
Component (1)
ExcelRequest.phpExcel/변경 파일 코드
추가삭제
변경 전ExcelRequest.php
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\DateTimeUtils; | |
| use Framework\Utility\StringUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Security\Token; | |
| use LogHandler; | |
| use Origin\Enum\RegularDelivery\RegularGoods\DeliveryCycle; | |
| use Request; | |
| use Session; | |
| $orderDelete->deleteLapseOrderExcelFormUpdate($arrData['requestSno'], $arrData['sno']); | |
| $this->_logger->channel('orderDelete')->info(__METHOD__ . ' ORDER DELETE EXCEL FORM SNO SAVE, DB_EXCEL_REQUEST INSERT NO : ' . $arrData['requestSno'] . ', EXCEL FORM SNO : ', [$arrData['formSno']]); | |
| return $arrData['requestSno']; | |
| } | |
| unset($arrBind); | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| return ['getData' => $setData, 'totalCount' => '$totalNum']; | |
| } | |
| } | |
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\DateTimeUtils; | |
| use Framework\Utility\StringUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Security\Token; | |
| use LogHandler; | |
| use Origin\Enum\RegularDelivery\RegularGoods\DeliveryCycle; | |
| use Request; | |
| use Session; | |
| $orderDelete->deleteLapseOrderExcelFormUpdate($arrData['requestSno'], $arrData['sno']); | |
| $this->_logger->channel('orderDelete')->info(__METHOD__ . ' ORDER DELETE EXCEL FORM SNO SAVE, DB_EXCEL_REQUEST INSERT NO : ' . $arrData['requestSno'] . ', EXCEL FORM SNO : ', [$arrData['formSno']]); | |
| return $arrData['requestSno']; | |
| } | |
| unset($arrBind); | |
| return true; | |
| } else { | |
| return false; | |
| } | |
| return ['getData' => $setData, 'totalCount' => '$totalNum']; | |
| } | |
| } | |
변경 후ExcelRequest.php
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\DateTimeUtils; | |
| use Framework\Utility\ProducerUtils; | |
| use Framework\Utility\StringUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Security\Token; | |
| use Framework\Debug\Exception\MissingRequiredFieldException; | |
| use LogHandler; | |
| use Origin\DTO\Kafka\ShopDataExtractLogDTO; | |
| use Origin\Enum\Excel\ShopDataExtractTarget; | |
| use Origin\Enum\RegularDelivery\RegularGoods\DeliveryCycle; | |
| use Request; | |
| use Session; | |
| $orderDelete->deleteLapseOrderExcelFormUpdate($arrData['requestSno'], $arrData['sno']); | |
| $this->_logger->channel('orderDelete')->info(__METHOD__ . ' ORDER DELETE EXCEL FORM SNO SAVE, DB_EXCEL_REQUEST INSERT NO : ' . $arrData['requestSno'] . ', EXCEL FORM SNO : ', [$arrData['formSno']]); | |
| $this->publishExtractLog($formData, true, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return $arrData['requestSno']; | |
| } | |
| unset($arrBind); | |
| $this->publishExtractLog($formData, true, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return true; | |
| } else { | |
| $this->publishExtractLog($formData, false, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return false; | |
| } | |
| return ['getData' => $setData, 'totalCount' => '$totalNum']; | |
| } | |
| /** | |
| * 상점 데이터 추출 완료 결과를 카프카 토픽으로 발행한다. | |
| * | |
| * @param ?array $formData 엑셀 양식 데이터 (es_excelForm, menu 포함) | |
| * @param bool $isSuccess 추출 성공 여부 | |
| * @param string $extractType 추출 유형 (ShopDataExtractLogDTO::EXTRACT_TYPE_* 상수) | |
| * @return void | |
| */ | |
| protected function publishExtractLog(?array $formData, bool $isSuccess, string $extractType): void | |
| { | |
| try { | |
| $godosno = Globals::get('gLicense.godosno'); | |
| if (empty($godosno)) { | |
| throw new MissingRequiredFieldException('상점 데이터 추출 로그 발행 실패: 라이선스 상점번호(godosno)가 없습니다.'); | |
| } | |
| $menu = $formData['menu'] ?? null; | |
| if (empty($menu)) { | |
| throw new MissingRequiredFieldException('상점 데이터 추출 로그 발행 실패: 엑셀 양식 메뉴(menu)가 없습니다.'); | |
| } | |
| $extractTarget = ShopDataExtractTarget::fromMenu($menu); | |
| // 매핑 미확정 메뉴(orderDraft, plusreview, adminLog)는 발행하지 않고 건너뛴다. (9월 배포 추가작업 예정) | |
| if ($extractTarget === null) { | |
| $this->_logger->channel('excel')->info( | |
| '상점 데이터 추출 로그 발행 생략: 매핑되지 않은 엑셀 양식 메뉴', | |
| [ | |
| 'godoSno' => (int)$godosno, | |
| 'extractType' => $extractType, | |
| 'extractTarget' => $extractTarget->value, | |
| 'isSuccess' => $isSuccess | |
| ] | |
| ); | |
| return; | |
| } | |
| $producer = new ProducerUtils(); | |
| $shopDataExtractLogDto = new ShopDataExtractLogDTO( | |
| [(int)$godosno], | |
| $extractType, | |
| $extractTarget->value, | |
| $isSuccess | |
| ); | |
| $producer->send( | |
| $producer::TOPIC_SHOP_DATA_EXTRACT_LOG_CREATE, | |
| json_encode($shopDataExtractLogDto->toArray()), | |
| $producer::MODE_RESULT_CALLLBACK | |
| ); | |
| } catch (\Throwable $e) { | |
| $this->_logger->channel('excel')->warning( | |
| '상점 데이터 추출 로그 카프카 메시지 발송 실패', | |
| [ | |
| 'exception' => $e, | |
| 'extractType' => $extractType, | |
| 'menu' => $formData['menu'] ?? null | |
| ] | |
| ); | |
| } | |
| } | |
| } | |
| use Framework\Utility\ComponentUtils; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\DateTimeUtils; | |
| use Framework\Utility\ProducerUtils; | |
| use Framework\Utility\StringUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Security\Token; | |
| use Framework\Debug\Exception\MissingRequiredFieldException; | |
| use LogHandler; | |
| use Origin\DTO\Kafka\ShopDataExtractLogDTO; | |
| use Origin\Enum\RegularDelivery\RegularGoods\DeliveryCycle; | |
| use Request; | |
| use Session; | |
| $orderDelete->deleteLapseOrderExcelFormUpdate($arrData['requestSno'], $arrData['sno']); | |
| $this->_logger->channel('orderDelete')->info(__METHOD__ . ' ORDER DELETE EXCEL FORM SNO SAVE, DB_EXCEL_REQUEST INSERT NO : ' . $arrData['requestSno'] . ', EXCEL FORM SNO : ', [$arrData['formSno']]); | |
| $this->publishExtractLog($arrData, true, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return $arrData['requestSno']; | |
| } | |
| unset($arrBind); | |
| $this->publishExtractLog($arrData, true, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return true; | |
| } else { | |
| $this->publishExtractLog($arrData, false, ShopDataExtractLogDTO::EXTRACT_TYPE_EXCEL); | |
| return false; | |
| } | |
| return ['getData' => $setData, 'totalCount' => '$totalNum']; | |
| } | |
| /** | |
| * 상점 데이터 추출 완료 결과를 카프카 토픽으로 발행한다. | |
| * | |
| * @param array $arrData 추출 요청 데이터 (menu 포함) | |
| * @param bool $isSuccess 추출 성공 여부 | |
| * @param string $extractType 추출 유형 (ShopDataExtractLogDTO::EXTRACT_TYPE_* 상수) | |
| * @return void | |
| */ | |
| protected function publishExtractLog(array $arrData, bool $isSuccess, string $extractType): void | |
| { | |
| try { | |
| $godosno = Globals::get('gLicense.godosno'); | |
| if (empty($godosno)) { | |
| throw new MissingRequiredFieldException('상점 데이터 추출 로그 발행 실패: 라이선스 상점번호(godosno)가 없습니다.'); | |
| } | |
| $extractTarget = $arrData['menu'] ? strtoupper($arrData['menu']) : null; | |
| $producer = new ProducerUtils(); | |
| $shopDataExtractLogDto = new ShopDataExtractLogDTO( | |
| [(int)$godosno], | |
| $extractType, | |
| $extractTarget, | |
| $isSuccess | |
| ); | |
| $producer->send( | |
| $producer::TOPIC_SHOP_DATA_EXTRACT_LOG_CREATE, | |
| json_encode($shopDataExtractLogDto->toArray()), | |
| $producer::MODE_RESULT_CALLLBACK | |
| ); | |
| } catch (\Throwable $e) { | |
| $this->_logger->channel('excel')->warning( | |
| '상점 데이터 추출 로그 카프카 메시지 발송 실패', | |
| [ | |
| 'exception' => $e, | |
| 'extractType' => $extractType, | |
| 'extractTarget' => $arrData['menu'] ?? null | |
| ] | |
| ); | |
| } | |
| } | |
| } | |