From df4794b07aacc82b5c038c930b66209d8ad0e79d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 10 Apr 2024 11:55:28 +0800
Subject: [PATCH] 数据修改,删除同步修改,没有索引时不操作,es 数据初始化,删除角色控制

---
 src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java |   42 +++++++++++---------
 src/main/resources/application-prod.yml                                    |    4 +-
 src/main/resources/application-test.yml                                    |    2 
 src/main/java/org/springblade/es/controller/EsController.java              |   41 +++++++++++---------
 4 files changed, 49 insertions(+), 40 deletions(-)

diff --git a/src/main/java/org/springblade/es/controller/EsController.java b/src/main/java/org/springblade/es/controller/EsController.java
index cf08cc7..7aa4a08 100644
--- a/src/main/java/org/springblade/es/controller/EsController.java
+++ b/src/main/java/org/springblade/es/controller/EsController.java
@@ -5,7 +5,9 @@
 import lombok.AllArgsConstructor;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.es.service.ElasticsearchDocumentService;
 import org.springblade.es.vo.EsParam;
@@ -35,35 +37,37 @@
 	 * 初始化
 	 */
 	@GetMapping("/init")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 2)
 	public R init(EsParam esParam) {
 		return R.status(elasticsearchDocumentService.init(esParam));
 	}
 
-	/**
-	 * 新增数据
-	 */
-	@GetMapping("/add")
-	@ApiOperationSupport(order = 3)
-	public R add(EsParam esParam) {
-		return R.status(elasticsearchDocumentService.add(esParam,null));
-	}
-
-	/**
-	 * 修改数据
-	 */
-	@GetMapping("/update")
-	@ApiOperationSupport(order = 4)
-	public R update(EsParam esParam) {
-		elasticsearchDocumentService.update(esParam,null,null);
-		return R.status(true);
-	}
+//	/**
+//	 * 新增数据
+//	 */
+//	@GetMapping("/add")
+//	@ApiOperationSupport(order = 3)
+//	public R add(EsParam esParam) {
+//		return R.status(elasticsearchDocumentService.add(esParam,null));
+//	}
+//
+//	/**
+//	 * 修改数据
+//	 */
+//	@GetMapping("/update")
+//	@ApiOperationSupport(order = 4)
+//	public R update(EsParam esParam) {
+//		elasticsearchDocumentService.update(esParam,null,null);
+//		return R.status(true);
+//	}
 
 	/**
 	 * 根据索引删除
 	 */
 	@PostMapping("/removeBatchByIndexNames")
 	@ApiOperationSupport(order = 5)
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	public R removeBatchByIndexNames(@RequestParam String indexNames) {
 		return R.status(elasticsearchDocumentService.removeBatchByIndexNames(Func.toStrList(indexNames)));
 	}
@@ -72,6 +76,7 @@
 	 * 根据条件删除
 	 */
 	@PostMapping("/removeByQuery")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 6)
 	public R removeByQuery(EsParam esParam) {
 		return R.status(elasticsearchDocumentService.removeByQuery(esParam));
diff --git a/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java b/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
index 1906861..ebdf3a7 100644
--- a/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
+++ b/src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
@@ -539,16 +539,19 @@
 	 */
 	public boolean removeBatchByIndexNames(List<String> indexNames) {
 		for (String indexName : indexNames) {
-			DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(indexName);
-			try {
-				// 执行删除索引操作
-				AcknowledgedResponse deleteResponse = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
+			// 索引存在才删除
+			if (isIndexExists(indexName)) {
+				DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(indexName);
+				try {
+					// 执行删除索引操作
+					AcknowledgedResponse deleteResponse = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
 
-				// 输出操作结果
-				boolean acknowledged = deleteResponse.isAcknowledged();
-				System.out.println("索引删除成功: " + acknowledged);
-			} catch (IOException e) {
-				e.printStackTrace();
+					// 输出操作结果
+					boolean acknowledged = deleteResponse.isAcknowledged();
+					System.out.println("索引删除成功: " + acknowledged);
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
 			}
 		}
 		return true;
@@ -576,7 +579,8 @@
 	 */
 	@Async
 	public void update(EsParam esParam, T item,List<String> columnList) {
-		if (elasticsearchSync) {
+		// 判断索引是否存在
+		if (elasticsearchSync && isIndexExists(esParam.getIndexName())) {
 			// 创建更新请求
 			UpdateByQueryRequest updateRequest = new UpdateByQueryRequest(esParam.getIndexName());
 
@@ -589,17 +593,17 @@
 
 			Map<String, Object> data = new HashMap<String, Object>();
 			data.put("tableName", esParam.getTableName());
-			if (esParam.getTableName().equals("jczz_article")){
-				setArticleMap((Article)item,data);
+			if (esParam.getTableName().equals("jczz_article")) {
+				setArticleMap((Article) item, data);
 			}
-			if (esParam.getTableName().equals("jczz_place")){
-				setPlaceMap((PlaceEntity) item,data);
+			if (esParam.getTableName().equals("jczz_place")) {
+				setPlaceMap((PlaceEntity) item, data);
 			}
-			if (esParam.getTableName().equals("jczz_house")){
-				setHouseMap((HouseEntity) item,data);
+			if (esParam.getTableName().equals("jczz_house")) {
+				setHouseMap((HouseEntity) item, data);
 			}
-			if (esParam.getTableName().equals("jczz_household")){
-				setHousehouldMap((HouseholdEntity) item,data);
+			if (esParam.getTableName().equals("jczz_household")) {
+				setHousehouldMap((HouseholdEntity) item, data);
 			}
 			Map<String, Object> param = new HashMap<String, Object>();
 			param.put("data", data);
@@ -675,7 +679,7 @@
 	 * 删除数据--根据条件
 	 */
 	public boolean removeByQuery(EsParam esParam) {
-		if (elasticsearchSync) {
+		if (elasticsearchSync && isIndexExists(esParam.getIndexName())) {
 			DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(esParam.getIndexName());
 			// 根据多个条件 生成 boolQueryBuilder
 			BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 4c8178d..468a79d 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -75,6 +75,6 @@
 #es
 elasticsearch:
   enabled: false
-  host: localhost
-  sync: false
+  host: 127.0.0.1
+  sync: true
   indexName: jczz
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 800e1e6..39a5c96 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -75,6 +75,6 @@
 #es
 elasticsearch:
   enabled: false
-  host: localhost
+  host: 127.0.0.1
   sync: true
   indexName: test

--
Gitblit v1.9.3