Forráskód Böngészése

1、知识库同步删除功能
2、知识库文件同步删除功能

lihao16 5 hónapja
szülő
commit
8707d1b425

+ 2 - 0
smsb-modules/smsb-device/src/main/java/com/inspur/device/domain/vo/SmsbDifyDatasetsFileVo.java

@@ -31,6 +31,8 @@ public class SmsbDifyDatasetsFileVo implements Serializable {
     @ExcelProperty(value = "主键ID")
     private Long id;
 
+    private String datasetsDifyId;
+
     /**
      * 知识库名称
      */

+ 22 - 1
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDifyDatasetsFileServiceImpl.java

@@ -245,7 +245,28 @@ public class SmsbDifyDatasetsFileServiceImpl implements ISmsbDifyDatasetsFileSer
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        return baseMapper.deleteByIds(ids) > 0;
+        List<Long> deleteIds = new ArrayList<>();
+        for (Long id : ids) {
+            SmsbDifyDatasetsFileVo smsbDifyDatasetsFileVo = baseMapper.selectVoById(id);
+            if (null == smsbDifyDatasetsFileVo) {
+                continue;
+            }
+            String datasetDifyId = smsbDifyDatasetsFileVo.getDatasetsDifyId();
+            String difyId = smsbDifyDatasetsFileVo.getDifyId();
+            if (StringUtils.isBlank(difyId) || StringUtils.isBlank(datasetDifyId)) {
+                continue;
+            }
+            // 1、 发送请求,请求删除知识库
+            String requestUrl = difyUrl + API_DATASETS_COMMON + "/" + datasetDifyId + "/documents/" + difyId;
+            HttpRequest request = HttpRequest.delete(requestUrl)
+                .header("Authorization", "Bearer " + datasetsApiKey);
+            HttpResponse response = request.execute();
+            if (!response.isOk()) {
+                continue;
+            }
+            deleteIds.add(id);
+        }
+        return baseMapper.deleteByIds(deleteIds) > 0;
     }
 
     /**

+ 21 - 1
smsb-modules/smsb-device/src/main/java/com/inspur/device/service/impl/SmsbDifyDatasetsServiceImpl.java

@@ -218,6 +218,26 @@ public class SmsbDifyDatasetsServiceImpl implements ISmsbDifyDatasetsService {
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        return baseMapper.deleteByIds(ids) > 0;
+        List<Long> deleteIds = new ArrayList<>();
+        for (Long id : ids) {
+            SmsbDifyDatasetsVo smsbDifyDatasetsVo = baseMapper.selectVoById(id);
+            if (null == smsbDifyDatasetsVo) {
+                continue;
+            }
+            String difyId = smsbDifyDatasetsVo.getDifyId();
+            if (StringUtils.isBlank(difyId)) {
+                continue;
+            }
+            // 1、 发送请求,请求删除知识库
+            String requestUrl = difyUrl + API_DATASETS_COMMON + "/" + difyId;
+            HttpRequest request = HttpRequest.delete(requestUrl)
+                .header("Authorization", "Bearer " + datasetsApiKey);
+            HttpResponse response = request.execute();
+            if (!response.isOk()) {
+                continue;
+            }
+            deleteIds.add(id);
+        }
+        return baseMapper.deleteByIds(deleteIds) > 0;
     }
 }