검색엔진 조회 조건 수정.

master
강석 최 2023-06-19 13:27:25 +09:00
parent 59806a5a0d
commit 7c17429bb5
4 changed files with 49 additions and 6 deletions

View File

@ -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()){

View File

@ -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;

View File

@ -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")

View File

@ -19,9 +19,10 @@
<div class="searchBox">
<input type="hidden" name="pageIndex" id="pageIndexInput" th:value="${searchParams.pageIndex}">
<input type="hidden" name="activeTab" id="activeTabInput" th:value="${searchParams.activeTab}">
<input type="hidden" name="wrtOrgan" th:value="${searchParams.wrtOrgan}">
<input type="hidden" name="wrtUserSeq" th:value="${searchParams.wrtUserSeq}">
<input type="text" title="입력" name="keyword" placeholder="검색어를 입력해주세요." th:value="${searchParams.keyword}"/>
<a href="#" id="searchBtn">검색</a>
<!--<div class="autoSearchList">
&lt;!&ndash;<p>자동완성 기능입니다.(데이터 없을 경우 문구)</p>&ndash;&gt;
<ul>
@ -223,9 +224,9 @@
<li th:each="file:${fileResult.rowList}">
<dl class="fileLink" th:data-menukey="${file.menu_key eq null?'0':file.menu_key}" th:data-mainkey="${file.main_key}" th:data-fileseq="${file.file_seq}">
<th:block th:if="${file.menu_key ne null}">
[<th:block th:each="menu:${menuList}">
<th:block th:each="menu:${menuList}">
<th:block th:if="${menu.menuKey eq file.menu_key}">
<th:block th:if="${!#strings.isEmpty(menu.cat3Cd)}">
[<th:block th:if="${!#strings.isEmpty(menu.cat3Cd)}">
<th:block th:each="code:${session.commonCode.get('CAT3')}">
<th:block th:if="${menu.cat3Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
@ -239,9 +240,9 @@
<th:block th:each="code:${session.commonCode.get('CAT1')}">
<th:block th:if="${menu.cat1Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
</th:block>
</th:block>]
</th:block>
</th:block>]
</th:block>
</th:block>
<dt><a href="#" th:text="${#strings.concat(file.orig_nm, '.', file.file_extn)}"></a><a href="#" class="downBtn">내려받기</a></dt>
<dd th:text="${file.file_content}"></dd>