From 6211b73ad7750a62652bacf5bcf05002c62fb907 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 06 1월 2022 15:57:16 +0900 Subject: [PATCH] - 이슈 상세페이지 연관,하위 이슈 페이징 처리 완료 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 20 ++--- src/main/java/kr/wisestone/owl/vo/IssueVo.java | 18 ++++ src/main/java/kr/wisestone/owl/web/controller/GanttController.java | 4 src/main/java/kr/wisestone/owl/service/impl/GanttServiceImpl.java | 4 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java | 39 ++++++++- src/main/java/kr/wisestone/owl/service/GanttService.java | 2 src/main/webapp/scripts/app/issue/issueDetail.controller.js | 40 ++++++--- src/main/java/kr/wisestone/owl/vo/PageVo.java | 6 - src/main/java/kr/wisestone/owl/service/IssueService.java | 2 src/main/webapp/scripts/components/utils/resource.provider.js | 8 -- src/main/java/kr/wisestone/owl/web/controller/IssueController.java | 4 src/main/webapp/views/issue/issueDetail.html | 28 +++--- src/main/java/kr/wisestone/owl/util/PageUtil.java | 10 -- 13 files changed, 108 insertions(+), 77 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/GanttService.java b/src/main/java/kr/wisestone/owl/service/GanttService.java index 8172c36..ae3e0f4 100644 --- a/src/main/java/kr/wisestone/owl/service/GanttService.java +++ b/src/main/java/kr/wisestone/owl/service/GanttService.java @@ -28,7 +28,7 @@ List<IssueVo> findIssue(Map<String, Object> resJsonData, ProjectCondition projectCondition, Pageable pageable); - void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable); + void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition); Issue modifyIssue(IssueForm issueForm, List<MultipartFile> files); diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java index c47ce15..1221d84 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueService.java +++ b/src/main/java/kr/wisestone/owl/service/IssueService.java @@ -56,7 +56,7 @@ List<IssueVo> findChartIssue(Map<String, Object> resJsonData, ProjectCondition condition, Pageable pageable); - void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable); + void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition); Issue modifyIssue(IssueForm issueForm, List<MultipartFile> files); diff --git a/src/main/java/kr/wisestone/owl/service/impl/GanttServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/GanttServiceImpl.java index 602e6e9..5abe8c5 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/GanttServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/GanttServiceImpl.java @@ -95,8 +95,8 @@ // �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. @Override @Transactional(readOnly = true) - public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) { - issueService.detailIssue(resJsonData, issueCondition, relPageable, downPageable); + public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition) { + issueService.detailIssue(resJsonData, issueCondition); } // �씠�뒋瑜� �닔�젙�븳�떎. 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 7be00d2..1ec2a43 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -1472,17 +1472,22 @@ // �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎. @Override @Transactional(readOnly = true) - public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition, Pageable relPageable, Pageable downPageable) { + public void detailIssue(Map<String, Object> resJsonData, IssueCondition issueCondition) { IssueVo issueVo = new IssueVo(); + Pageable relPageable = issueCondition.getRelPageable(); + Pageable downPageable = issueCondition.getDownPageable(); if (issueCondition.getId() != null) { Issue issue = this.getIssue(issueCondition.getId()); issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); User user = this.webAppUtil.getLoginUserObject(); - issueVo.setRelPage(relPageable.getPageNumber() * relPageable.getPageSize()); - issueVo.setRelPageSize(relPageable.getPageSize()); + issueVo.setRelPageNumber(relPageable.getPageNumber()); + issueVo.setRelPageSize(relPageable.getPageSize()); + issueVo.setRelPage(relPageable.getPageNumber() * relPageable.getPageSize()); + + issueVo.setDownPageNumber(downPageable.getPageNumber()); issueVo.setDownPage(downPageable.getPageNumber() * downPageable.getPageSize()); issueVo.setDownPageSize(downPageable.getPageSize()); @@ -1510,19 +1515,10 @@ break; } } - Long relTotalCount = issueVo.getRelTotalCount(); - int relTotalPage = issueVo.getRelTotalPage(); - - Long downTotalCount = issueVo.getDownTotalCount(); - int downTotalPage = issueVo.getDownTotalPage(); // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_DETAIL)); resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); - resJsonData.put(Constants.REQ_KEY_RELATION_ISSUE_PAGE_VO, new ResPage(relPageable.getPageNumber(), relPageable.getPageSize(), - relTotalPage, relTotalCount)); - resJsonData.put(Constants.REQ_KEY_DOWN_ISSUE_PAGE_VO, new ResPage(downPageable.getPageNumber(), downPageable.getPageSize(), - downTotalPage, downTotalCount)); } // �뀒�씠釉� �꽕�젙 �뀑�똿 diff --git a/src/main/java/kr/wisestone/owl/util/PageUtil.java b/src/main/java/kr/wisestone/owl/util/PageUtil.java index ee91b1b..bcd67b4 100644 --- a/src/main/java/kr/wisestone/owl/util/PageUtil.java +++ b/src/main/java/kr/wisestone/owl/util/PageUtil.java @@ -46,14 +46,6 @@ return PageRequest.of(pageVo.getPage(), pageVo.getPageSize()); } - public Pageable convertRelPageable(PageVo pageVo) { - return PageRequest.of(pageVo.getRelPage(), pageVo.getRelPageSize()); - } - - public Pageable convertDownPageable(PageVo pageVo) { - return PageRequest.of(pageVo.getDownPage(), pageVo.getDownPageSize()); - } - public Pageable getDefaultPageable() { return PageRequest.of(0, 300); } @@ -63,7 +55,7 @@ } public PageVo getDefaultPageVo() { - return new PageVo(0, 300,0, 300, 0, 300); + return new PageVo(0, 300); } public static Pageable applySort(Pageable page, String field, Sort.Direction direction) { diff --git a/src/main/java/kr/wisestone/owl/vo/IssueVo.java b/src/main/java/kr/wisestone/owl/vo/IssueVo.java index 50a4822..1f19fc2 100644 --- a/src/main/java/kr/wisestone/owl/vo/IssueVo.java +++ b/src/main/java/kr/wisestone/owl/vo/IssueVo.java @@ -72,11 +72,13 @@ private String hostingName; private int relPage; + private int relPageNumber; private int relPageSize; private int relTotalPage; private Long relTotalCount; private int downPage; + private int downPageNumber; private int downPageSize; private int downTotalPage; private Long downTotalCount; @@ -632,4 +634,20 @@ public void setDownTotalCount(Long downTotalCount) { this.downTotalCount = downTotalCount; } + + public int getRelPageNumber() { + return relPageNumber; + } + + public void setRelPageNumber(int relPageNumber) { + this.relPageNumber = relPageNumber; + } + + public int getDownPageNumber() { + return downPageNumber; + } + + public void setDownPageNumber(int downPageNumber) { + this.downPageNumber = downPageNumber; + } } diff --git a/src/main/java/kr/wisestone/owl/vo/PageVo.java b/src/main/java/kr/wisestone/owl/vo/PageVo.java index 8a7305a..7f7216b 100644 --- a/src/main/java/kr/wisestone/owl/vo/PageVo.java +++ b/src/main/java/kr/wisestone/owl/vo/PageVo.java @@ -16,13 +16,9 @@ public PageVo() { } - public PageVo(int page, int pageSize, int relPage, int relPageSize, int downPage, int downPageSize) { + public PageVo(int page, int pageSize) { this.page = page; this.pageSize = pageSize; - this.relPage = relPage; - this.relPageSize = relPageSize; - this.downPage = downPage; - this.downPageSize = downPageSize; } public Integer getPage() { diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java index 23b0d61..74c96ee 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java @@ -1,10 +1,9 @@ package kr.wisestone.owl.web.condition; import com.google.common.collect.Lists; -import kr.wisestone.owl.util.CommonUtil; -import kr.wisestone.owl.util.ConvertUtil; -import kr.wisestone.owl.util.DateUtil; -import kr.wisestone.owl.util.MapUtil; +import kr.wisestone.owl.util.*; +import kr.wisestone.owl.vo.PageVo; +import org.springframework.data.domain.Pageable; import org.springframework.util.StringUtils; import java.util.Date; @@ -56,6 +55,8 @@ private Boolean hideDownIssue; private Boolean hideCompleteIssue; private Boolean isTree; // �듃由ш뎄議� 紐⑤뱶 �씪�븣 + private Pageable relPageable; + private Pageable downPageable; public IssueCondition(){} @@ -70,6 +71,20 @@ public static IssueCondition make(Map<String, Object> conditions) { IssueCondition condition = ConvertUtil.convertMapToClass(conditions, IssueCondition.class); + Map<String, Object> pageContents = (Map<String, Object>) conditions.get("pageContent"); + if (pageContents != null) { + PageVo downPageVo = new PageVo(); + downPageVo.setPage(MapUtil.getInteger(pageContents, "downPage")); + downPageVo.setPageSize(MapUtil.getInteger(pageContents, "downPageSize")); + + PageVo relPageVo = new PageVo(); + relPageVo.setPage(MapUtil.getInteger(pageContents, "relPage")); + relPageVo.setPageSize(MapUtil.getInteger(pageContents, "relPageSize")); + + PageUtil pageUtil = new PageUtil(); + condition.setRelPageable(pageUtil.convertPageable(relPageVo)); + condition.setDownPageable(pageUtil.convertPageable(downPageVo)); + } if (!StringUtils.isEmpty(condition.getCombinationIssueNumber())) { if (condition.getCombinationIssueNumber().contains("-")) { @@ -542,4 +557,20 @@ public void setTree(Boolean tree) { isTree = tree; } + + public Pageable getRelPageable() { + return relPageable; + } + + public void setRelPageable(Pageable relPageable) { + this.relPageable = relPageable; + } + + public Pageable getDownPageable() { + return downPageable; + } + + public void setDownPageable(Pageable downPageable) { + this.downPageable = downPageable; + } } diff --git a/src/main/java/kr/wisestone/owl/web/controller/GanttController.java b/src/main/java/kr/wisestone/owl/web/controller/GanttController.java index 015882c..ccc30cd 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/GanttController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/GanttController.java @@ -82,10 +82,8 @@ @ResponseBody Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { Map<String, Object> resJsonData = new HashMap<>(); - Pageable relPageable = this.pageUtil.convertRelPageable(this.getPageVo(params)); - Pageable downPageable = this.pageUtil.convertDownPageable(this.getPageVo(params)); - this.ganttServiceService.detailIssue(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), relPageable, downPageable); + this.ganttServiceService.detailIssue(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT))); return this.setSuccessMessage(resJsonData); } diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java index ff92657..7a7dfbb 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java @@ -127,10 +127,8 @@ @ResponseBody Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { Map<String, Object> resJsonData = new HashMap<>(); - Pageable relPageable = this.pageUtil.convertRelPageable(this.getPageVo(params)); - Pageable downPageable = this.pageUtil.convertDownPageable(this.getPageVo(params)); - this.issueService.detailIssue(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), relPageable, downPageable); + this.issueService.detailIssue(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT))); return this.setSuccessMessage(resJsonData); } diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index dab59ac..34c14fa 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -55,6 +55,7 @@ $scope.fn.removeDownIssue = removeDownIssue; $scope.fn.changeDetailPageRowCount = changeDetailPageRowCount; // �럹�씠吏� 蹂�寃� $scope.fn.sendCommonMail = sendCommonMail; + $scope.fn.getSubPageContent = getSubPageContent; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� $scope.vm.viewer = {}; // �쁽�옱 �씠�뒋 @@ -95,9 +96,7 @@ data : [] }; - $scope.vm.page = { - selectedPage : 0, - selectedPageRowCount : String(10), + $scope.vm.subPage = { selectedRelPage : 0, selectedRelPageRowCount : String(10), selectedDownPage : 0, @@ -167,10 +166,10 @@ angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); - // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 - $scope.$on("getIssueList", function () { + // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 + /*$scope.$on("getIssueList", function () { $scope.fn.getIssueDetail(0,0); - }); + });*/ // �븯�쐞 �씠�뒋 �궘�젣 function removeDownIssue() { @@ -782,7 +781,7 @@ // $scope.vm.viewer.id = args["id"]; // $scope.fn.getIssueDetail(); // }); - + // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊 // $rootScope.$on("getIssueDetail", function (event, args) { // $scope.fn.getIssueDetail(); @@ -985,6 +984,14 @@ return result; } + function getSubPageContent(relPage, relPageSize, downPage, downPageSize) { + return { + relPage: relPage, + relPageSize: relPageSize, + downPage: downPage, + downPageSize: downPageSize + }; + } // �씠�뒋 �긽�꽭 �젙蹂� 議고쉶 function getIssueDetail(selectedRelPage, selectedDownPage) { @@ -1018,18 +1025,21 @@ $scope.fn.initReload(); // $scope.fn.getRelTableConfigs(); // $scope.fn.getDownTableConfigs(); - Issue.detail($resourceProvider.getContent( - {id : $scope.vm.viewer.id, deep : "02"}, - $resourceProvider.getSubPageContent(currentRelPage, $scope.vm.page.selectedRelPageRowCount - , currentDownPage, $scope.vm.page.selectedDownPageRowCount)) - ).then(function (result) { + + var pageContent = $scope.fn.getSubPageContent(currentRelPage, $scope.vm.subPage.selectedRelPageRowCount + , currentDownPage, $scope.vm.subPage.selectedDownPageRowCount); + + var content = $resourceProvider.getContent( + {id : $scope.vm.viewer.id, deep : "02", pageContent}, null); + + Issue.detail(content).then(function (result) { if (result.data.message.status === "success") { if (angular.isDefined(result.data.data)) { - $scope.vm.page.selectedRelPage = currentRelPage + 1; - $scope.vm.page.selectedDownPage = currentDownPage + 1; - $scope.vm.responseData = result.data; + $scope.vm.subPage.selectedRelPage = currentRelPage + 1; + $scope.vm.subPage.selectedDownPage = currentDownPage + 1; + $scope.vm.responseData = result.data.data; $scope.vm.viewer = angular.copy(result.data.data); // �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲� diff --git a/src/main/webapp/scripts/components/utils/resource.provider.js b/src/main/webapp/scripts/components/utils/resource.provider.js index cf788aa..680301f 100644 --- a/src/main/webapp/scripts/components/utils/resource.provider.js +++ b/src/main/webapp/scripts/components/utils/resource.provider.js @@ -21,14 +21,6 @@ page: page, pageSize: pageSize }; - }, - getSubPageContent: function (relPage, relPageSize, downPage, downPageSize) { - return { - relPage: relPage, - relPageSize: relPageSize, - downPage: downPage, - downPageSize: downPageSize - }; } } } diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 3d7c70e..8922ad3 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -499,12 +499,12 @@ tabindex="-1" class="form-control form-control-sm" ng-change="fn.changeDetailPageRowCount()" - ng-model="vm.page.selectedRelPageRowCount"> + ng-model="vm.subPage.selectedRelPageRowCount"> <option value="10">10</option> <option value="50">50</option> <option value="100">100</option> - </select> {{vm.page.selectedRelPage}}-{{vm.responseData.relPage.totalPage}} / - {{vm.responseData.relPage.totalCount | number}}<span translate="common.few">嫄�</span> + </select> {{vm.subPage.selectedRelPage}}-{{vm.responseData.relTotalPage}} / + {{vm.responseData.relTotalCount | number}}<span translate="common.few">嫄�</span> </label> </div> </div> @@ -565,11 +565,11 @@ <div class="controls-below-table text-center"> <ul uib-pagination boundary-links-numbes="true" - items-per-page="vm.page.selectedRelPageRowCount" - total-items="vm.responseData.relPage.totalCount" - ng-model="vm.page.selectedRelPage" + items-per-page="vm.subPage.selectedRelPageRowCount" + total-items="vm.responseData.relTotalCount" + ng-model="vm.subPage.selectedRelPage" max-size="10" - ng-click="fn.getIssueDetail(vm.page.selectedRelPage - 1, vm.page.selectedDownPage - 1)" + ng-click="fn.getIssueDetail(vm.subPage.selectedRelPage - 1, vm.subPage.selectedDownPage - 1)" class="pagination pagination-sm" previous-text="<" next-text=">" @@ -599,12 +599,12 @@ tabindex="-1" class="form-control form-control-sm" ng-change="fn.changeDetailPageRowCount()" - ng-model="vm.page.selectedDownPageRowCount"> + ng-model="vm.subPage.selectedDownPageRowCount"> <option value="10">10</option> <option value="50">50</option> <option value="100">100</option> - </select> {{vm.page.selectedDownPage}}-{{vm.responseData.downPage.totalPage}} / - {{vm.responseData.downPage.totalCount | number}}<span translate="common.few">嫄�</span> + </select> {{vm.subPage.selectedDownPage}}-{{vm.responseData.downTotalPage}} / + {{vm.responseData.downTotalCount | number}}<span translate="common.few">嫄�</span> </label> </div> </div> @@ -655,11 +655,11 @@ <div class="controls-below-table text-center"> <ul uib-pagination boundary-links-numbes="true" - items-per-page="vm.page.selectedDownPageRowCount" - total-items="vm.responseData.downPage.totalCount" - ng-model="vm.page.selectedDownPage" + items-per-page="vm.subPage.selectedDownPageRowCount" + total-items="vm.responseData.downTotalCount" + ng-model="vm.subPage.selectedDownPage" max-size="10" - ng-click="fn.getIssueDetail(vm.page.selectedRelPage - 1, vm.page.selectedDownPage - 1)" + ng-click="fn.getIssueDetail(vm.subPage.selectedRelPage - 1, vm.subPage.selectedDownPage - 1)" class="pagination pagination-sm" previous-text="<" next-text=">" -- Gitblit v1.8.0