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