검색엔진 조회 조건 수정.
parent
59806a5a0d
commit
7c17429bb5
|
|
@ -1,5 +1,6 @@
|
||||||
package com.dbnt.faisp.main.searchEngine;
|
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.model.MenuMgt;
|
||||||
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
||||||
import com.dbnt.faisp.main.searchEngine.model.*;
|
import com.dbnt.faisp.main.searchEngine.model.*;
|
||||||
|
|
@ -21,6 +22,7 @@ public class SearchEngineController {
|
||||||
|
|
||||||
private final SearchEngineService searchEngineService;
|
private final SearchEngineService searchEngineService;
|
||||||
private final MenuMgtService menuMgtService;
|
private final MenuMgtService menuMgtService;
|
||||||
|
private final CodeMgtService codeMgtService;
|
||||||
|
|
||||||
@GetMapping("/searchPage")
|
@GetMapping("/searchPage")
|
||||||
public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, SearchParams params) {
|
public ModelAndView organMgtPage(@AuthenticationPrincipal UserInfo loginUser, SearchParams params) {
|
||||||
|
|
@ -29,6 +31,12 @@ public class SearchEngineController {
|
||||||
params.setActiveTab("all");
|
params.setActiveTab("all");
|
||||||
params.setPageIndex(1);
|
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;
|
int totalCnt = 0;
|
||||||
SearchResult result = null;
|
SearchResult result = null;
|
||||||
switch (params.getActiveTab()){
|
switch (params.getActiveTab()){
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,17 @@ import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class SearchParams {
|
public class SearchParams {
|
||||||
private String form;
|
private String form;
|
||||||
private String keyword;
|
private String keyword;
|
||||||
|
private LocalDate startDate;
|
||||||
|
private LocalDate endDate;
|
||||||
|
private String wrtOrgan;
|
||||||
|
private Integer wrtUserSeq;
|
||||||
private Integer offset;
|
private Integer offset;
|
||||||
private Integer limit;
|
private Integer limit;
|
||||||
private String activeTab;
|
private String activeTab;
|
||||||
|
|
|
||||||
|
|
@ -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.SearchMenuView;
|
||||||
import com.dbnt.faisp.main.searchEngine.model.SearchParams;
|
import com.dbnt.faisp.main.searchEngine.model.SearchParams;
|
||||||
import com.dbnt.faisp.main.searchEngine.model.SearchResult;
|
import com.dbnt.faisp.main.searchEngine.model.SearchResult;
|
||||||
|
import com.dbnt.faisp.util.Utils;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
|
@ -20,6 +21,8 @@ import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -36,12 +39,38 @@ public class SearchEngineService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private JSONObject requestToSearchEngine(SearchParams params){
|
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)
|
URI uri = UriComponentsBuilder.fromHttpUrl(engineUrl)
|
||||||
.path("/search5")
|
.path("/search5")
|
||||||
.queryParam("select", "*")
|
.queryParam("select", "*")
|
||||||
.queryParam("from", params.getForm())
|
.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("offset", params.getOffset().toString())
|
||||||
|
.queryParam("pagelength", params.getLimit().toString())
|
||||||
//.queryParam("limit", params.getLimit().toString())
|
//.queryParam("limit", params.getLimit().toString())
|
||||||
// total_count 갯수수가 limit로 제한걸려 조건에서 제외. 검색 결과는 정상적으로 나옴.
|
// total_count 갯수수가 limit로 제한걸려 조건에서 제외. 검색 결과는 정상적으로 나옴.
|
||||||
.queryParam("charset", "UTF-8")
|
.queryParam("charset", "UTF-8")
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,10 @@
|
||||||
<div class="searchBox">
|
<div class="searchBox">
|
||||||
<input type="hidden" name="pageIndex" id="pageIndexInput" th:value="${searchParams.pageIndex}">
|
<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="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}"/>
|
<input type="text" title="입력" name="keyword" placeholder="검색어를 입력해주세요." th:value="${searchParams.keyword}"/>
|
||||||
<a href="#" id="searchBtn">검색</a>
|
<a href="#" id="searchBtn">검색</a>
|
||||||
|
|
||||||
<!--<div class="autoSearchList">
|
<!--<div class="autoSearchList">
|
||||||
<!–<p>자동완성 기능입니다.(데이터 없을 경우 문구)</p>–>
|
<!–<p>자동완성 기능입니다.(데이터 없을 경우 문구)</p>–>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
@ -223,9 +224,9 @@
|
||||||
<li th:each="file:${fileResult.rowList}">
|
<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}">
|
<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: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="${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:each="code:${session.commonCode.get('CAT3')}">
|
||||||
<th:block th:if="${menu.cat3Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${menu.cat3Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
@ -239,9 +240,9 @@
|
||||||
<th:block th:each="code:${session.commonCode.get('CAT1')}">
|
<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: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>]
|
</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>
|
<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>
|
<dd th:text="${file.file_content}"></dd>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue