diff --git a/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java b/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java index 72b116ae..f2294b3c 100644 --- a/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java +++ b/src/main/java/com/dbnt/faisp/main/searchEngine/SearchEngineController.java @@ -1,5 +1,6 @@ package com.dbnt.faisp.main.searchEngine; +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.menuMgt.model.MenuMgt; import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.searchEngine.model.*; @@ -21,6 +22,7 @@ public class SearchEngineController { private final SearchEngineService searchEngineService; private final MenuMgtService menuMgtService; + private final CodeMgtService codeMgtService; @GetMapping("/searchPage") public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, SearchParams params) { @@ -29,6 +31,12 @@ public class SearchEngineController { params.setActiveTab("all"); params.setPageIndex(1); } +// if(Utils.isEmpty(params.getWrtOrgan())){ +// params.setWrtOrgan(codeMgtService.searchValue(loginUser.getOgCd())); +// } + if(Utils.isEmpty(params.getWrtUserSeq())){ + params.setWrtUserSeq(loginUser.getUserSeq()); + } int totalCnt = 0; SearchResult result = null; switch (params.getActiveTab()){ diff --git a/src/main/java/com/dbnt/faisp/main/searchEngine/model/SearchParams.java b/src/main/java/com/dbnt/faisp/main/searchEngine/model/SearchParams.java index ffa38c3d..df4c5269 100644 --- a/src/main/java/com/dbnt/faisp/main/searchEngine/model/SearchParams.java +++ b/src/main/java/com/dbnt/faisp/main/searchEngine/model/SearchParams.java @@ -4,12 +4,17 @@ import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.Transient; +import java.time.LocalDate; @Data @NoArgsConstructor public class SearchParams { private String form; private String keyword; + private LocalDate startDate; + private LocalDate endDate; + private String wrtOrgan; + private Integer wrtUserSeq; private Integer offset; private Integer limit; private String activeTab; diff --git a/src/main/java/com/dbnt/faisp/main/searchEngine/service/SearchEngineService.java b/src/main/java/com/dbnt/faisp/main/searchEngine/service/SearchEngineService.java index a3040bf0..f434df93 100644 --- a/src/main/java/com/dbnt/faisp/main/searchEngine/service/SearchEngineService.java +++ b/src/main/java/com/dbnt/faisp/main/searchEngine/service/SearchEngineService.java @@ -3,6 +3,7 @@ package com.dbnt.faisp.main.searchEngine.service; import com.dbnt.faisp.main.searchEngine.model.SearchMenuView; import com.dbnt.faisp.main.searchEngine.model.SearchParams; import com.dbnt.faisp.main.searchEngine.model.SearchResult; +import com.dbnt.faisp.util.Utils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; @@ -20,6 +21,8 @@ import org.springframework.web.util.UriComponentsBuilder; import java.net.URI; import java.time.Duration; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -36,12 +39,38 @@ public class SearchEngineService { } private JSONObject requestToSearchEngine(SearchParams params){ + StringBuilder builder = new StringBuilder(); + builder.append("text_idx='") + .append(params.getKeyword()) + .append("' allword synonym"); + if(!params.getForm().equals("search_menu_view.search_menu_view")){ +// builder.append(" and wrt_organ='") +// .append(params.getWrtOrgan()) +// .append("'"); + builder.append(" and wrt_user_seq='") + .append(params.getWrtUserSeq()) + .append("'"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + if(!Utils.isEmpty(params.getStartDate())){ + builder.append(" and wrt_dt >= ") + .append(formatter.format(params.getStartDate())) + .append("000000"); + } + if(!Utils.isEmpty(params.getEndDate())){ + builder.append(" and wrt_dt <= ") + .append(formatter.format(params.getEndDate())) + .append("000000"); + } + } + String where = builder.toString(); URI uri = UriComponentsBuilder.fromHttpUrl(engineUrl) .path("/search5") .queryParam("select", "*") .queryParam("from", params.getForm()) - .queryParam("where", "text_idx = '"+params.getKeyword()+"' allword synonym order by $relevance desc") + .queryParam("where", where) + .queryParam("order by", " $relevance desc") .queryParam("offset", params.getOffset().toString()) + .queryParam("pagelength", params.getLimit().toString()) //.queryParam("limit", params.getLimit().toString()) // total_count 갯수수가 limit로 제한걸려 조건에서 제외. 검색 결과는 정상적으로 나옴. .queryParam("charset", "UTF-8") diff --git a/src/main/resources/templates/searchEngine/search.html b/src/main/resources/templates/searchEngine/search.html index 278d4397..56854801 100644 --- a/src/main/resources/templates/searchEngine/search.html +++ b/src/main/resources/templates/searchEngine/search.html @@ -19,9 +19,10 @@