From a2c204b8053a7fafc125902ed8b5a2a739e24779 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 화, 14 12월 2021 17:46:22 +0900
Subject: [PATCH] - api 모니니터링 정상동작하도록 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   16 +++++---
 src/main/webapp/views/api/apiMonitor.html                         |   45 +++++++++++++++-------
 src/main/webapp/scripts/app/api/apiMonitor.controller.js          |   27 ++++++++++++-
 src/main/java/kr/wisestone/owl/util/CommonUtil.java               |   15 +++++++
 4 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index 8fa627b..9b792d0 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -912,15 +912,19 @@
     public void findApiIssue(ApiMonitorCondition apiMonitorCondition, Map<String, Object> resJsonData) {
 
         IssueTypeCondition issueTypeCondition = new IssueTypeCondition();
+        issueTypeCondition.setIsApi(Issue.IS_API_YES);
         List<IssueTypeVo> issueTypes = this.issueTypeService.findIssueType(issueTypeCondition);
 
-        // 媛믪씠 �뾾�쓣 寃쎌슦 珥덇린媛� �엯�젰
-        if (StringUtils.isEmpty(apiMonitorCondition.getSearchPeriod())) {
-            apiMonitorCondition.setSearchPeriod(DateUtil.LAST_SEVEN_DAYS);
-        }
-
         //  寃��깋 �씪�옄瑜� 援ы븳�떎.
-        List<Date> searchDates = CommonUtil.findSearchPeriod(apiMonitorCondition.getSearchPeriod());
+        List<Date> searchDates = Lists.newArrayList();
+        if (apiMonitorCondition.getSearchPeriod().equals(DateUtil.CUSTOM_INPUT)) {
+            Date startDate = DateUtil.convertStrToDate(apiMonitorCondition.getSearchStartDate(), "yyyy-MM-dd");
+            Date endDate = DateUtil.addDays(DateUtil.convertStrToDate(apiMonitorCondition.getSearchEndDate(), "yyyy-MM-dd"), 1);
+
+            searchDates = CommonUtil.findSearchPeriod(startDate, endDate);
+        } else {
+            searchDates = CommonUtil.findSearchPeriod(apiMonitorCondition.getSearchPeriod());
+        }
 
         //  �궇吏쒓� 寃��깋�릺吏� �븡�븯�쑝硫� �삤瑜�
         if (searchDates.size() < 1) {
diff --git a/src/main/java/kr/wisestone/owl/util/CommonUtil.java b/src/main/java/kr/wisestone/owl/util/CommonUtil.java
index 5659bfd..afcb056 100644
--- a/src/main/java/kr/wisestone/owl/util/CommonUtil.java
+++ b/src/main/java/kr/wisestone/owl/util/CommonUtil.java
@@ -40,6 +40,7 @@
 import java.security.MessageDigest;
 import java.security.spec.KeySpec;
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 public class CommonUtil {
@@ -761,6 +762,20 @@
         return stringBuilder.toString();
     }
 
+    public static List<Date> findSearchPeriod(Date startDate, Date endDate) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(endDate);
+        List<Date> days = Lists.newArrayList();
+
+        //  �씠踰덈떖 �궇吏� 由ъ뒪�듃 媛��졇�삤湲�
+        while (cal.getTime().after(startDate)){
+            days.add(cal.getTime());
+            cal.add(Calendar.DATE, -1);
+        }
+
+        return days;
+    }
+
     //  寃��깋 �씪�옄瑜� 援ы븳�떎.
     public static List<Date> findSearchPeriod(String searchPeriod) {
         List<Date> searchDates = Lists.newArrayList();
diff --git a/src/main/webapp/scripts/app/api/apiMonitor.controller.js b/src/main/webapp/scripts/app/api/apiMonitor.controller.js
index abfbe73..5a52bb8 100644
--- a/src/main/webapp/scripts/app/api/apiMonitor.controller.js
+++ b/src/main/webapp/scripts/app/api/apiMonitor.controller.js
@@ -17,7 +17,8 @@
 
                 $scope.vm = {
                     search : {
-                        searchPeriod : "LAST_SEVEN_DAYS"
+                        searchPeriod : "LAST_SEVEN_DAYS",
+                        startEndDateRange : "" //  �씠�뒋 湲곕줉 議고쉶 �궇吏�
                     },
                     apiMonitorVos : [],
                     issueTypeVos : [],
@@ -35,8 +36,24 @@
                     }
                 };
 
+                //  吏곸젒 �엯�젰�뿉�꽌 �궇吏� �꽑�깮�떆 �씠�뒋 湲곕줉 �젙蹂� 議고쉶
+                $scope.$watch("vm.search.startEndDateRange", function (newValue) {
+                    if ($rootScope.isDefined(newValue)) {
+                        $scope.fn.drawChart();
+                    }
+                });
+
+                //  �궗�슜�옄 �닔
+
                 function changeSearchPeriod() {
-                    drawChart();
+                    switch ($scope.vm.search.searchPeriod) {
+                        case "CUSTOM_INPUT" :
+                            $scope.vm.search.startEndDateRange = "";
+                            break;
+                        default :
+                            $scope.vm.search.startEndDateRange = "";
+                            $scope.fn.drawChart();
+                    }
                 }
 
                 $scope.fn.drawChart();
@@ -49,6 +66,12 @@
                         searchEndDate : ""
                     };
 
+                    if ($rootScope.isDefined($scope.vm.search.startEndDateRange)) {
+                        var startEndDateRange = $scope.vm.search.startEndDateRange.split("~");
+                        content.searchStartDate = startEndDateRange[0].trim();
+                        content.searchEndDate = startEndDateRange[1].trim();
+                    }
+
                     Api.findHistory($resourceProvider.getContent(content,
                         $resourceProvider.getPageContent(0, 0))).then(function (result) {
 
diff --git a/src/main/webapp/views/api/apiMonitor.html b/src/main/webapp/views/api/apiMonitor.html
index 3db8e70..8dca8b6 100644
--- a/src/main/webapp/views/api/apiMonitor.html
+++ b/src/main/webapp/views/api/apiMonitor.html
@@ -12,23 +12,40 @@
             </h6>
 
             <div class="element-box">
-                <select class="form-control form-control-sm rounded width-30 d-inline-block mb-10" ng-model="vm.search.searchPeriod" ng-change="fn.changeSearchPeriod()">
-                    <option value="LAST_SEVEN_DAYS" translate="common.last7Days">理쒓렐 7�씪</option>
-                    <option value="THIS_WEEK" translate="common.thisWeek">�씠踰� 二�</option>
-                    <option value="LAST_WEEK" translate="common.lastWeek">吏��궃 二�</option>
-                    <option value="THIS_MONTH" translate="common.thisMonth">�씠踰� �떖</option>
-                    <option value="LAST_MONTH" translate="common.lastMonth">吏��궃 �떖(1�씪~留먯씪)</option>
-                    <option value="LAST_THIRTY_DAYS" translate="common.last30Days">理쒓렐 30�씪</option>
-                    <option value="CUSTOM_INPUT" translate="common.directInput">吏곸젒�엯�젰</option>
-                </select>
+                <div>
+                    <select class="form-control form-control-sm rounded width-30 d-inline-block mb-10" ng-model="vm.search.searchPeriod" ng-change="fn.changeSearchPeriod()">
+                        <option value="LAST_SEVEN_DAYS" translate="common.last7Days">理쒓렐 7�씪</option>
+                        <option value="THIS_WEEK" translate="common.thisWeek">�씠踰� 二�</option>
+                        <option value="LAST_WEEK" translate="common.lastWeek">吏��궃 二�</option>
+                        <option value="THIS_MONTH" translate="common.thisMonth">�씠踰� �떖</option>
+                        <option value="LAST_MONTH" translate="common.lastMonth">吏��궃 �떖(1�씪~留먯씪)</option>
+                        <option value="LAST_THIRTY_DAYS" translate="common.last30Days">理쒓렐 30�씪</option>
+                        <option value="CUSTOM_INPUT" translate="common.directInput">吏곸젒�엯�젰</option>
+                    </select>
 
+                    <input type="text"
+                           ng-show="vm.search.searchPeriod == 'CUSTOM_INPUT'"
+                           class="form-control form-control-sm rounded col-md-4 d-inline-block input-readonly"
+                           ng-model="vm.search.startEndDateRange"
+                           modal-form-auto-scroll
+                           parent-el="'#createdWidget'"
+                           range-type="date"
+                           onfocus="this.blur()"
+                           style="height: 32px !important; padding: 0.25rem 0.5rem; font-size: 0.8rem; line-height: 1.5;"
+                           date-range-picker>
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <div id="createdWidget" class="bootstrap-datepicker"></div>
+                        </div>
+                    </div>
 
-                <div class="no-cont1"
-                     ng-if="vm.chartData.columns.length < 1"
-                     translate="common.noRecord">
-                    湲곕줉�씠 �뾾�뒿�땲�떎.
+                    <div class="no-cont1"
+                         ng-if="vm.chartData.columns.length < 1"
+                         translate="common.noRecord">
+                        湲곕줉�씠 �뾾�뒿�땲�떎.
+                    </div>
+
                 </div>
-
                 <div  ng-if="vm.chartData.columns.length > 0">
                     <google-chart
                                   columns="vm.chartData.columns"

--
Gitblit v1.8.0