From c7584948cb01407c9db17dc082acc91bed11a97e Mon Sep 17 00:00:00 2001 From: 354798ggg <1074825718@qq.com> Date: 星期三, 31 五月 2023 14:02:11 +0800 Subject: [PATCH] 文档检索调整 --- src/main/java/com/product/lucene/config/CmnConst.java | 35 ++++++++ src/main/java/com/product/lucene/service/SearchTermService.java | 72 ++++++++++++++++++ src/main/java/com/product/lucene/config/SystemCode.java | 33 ++++++++ src/main/java/com/product/lucene/controller/SearchTermController.java | 88 ++++++++++++++++++++++ 4 files changed, 228 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/product/lucene/config/CmnConst.java b/src/main/java/com/product/lucene/config/CmnConst.java new file mode 100644 index 0000000..7998f28 --- /dev/null +++ b/src/main/java/com/product/lucene/config/CmnConst.java @@ -0,0 +1,35 @@ +package com.product.lucene.config; + +public class CmnConst { + + public static final String PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT = "product_sys_document_search_content"; + public static final String PRODUCT_SYS_DOCUMENT_SEARCH = "product_sys_document_search"; + public static final String PRODUCT_SYS_ATTACHMENTS="product_sys_attachments"; + + public static final String TABLE_NAME="table_name"; + public static final String ATTACHMENT_UUID="attachment_uuid"; + public static final String FILE_NAME="file_name"; + public static final String FILE_CONTENT="file_content"; + public static final String ORG_FIELDS="org_fileds"; + public static final String USER_FIELDS="user_fileds"; + public static final String TIME_FIELD="time_field"; + public static final String TITLE_FIELD="title_field"; + public static final String ATTACHMENT_DATA_FIELD="attachment_data_field"; + public static final String ATTACHMENT_DATA_TABLE="attachment_data_table"; + + public static final String SEARCH_KEY="search_key"; + public static final String SEARCH_KEYWORD="search_keyword"; + public static final String SEARCH_HISTORY="search_history"; + public static final String SEARCH_CONTENT="search_content"; + public static final String CONTENT_TYPE="content_type"; + + public static final String TITLE="title"; + public static final String IS_PERSSION="is_perssion"; + public static final String SERVICE_UUID="service_uuid"; + public static final String DATE_TIME="date_time"; + public static final String TOTALCOUNT="totalCount"; + public static final String DATA="data"; + + public static final String HIGHLIGHT_BEFORE="<span style='color:red'>"; + public static final String HIGHLIGHT_AFTER="</span>"; +} diff --git a/src/main/java/com/product/lucene/config/SystemCode.java b/src/main/java/com/product/lucene/config/SystemCode.java new file mode 100644 index 0000000..6310e43 --- /dev/null +++ b/src/main/java/com/product/lucene/config/SystemCode.java @@ -0,0 +1,33 @@ +package com.product.lucene.config; + +import com.product.common.enums.IEnum; +import com.product.common.enums.ModuleEnum; + +public enum SystemCode implements IEnum { + + ADD_SEARCH_CONTENT_EXIST("鏂板甯哥敤璇嶆潯宸插瓨鍦�", ModuleEnum.LUCENE.getValue() + "001"), + DELETE_SEARCH_CENTENT_FAIL("鍒犻櫎鎼滅储璇嶆潯澶辫触", ModuleEnum.LUCENE.getValue() + "002"), + ADD_SEARCH_CENTENT_FAIL("鍒犻櫎鎼滅储璇嶆潯澶辫触", ModuleEnum.LUCENE.getValue() + "003"), + LIST_SEARCH_CENTENT_FAIL("鍒犻櫎鎼滅储璇嶆潯澶辫触", ModuleEnum.LUCENE.getValue() + "004"), + ; + + + private String text; + private String value; + + private SystemCode(String text, String value) { + this.text = text; + this.value = value; + } + + @Override + public String getText() { + return text; + } + + @Override + public String getValue() { + return value; + } + +} diff --git a/src/main/java/com/product/lucene/controller/SearchTermController.java b/src/main/java/com/product/lucene/controller/SearchTermController.java new file mode 100644 index 0000000..691b764 --- /dev/null +++ b/src/main/java/com/product/lucene/controller/SearchTermController.java @@ -0,0 +1,88 @@ +package com.product.lucene.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.product.core.controller.support.AbstractBaseController; +import com.product.core.entity.FieldSetEntity; +import com.product.core.exception.BaseException; +import com.product.lucene.config.CmnConst; +import com.product.lucene.config.SystemCode; +import com.product.lucene.service.SearchTermService; +import com.product.module.sys.version.ApiVersion; +import com.product.util.BaseUtil; +import com.product.util.ResultInfo; + + +@RequestMapping("/api/search-term") +@RestController +public class SearchTermController extends AbstractBaseController{ + + @Autowired + SearchTermService searchTermService; + + /** + * 鑾峰彇妫�绱㈣瘝鏉★紙甯哥敤璇嶆潯鍜屽巻鍙茶褰曪級 + * @param request + */ + @RequestMapping("/list/{version}") + @ApiVersion(1) + public String listSearchTerm(HttpServletRequest request) { + try { + searchTermService.listSearchTerm(); + return ResultInfo.success(searchTermService.listSearchTerm()); + } catch (BaseException e) { + e.printStackTrace(); + return this.error(e.getCode(), e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + return this.error(SystemCode.LIST_SEARCH_CENTENT_FAIL.getValue(), SystemCode.LIST_SEARCH_CENTENT_FAIL.getText()); + } + } + + /** + * 鏂板妫�绱㈣瘝鏉★紙甯哥敤璇嶆潯锛� + * @param request + */ + @RequestMapping("/add/{version}") + @ApiVersion(1) + public String addSearchTerm(HttpServletRequest request) { + try { + FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT); + return OK_Add(searchTermService.addSearchTerm(fse.getString(CmnConst.SEARCH_CONTENT), fse.getString(CmnConst.CONTENT_TYPE))); + } catch (BaseException e) { + e.printStackTrace(); + return this.error(e.getCode(), e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + return this.error(SystemCode.ADD_SEARCH_CENTENT_FAIL.getValue(), SystemCode.ADD_SEARCH_CENTENT_FAIL.getText()); + } + } + + /** + * 鍒犻櫎妫�绱㈣瘝鏉★紙甯哥敤璇嶆潯鍜屽巻鍙茶褰曪級 + * @param request + */ + @RequestMapping("/delete/{version}") + @ApiVersion(1) + public String deleteSearchTerm(HttpServletRequest request) { + try { + FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT); + searchTermService.deleteSearchTerm(fse.getUUID()); + boolean succ = searchTermService.deleteSearchTerm(fse.getUUID()); + if (succ) { + return OK(); + } + throw new BaseException(SystemCode.DELETE_SEARCH_CENTENT_FAIL.getValue(), SystemCode.DELETE_SEARCH_CENTENT_FAIL.getText()); + } catch (BaseException e) { + e.printStackTrace(); + return this.error(e.getCode(), e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + return this.error(SystemCode.DELETE_SEARCH_CENTENT_FAIL.getValue(), SystemCode.DELETE_SEARCH_CENTENT_FAIL.getText()); + } + } +} diff --git a/src/main/java/com/product/lucene/service/SearchTermService.java b/src/main/java/com/product/lucene/service/SearchTermService.java new file mode 100644 index 0000000..9f990a3 --- /dev/null +++ b/src/main/java/com/product/lucene/service/SearchTermService.java @@ -0,0 +1,72 @@ +package com.product.lucene.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.product.core.config.CoreConst; +import com.product.core.dao.BaseDao; +import com.product.core.entity.FieldSetEntity; +import com.product.core.exception.BaseException; +import com.product.core.service.support.AbstractBaseService; +import com.product.core.spring.context.SpringMVCContextHolder; +import com.product.lucene.config.CmnConst; +import com.product.lucene.config.SystemCode; +import com.product.util.BaseUtil; + +import cn.hutool.json.JSONObject; + +@Component +public class SearchTermService extends AbstractBaseService{ + + + @Autowired + BaseDao baseDao; + + /** + * 鑾峰彇鎵�鏈夋悳绱㈣瘝鏉� + * @return + */ + public JSONObject listSearchTerm() { + JSONObject jsonReturn = new JSONObject(); + jsonReturn.set(CmnConst.SEARCH_KEYWORD, BaseUtil.dataTableEntityToJson(baseDao.listTable(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT, "created_by=? AND content_type=0", new Object[] {SpringMVCContextHolder.getCurrentUserId()}))); + jsonReturn.set(CmnConst.SEARCH_HISTORY, BaseUtil.dataTableEntityToJson(baseDao.listTable(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT, "created_by=? AND content_type=1", new Object[] {SpringMVCContextHolder.getCurrentUserId()}))); + return jsonReturn; + } + + /** + * 鏂板甯哥敤鎼滅储璇嶆潯 + * @param searchContent + * @param contentType + * @return + */ + public String addSearchTerm(String searchContent, String contentType) { + + //鏌ヨ鏁版嵁鏄惁瀛樺湪 + FieldSetEntity fseExist = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT, + "created_by=? AND search_content=? AND content_type=?", new Object[] {SpringMVCContextHolder.getCurrentUserId(), searchContent, contentType}, false); + + if ("0".equals(contentType) && fseExist!=null) { + throw new BaseException(SystemCode.ADD_SEARCH_CONTENT_EXIST.getValue(), SystemCode.ADD_SEARCH_CONTENT_EXIST.getText()); + } + //鏂板 + FieldSetEntity fseAddInfo = new FieldSetEntity(); + fseAddInfo.setTableName(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT); + if (fseExist!=null) { + fseAddInfo.setValue(CoreConst.UUID, fseExist.getUUID()); + } + fseAddInfo.setValue(CmnConst.SEARCH_CONTENT, searchContent); + fseAddInfo.setValue(CmnConst.CONTENT_TYPE, contentType); + BaseUtil.createCreatorAndCreationTime(fseAddInfo); + baseDao.saveFieldSetEntity(fseAddInfo); + return fseAddInfo.getUUID(); + } + + /** + * 鍒犻櫎鍗曚釜鎼滅储璇嶆潯 + * @param uuid + * @return + */ + public boolean deleteSearchTerm(String uuid) { + return baseDao.delete(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH_CONTENT, "uuid=?", new Object[] {uuid}); + } +} -- Gitblit v1.9.2