변경 파일 목록
총 12개
변경 파일 코드
추가삭제
변경 전Cart.php
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Utility\ProducerUtils; | |
| use Framework\Utility\SkinUtils; | |
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| $result = $kafka->send($kafka::TOPIC_CART_ADD_STATISTICS, $kafka->makeData([$cartStatistics], 'cas'), $kafka::MODE_RESULT_CALLLBACK, true); | |
| \Logger::channel('kafka')->info('process sendMQ - return :', $result); | |
| } | |
| // 장바구니 변경 갯수 상품 업데이트 | |
| $goods = \App::load(\Component\Goods\Goods::class); | |
| $goods->setCartGoodsCount($arrData['goodsNo']); | |
변경 후Cart.php
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\NumberUtils; | |
| use Framework\Utility\ProducerUtils; | |
| use Origin\Service\Statistics\Analytics\Cart\CartAddHistoryAnalyticsCollectorService; | |
| use Framework\Utility\SkinUtils; | |
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| $result = $kafka->send($kafka::TOPIC_CART_ADD_STATISTICS, $kafka->makeData([$cartStatistics], 'cas'), $kafka::MODE_RESULT_CALLLBACK, true); | |
| \Logger::channel('kafka')->info('process sendMQ - return :', $result); | |
| } | |
| // 장바구니 추가 통계 수집 (수기주문 제외) | |
| try { | |
| $cartAddHistoryAnalyticsCollectorService = \App::getInstance(CartAddHistoryAnalyticsCollectorService::class); | |
| if ($cartAddHistoryAnalyticsCollectorService->isCollectableCart($this->isWrite)) { | |
| $cartAddHistoryAnalyticsCollectorService->collectAnalytics($arrData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 장바구니 변경 갯수 상품 업데이트 | |
| $goods = \App::load(\Component\Goods\Goods::class); | |
| $goods->setCartGoodsCount($arrData['goodsNo']); | |
변경 전RegularOrderCart.php
| use Framework\Utility\Globals; | |
| use Repository\Goods\AddGoodsRepository; | |
| use Framework\Log\Logger; | |
| use Component\Policy\Policy; | |
| use Framework\Http\Request; | |
| use Component\Goods\Goods; | |
| // 장바구니 저장 | |
| $cartSno = $this->regularOrderCartRepository->saveCart($arrData); | |
| // 장바구니 변경 갯수 상품 업데이트 | |
| $goods = \App::load(\Component\Goods\Goods::class); | |
| $goods->setCartGoodsCount($arrData['goodsNo']); | |
변경 후RegularOrderCart.php
| use Framework\Utility\Globals; | |
| use Repository\Goods\AddGoodsRepository; | |
| use Framework\Log\Logger; | |
| use Origin\Service\Statistics\Analytics\Cart\CartAddHistoryAnalyticsCollectorService; | |
| use Component\Policy\Policy; | |
| use Framework\Http\Request; | |
| use Component\Goods\Goods; | |
| // 장바구니 저장 | |
| $cartSno = $this->regularOrderCartRepository->saveCart($arrData); | |
| // 장바구니 추가 통계 수집 | |
| try { | |
| $cartAddHistoryAnalyticsCollectorService = \App::getInstance(CartAddHistoryAnalyticsCollectorService::class); | |
| $cartAddHistoryAnalyticsCollectorService->collectAnalytics($arrData); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 장바구니 변경 갯수 상품 업데이트 | |
| $goods = \App::load(\Component\Goods\Goods::class); | |
| $goods->setCartGoodsCount($arrData['goodsNo']); | |
변경 전DBTableField.php
| * @author artherot | |
| * @return array order 테이블 필드 정보 | |
| */ | |
| public static function tableOrder() | |
| { | |
| // @formatter:off | |
변경 후DBTableField.php
| * @author artherot | |
| * @return array order 테이블 필드 정보 | |
| */ | |
| public static function tableAnalyticsOrder() | |
| { | |
| // @formatter:off | |
| $arrField = [ | |
| ['val' => 'orderNo', 'typ' => 's', 'def' => null], // 주문번호 | |
| ['val' => 'clientId', 'typ' => 's', 'def' => null], // 애널리틱스 클라이언트 ID | |
| ['val' => 'sessionId', 'typ' => 's', 'def' => null], // 애널리틱스 세션 ID | |
| ['val' => 'regDt', 'typ' => 's', 'def' => null], // 등록일 | |
| ]; | |
| // @formatter:on | |
| return $arrField; | |
| } | |
| public static function tableOrder() | |
| { | |
| // @formatter:off | |
변경 전ExternalOrder.php
| use Session; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\StringUtils; | |
| /** | |
| * 외부채널 주문 관련 class | |
| } | |
| unset($arrBind); | |
| } | |
| /* | |
변경 후ExternalOrder.php
| use Session; | |
| use Framework\Utility\ArrayUtils; | |
| use Framework\Utility\StringUtils; | |
| use Origin\Service\Statistics\Analytics\Order\AnalyticsOrderService; | |
| /** | |
| * 외부채널 주문 관련 class | |
| } | |
| unset($arrBind); | |
| // 애널리틱스 주문 추적값 저장 | |
| try { | |
| if (empty($insertDataOrder['orderNo'])) { | |
| throw new \InvalidArgumentException('orderNo가 비어있습니다'); | |
| } | |
| $analyticsOrderService = \App::getInstance(AnalyticsOrderService::class); | |
| $analyticsOrderService->saveAnalyticsOrder($insertDataOrder['orderNo']); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analyticsOrder 저장 실패', ['exception' => $e, 'errorMessage' => $e->getMessage(), 'orderNo' => $insertDataOrder['orderNo']]); | |
| } | |
| } | |
| /* | |
변경 전OrderAdminNew.php
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| use LogHandler; | |
| use Origin\Enum\Order\OrderSettleKind; | |
| use Origin\Enum\Order\OrderHandleMode; | |
| use Origin\Enum\Order\OrderStatusCode; | |
| use Origin\Enum\Order\OrderStatusGroup; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Repository\Order\OrderDeliveryOriginalRepository; | |
| break; | |
| } | |
| // 주문 완료 통계 수집 | |
| try { | |
| $isOrderAnalyticsCollectAvailable = false; | |
| $analyticsCheckChangeStatus = substr($changeStatus, 0, 1); | |
| if (in_array($analyticsCheckChangeStatus, ['p', 'o'])) { // 결제완료, 입금대기일때 | |
| if ($analyticsCheckChangeStatus === 'o' && in_array($orderData['settleKind'], OrderSettleKind::getVirtualAccountKinds())) { // 입금 대기중인 가상계좌는 수집 | |
| $isOrderAnalyticsCollectAvailable = true; | |
| } | |
| if ($analyticsCheckChangeStatus === 'p' && !in_array($orderData['settleKind'], OrderSettleKind::getBankAndVirtualAccountKinds())) { // 결제 완료된 무통장/가상계좌는 수집 하지 않음 | |
| $isOrderAnalyticsCollectAvailable = true; | |
| } | |
| } | |
| if ($isOrderAnalyticsCollectAvailable) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $orderNo, | |
| 'order' => $orderData, | |
| ]; | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // 고도몰 주문 웹훅 발송 | |
변경 후OrderAdminNew.php
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| use LogHandler; | |
| use Origin\Enum\Order\OrderHandleMode; | |
| use Origin\Enum\Order\OrderStatusCode; | |
| use Origin\Enum\Order\OrderStatusGroup; | |
| use Origin\Enum\Statistics\Analytics\Order\ClaimType; | |
| use Origin\Service\Statistics\Analytics\Order\ClaimCompleteAnalyticsCollectorService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Repository\Order\OrderDeliveryOriginalRepository; | |
| break; | |
| } | |
| try { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $claimCompleteStatisticsCollectorService = \App::getInstance(ClaimCompleteAnalyticsCollectorService::class); | |
| // 결제완료 묶음에 교환추가(z)가 섞이면 통째로 claim, 아니면 일반 결제완료(order_complete) | |
| $exchangeExtraPaymentAmount = $claimCompleteStatisticsCollectorService->getCollectibleExchangeExtraPaymentAmount($changeStatus, $orderNo, $bundleData['sno'] ?? []); | |
| if (!empty($exchangeExtraPaymentAmount)) { | |
| // 교환추가가 섞인 결제완료 → claim_complete 수집 (일반상품 결제금액 + 교환 차액) | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'claimType' => ClaimType::EXCHANGE->value, | |
| 'claimAmount' => $exchangeExtraPaymentAmount, | |
| ]); | |
| } elseif ($orderCompleteStatisticsCollectorService->isOrderCompleteCollectible($changeStatus)) { | |
| $orderCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'order' => $orderData, | |
| ]); | |
| } | |
| // 결제완료 → 입금대기 되돌림 시점 통계 수집 | |
| // 되돌림은 주문 묶음 전체 단위로만 일어나므로(부분 되돌림 없음) 대표로 첫 상품 상태만 확인 | |
| $prevStatus = array_values($goodsData)[0]['orderStatus'] ?? ''; | |
| $claimAmount = $orderData['settlePrice'] ?? 0; | |
| $mileageClaimAmount = $orderData['useMileage'] ?? 0; | |
| $depositClaimAmount = $orderData['useDeposit'] ?? 0; | |
| if ($claimCompleteStatisticsCollectorService->isReversalToWaitDepositCollectible($changeStatus, $prevStatus, (float)$claimAmount, (float)$mileageClaimAmount, (float)$depositClaimAmount)) { | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'claimType' => ClaimType::REVERSAL->value, | |
| 'claimAmount' => $claimAmount, | |
| 'mileageClaimAmount' => $mileageClaimAmount, | |
| 'depositClaimAmount' => $depositClaimAmount, | |
| ]); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 고도몰 주문 웹훅 발송 | |
변경 전OrderAdmin.php
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| use LogHandler; | |
| use Origin\Enum\Order\OrderSettleKind; | |
| use Origin\Enum\Order\OrderHandleMode; | |
| use Origin\Enum\Order\OrderStatusCode; | |
| use Origin\Enum\Order\OrderStatusGroup; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Repository\Order\OrderDeliveryOriginalRepository; | |
| break; | |
| } | |
| // 주문 완료 통계 수집 | |
| try { | |
| $isOrderAnalyticsCollectAvailable = false; | |
| $analyticsCheckChangeStatus = substr($changeStatus, 0, 1); | |
| if (in_array($analyticsCheckChangeStatus, ['p', 'o'])) { // 결제완료, 입금대기일때 | |
| if ($analyticsCheckChangeStatus === 'o' && in_array($orderData['settleKind'], OrderSettleKind::getVirtualAccountKinds())) { // 입금 대기중인 가상계좌는 수집 | |
| $isOrderAnalyticsCollectAvailable = true; | |
| } | |
| if ($analyticsCheckChangeStatus === 'p' && !in_array($orderData['settleKind'], OrderSettleKind::getBankAndVirtualAccountKinds())) { // 결제 완료된 무통장/가상계좌는 수집 하지 않음 | |
| $isOrderAnalyticsCollectAvailable = true; | |
| } | |
| } | |
| if ($isOrderAnalyticsCollectAvailable) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $orderNo, | |
| 'order' => $orderData, | |
| ]; | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // 고도몰 주문 웹훅 발송 | |
변경 후OrderAdmin.php
| use Framework\Utility\StringUtils; | |
| use Globals; | |
| use LogHandler; | |
| use Origin\Enum\Order\OrderHandleMode; | |
| use Origin\Enum\Order\OrderStatusCode; | |
| use Origin\Enum\Order\OrderStatusGroup; | |
| use Origin\Enum\Statistics\Analytics\Order\ClaimType; | |
| use Origin\Service\Statistics\Analytics\Order\ClaimCompleteAnalyticsCollectorService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Repository\Order\OrderDeliveryOriginalRepository; | |
| break; | |
| } | |
| try { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $claimCompleteStatisticsCollectorService = \App::getInstance(ClaimCompleteAnalyticsCollectorService::class); | |
| // 결제완료 묶음에 교환추가(z)가 섞이면 통째로 claim, 아니면 일반 결제완료(order_complete) | |
| $exchangeExtraPaymentAmount = $claimCompleteStatisticsCollectorService->getCollectibleExchangeExtraPaymentAmount($changeStatus, $orderNo, $bundleData['sno'] ?? []); | |
| if (!empty($exchangeExtraPaymentAmount)) { | |
| // 교환추가가 섞인 결제완료 → claim_complete 수집 (일반상품 결제금액 + 교환 차액) | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'claimType' => ClaimType::EXCHANGE->value, | |
| 'claimAmount' => $exchangeExtraPaymentAmount, | |
| ]); | |
| } elseif ($orderCompleteStatisticsCollectorService->isOrderCompleteCollectible($changeStatus)) { | |
| $orderCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'order' => $orderData, | |
| ]); | |
| } | |
| // 결제완료 → 입금대기 되돌림 시점 통계 수집 | |
| // 되돌림은 주문 묶음 전체 단위로만 일어나므로(부분 되돌림 없음) 대표로 첫 상품 상태만 확인 | |
| $prevStatus = array_values($goodsData)[0]['orderStatus'] ?? ''; | |
| $claimAmount = $orderData['settlePrice'] ?? 0; | |
| $mileageClaimAmount = $orderData['useMileage'] ?? 0; | |
| $depositClaimAmount = $orderData['useDeposit'] ?? 0; | |
| if ($claimCompleteStatisticsCollectorService->isReversalToWaitDepositCollectible($changeStatus, $prevStatus, (float)$claimAmount, (float)$mileageClaimAmount, (float)$depositClaimAmount)) { | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $orderNo, | |
| 'claimType' => ClaimType::REVERSAL->value, | |
| 'claimAmount' => $claimAmount, | |
| 'mileageClaimAmount' => $mileageClaimAmount, | |
| 'depositClaimAmount' => $depositClaimAmount, | |
| ]); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 고도몰 주문 웹훅 발송 | |
변경 전OrderNew.php
| use LogHandler; | |
| use Origin\Constants\WebHookEventType; | |
| use Origin\Service\Order\OrderInfoService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Request; | |
| $this->db->set_insert_db(DB_ORDER, $arrBind['param'], $arrBind['bind'], 'y', false); | |
| unset($arrBind); | |
| $this->setPayHistory($history); | |
| // 주문 사은품 정보 저장 | |
| } | |
| } | |
| // 주문 완료 통계 수집 | |
| try { | |
| if ($orderInfo['settleKind'] == 'gb' || $orderInfo['settleKind'] == self::SETTLE_KIND_ZERO) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $this->orderNo, | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // 주문서 저장 이후, channelType 세션 데이터 제거 | |
변경 후OrderNew.php
| use LogHandler; | |
| use Origin\Constants\WebHookEventType; | |
| use Origin\Service\Order\OrderInfoService; | |
| use Origin\Service\Statistics\Analytics\Order\AnalyticsOrderService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Request; | |
| $this->db->set_insert_db(DB_ORDER, $arrBind['param'], $arrBind['bind'], 'y', false); | |
| unset($arrBind); | |
| // 애널리틱스 주문 추적값 저장 | |
| try { | |
| if (empty($this->orderNo)) { | |
| throw new \InvalidArgumentException('orderNo가 비어있습니다'); | |
| } | |
| $analyticsOrderService = \App::getInstance(AnalyticsOrderService::class); | |
| $analyticsOrderService->saveAnalyticsOrder($this->orderNo); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analyticsOrder 저장 실패', ['exception' => $e, 'errorMessage' => $e->getMessage(), 'orderNo' => $this->orderNo]); | |
| } | |
| $this->setPayHistory($history); | |
| // 주문 사은품 정보 저장 | |
| } | |
| } | |
| // 결제완료 시점 통계 수집 | |
| try { | |
| if ($orderInfo['settleKind'] == self::SETTLE_KIND_ZERO) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $this->orderNo, | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 주문서 저장 이후, channelType 세션 데이터 제거 | |
변경 전Order.php
| use LogHandler; | |
| use Origin\Constants\WebHookEventType; | |
| use Origin\Service\Order\OrderInfoService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Origin\Enum\RegularDelivery\RegularOrder\RegularOrderStatus; | |
| $this->db->set_insert_db(DB_ORDER, $arrBind['param'], $arrBind['bind'], 'y', false); | |
| unset($arrBind); | |
| // 최초결제 결제히스토리 저장 | |
| $history = [ | |
| 'orderNo' => $this->orderNo,// 주문번호 | |
| } | |
| } | |
| // 주문 완료 통계 수집 | |
| try { | |
| if ($orderInfo['settleKind'] == 'gb' || $orderInfo['settleKind'] == self::SETTLE_KIND_ZERO) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $this->orderNo, | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // 페이스북 FBE v2 pixelCookie 값 주문서 저장 | |
변경 후Order.php
| use LogHandler; | |
| use Origin\Constants\WebHookEventType; | |
| use Origin\Service\Order\OrderInfoService; | |
| use Origin\Service\Statistics\Analytics\Order\AnalyticsOrderService; | |
| use Origin\Service\Statistics\Analytics\Order\OrderCompleteAnalyticsCollectorService; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Origin\Enum\RegularDelivery\RegularOrder\RegularOrderStatus; | |
| $this->db->set_insert_db(DB_ORDER, $arrBind['param'], $arrBind['bind'], 'y', false); | |
| unset($arrBind); | |
| // 애널리틱스 주문 추적값 저장 | |
| try { | |
| if (empty($this->orderNo)) { | |
| throw new \InvalidArgumentException('orderNo가 비어있습니다'); | |
| } | |
| $analyticsOrderService = \App::getInstance(AnalyticsOrderService::class); | |
| $analyticsOrderService->saveAnalyticsOrder($this->orderNo); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analyticsOrder 저장 실패', ['exception' => $e, 'errorMessage' => $e->getMessage(), 'orderNo' => $this->orderNo]); | |
| } | |
| // 최초결제 결제히스토리 저장 | |
| $history = [ | |
| 'orderNo' => $this->orderNo,// 주문번호 | |
| } | |
| } | |
| // 결제완료 시점 통계 수집 | |
| try { | |
| if ($orderInfo['settleKind'] == self::SETTLE_KIND_ZERO) { | |
| $orderCompleteStatisticsCollectorService = \App::getInstance(OrderCompleteAnalyticsCollectorService::class); | |
| $orderAnalyticsData = [ | |
| 'orderNo' => $this->orderNo, | |
| $orderCompleteStatisticsCollectorService->collectAnalytics($orderAnalyticsData); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 페이스북 FBE v2 pixelCookie 값 주문서 저장 | |
변경 전ReOrderCalculation.php
| use Framework\Utility\NumberUtils; | |
| use Globals; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Session; | |
| use Origin\Traits\Logger\CommonLogStorageTrait; | |
| // 바로 위의 updateStatusPreprocess 는 내부에 transaction 이 한번 더 있기 때문에 이 exception 롤백과 무관하게 commit 됨. | |
| throw new Exception(__($returnError)); | |
| } | |
| } | |
| public function setRefundCompleteOrderGoodsNew($getData, $autoProcess = false, $userHandleFl = false) | |
| $presentConfirm = \App::getInstance(\Component\Present\Confirm\PresentConfirm::class); | |
| $presentConfirm->clearConfirmToken($getData['orderNo']); | |
| } | |
| } | |
| /** | |
| $this->orderWebHookService->sendOrderGoodsWebHook($webhookOrderGoodsSnos, $claimStatus, $changeStatus); | |
| } | |
| return true; | |
| } | |
변경 후ReOrderCalculation.php
| use Framework\Utility\NumberUtils; | |
| use Globals; | |
| use Origin\Service\WebHook\OrderWebHookService; | |
| use Origin\Enum\Statistics\Analytics\Order\ClaimType; | |
| use Origin\Service\Statistics\Analytics\Order\ClaimCompleteAnalyticsCollectorService; | |
| use Session; | |
| use Origin\Traits\Logger\CommonLogStorageTrait; | |
| // 바로 위의 updateStatusPreprocess 는 내부에 transaction 이 한번 더 있기 때문에 이 exception 롤백과 무관하게 commit 됨. | |
| throw new Exception(__($returnError)); | |
| } | |
| // 환불완료 시점 통계 수집 | |
| try { | |
| $claimCompleteStatisticsCollectorService = \App::getInstance(ClaimCompleteAnalyticsCollectorService::class); | |
| $claimAmount = $getData['check']['totalRefundPrice'] ?? 0; | |
| $mileageClaimAmount = gd_isset($getData['info']['refundGoodsUseMileage'], 0) + gd_isset($getData['info']['refundDeliveryUseMileage'], 0) - gd_isset($getData['info']['refundUseMileageCommission'], 0); | |
| $depositClaimAmount = gd_isset($getData['info']['refundGoodsUseDeposit'], 0) + gd_isset($getData['info']['refundDeliveryUseDeposit'], 0) - gd_isset($getData['info']['refundUseDepositCommission'], 0); | |
| if ($claimCompleteStatisticsCollectorService->isRefundAmountCollectible((float)$claimAmount, (float)$mileageClaimAmount, (float)$depositClaimAmount)) { | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $getData['orderNo'], | |
| 'claimType' => ClaimType::REFUND->value, | |
| 'claimAmount' => $claimAmount, | |
| 'mileageClaimAmount' => $mileageClaimAmount, | |
| 'depositClaimAmount' => $depositClaimAmount, | |
| ]); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| } | |
| public function setRefundCompleteOrderGoodsNew($getData, $autoProcess = false, $userHandleFl = false) | |
| $presentConfirm = \App::getInstance(\Component\Present\Confirm\PresentConfirm::class); | |
| $presentConfirm->clearConfirmToken($getData['orderNo']); | |
| } | |
| // 환불완료 시점 통계 수집 | |
| try { | |
| $claimCompleteStatisticsCollectorService = \App::getInstance(ClaimCompleteAnalyticsCollectorService::class); | |
| $claimAmount = $getData['check']['totalRefundPrice'] ?? 0; | |
| $mileageClaimAmount = gd_isset($getData['info']['refundGoodsUseMileage'], 0) + gd_isset($getData['info']['refundDeliveryUseMileage'], 0) - gd_isset($getData['info']['refundUseMileageCommission'], 0); | |
| $depositClaimAmount = gd_isset($getData['info']['refundGoodsUseDeposit'], 0) + gd_isset($getData['info']['refundDeliveryUseDeposit'], 0) - gd_isset($getData['info']['refundUseDepositCommission'], 0); | |
| if ($claimCompleteStatisticsCollectorService->isRefundAmountCollectible((float)$claimAmount, (float)$mileageClaimAmount, (float)$depositClaimAmount)) { | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $getData['orderNo'], | |
| 'claimType' => ClaimType::REFUND->value, | |
| 'claimAmount' => $claimAmount, | |
| 'mileageClaimAmount' => $mileageClaimAmount, | |
| 'depositClaimAmount' => $depositClaimAmount, | |
| ]); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| } | |
| /** | |
| $this->orderWebHookService->sendOrderGoodsWebHook($webhookOrderGoodsSnos, $claimStatus, $changeStatus); | |
| } | |
| // 교환접수 시점 통계 수집 | |
| try { | |
| $claimCompleteStatisticsCollectorService = \App::getInstance(ClaimCompleteAnalyticsCollectorService::class); | |
| if ($postData['totalChangePrice'] > 0) { | |
| $claimCompleteStatisticsCollectorService->collectAnalytics([ | |
| 'orderNo' => $postData['orderNo'], | |
| 'claimType' => ClaimType::EXCHANGE->value, | |
| 'claimAmount' => $postData['totalChangePrice'], | |
| ]); | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| return true; | |
| } | |
변경 전Wish.php
| use Repository\RegularDelivery\RegularGoods\RegularGoodsRepository; | |
| use Origin\Enum\RegularDelivery\RegularGoods\RegularGoodsAttribute; | |
| use Origin\Service\WebHook\CartWebHookService; | |
| class Wish | |
| { | |
| const ERROR_VIEW = 'ERROR_VIEW'; | |
| $result = $kafka->send($kafka::TOPIC_CART_ADD_STATISTICS, $kafka->makeData([$cartStatistics], 'cas'), $kafka::MODE_RESULT_CALLLBACK, true); | |
| \Logger::channel('kafka')->info('process sendMQ - return :', $result); | |
| $cartInfo = gd_policy('order.cart'); | |
| if($cartInfo['moveWishPageFl'] =='n') { | |
| //장바구니 저장 상품 삭제 | |
변경 후Wish.php
| use Repository\RegularDelivery\RegularGoods\RegularGoodsRepository; | |
| use Origin\Enum\RegularDelivery\RegularGoods\RegularGoodsAttribute; | |
| use Origin\Service\WebHook\CartWebHookService; | |
| use Origin\Service\Statistics\Analytics\Cart\CartAddHistoryAnalyticsCollectorService; | |
| use Origin\Repository\Wish\WishRepository; | |
| class Wish | |
| { | |
| const ERROR_VIEW = 'ERROR_VIEW'; | |
| $result = $kafka->send($kafka::TOPIC_CART_ADD_STATISTICS, $kafka->makeData([$cartStatistics], 'cas'), $kafka::MODE_RESULT_CALLLBACK, true); | |
| \Logger::channel('kafka')->info('process sendMQ - return :', $result); | |
| // 장바구니 추가 통계 수집 | |
| try { | |
| // 다중 insert 시 insert_id는 첫 sno만 반환 → insert된 cart 특정 불가, 원본 위시(es_wish) 조회 | |
| $wishRepository = \App::getInstance(WishRepository::class); | |
| $wishGoodsList = $wishRepository->findGoodsByWishSnosAndMemNo($sno, (int)Session::get('member.memNo')); | |
| if (!empty($wishGoodsList)) { | |
| $cartAddHistoryAnalyticsCollectorService = \App::getInstance(CartAddHistoryAnalyticsCollectorService::class); | |
| foreach ($wishGoodsList as $wishGoods) { | |
| $cartAddHistoryAnalyticsCollectorService->collectAnalytics($wishGoods); | |
| } | |
| } | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| $cartInfo = gd_policy('order.cart'); | |
| if($cartInfo['moveWishPageFl'] =='n') { | |
| //장바구니 저장 상품 삭제 | |
변경 전MemberPsController.php
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // 평생회원 이벤트 | |
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| $memNo = $memberVO->getMemNo(); | |
변경 후MemberPsController.php
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // 평생회원 이벤트 | |
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| $memNo = $memberVO->getMemNo(); | |
변경 전MemberPsController.php
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| // request가 ajax일 때 (카카오 싱크) | |
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('global')->error(__METHOD__ . ' analytics 수집 실패: ' . $e->getMessage(), [$e->getTraceAsString()]); | |
| } | |
| $memNo = $memberVO->getMemNo(); | |
변경 후MemberPsController.php
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| // request가 ajax일 때 (카카오 싱크) | |
| $memberStatisticsCollectorService = \App::getInstance(MemberJoinCompleteAnalyticsCollectorService::class); | |
| $memberStatisticsCollectorService->collectAnalytics($memberVO->toArray()); | |
| } catch (\Throwable $e) { | |
| \Logger::channel('analytics')->warning('analytics 수집 실패', ['exception' => $e, 'errorMessage' => $e->getMessage()]); | |
| } | |
| $memNo = $memberVO->getMemNo(); | |