Commit 6f853c91 authored by alex yao's avatar alex yao

feat: 知识库文档批量删除

parent dba01bb2
......@@ -21,10 +21,11 @@ public interface KnowledgeService {
/**
* 删除文档
*
* @param kdId 主键ID
* @param knowledgeInfoId 知识库ID
* @param kdId 文档ID
* @return 是否成功
*/
Boolean delDocument(Integer kdId);
Boolean delDocument(Integer knowledgeInfoId, Integer kdId);
/**
......@@ -52,7 +53,7 @@ public interface KnowledgeService {
List<BizKnowledgeDocumentEntity> getList(String search, String trainStatus, PagingInfo pagingInfo) throws Exception;
/**
* 获取用户知识库
* 获取用户知识库文档
*/
List<BizKnowledgeDocumentEntity> getListByKdIds(List<Integer> kdIds);
......
......@@ -127,10 +127,11 @@ public class KnowledgeServiceImpl implements KnowledgeService {
}
@Override
public Boolean delDocument(Integer kdId) {
public Boolean delDocument(Integer knowledgeInfoId, Integer kdId) {
Assert.notNull(kdId, "kdId cannot be null");
bizKnowledgeDocumentService.deleted(kdId);
bizMemberKnowledgeRelationService.deletedByKdId(kdId);
bizKnowledgeInfoService.removeDocument(knowledgeInfoId, kdId);
return true;
}
......@@ -185,11 +186,18 @@ public class KnowledgeServiceImpl implements KnowledgeService {
knowledgeProducerService.trainKnowledge(message);
}
BizKnowledgeInfoEntity bizKnowledgeInfoEntity = new BizKnowledgeInfoEntity();
bizKnowledgeInfoEntity.setId(knowledgeInfoId);
bizKnowledgeInfoEntity.setTrainStatus(KnowledgeConstant.TrainStatus.TRAINING);
bizKnowledgeInfoEntity.setKdIds(JsonUtils.serialize(kdIds));
bizKnowledgeInfoService.update(bizKnowledgeInfoEntity);
BizKnowledgeInfoEntity knowledgeInfoEntity = bizKnowledgeInfoService.get(knowledgeInfoId);
if (StringUtils.isNotBlank(knowledgeInfoEntity.getKdIds())) {
List<Integer> kdIdList = JsonUtils.deSerialize(knowledgeInfoEntity.getKdIds(), new TypeReference<List<Integer>>() {
}.getType());
kdIds.addAll(kdIdList);
}
knowledgeInfoEntity.setKdIds(JsonUtils.serialize(kdIds));
knowledgeInfoEntity.setId(knowledgeInfoId);
knowledgeInfoEntity.setTrainStatus(KnowledgeConstant.TrainStatus.TRAINING);
knowledgeInfoEntity.setKdIds(JsonUtils.serialize(kdIds));
bizKnowledgeInfoService.update(knowledgeInfoEntity);
return true;
}
......
......@@ -29,18 +29,20 @@ public interface KnowledgeRest extends BaseRest {
/**
* 删除文档
*
* @param kdId 主键ID
* @param knowledgeInfoId 知识库ID
* @param kdId 文档ID
* @return 是否成功
*/
Boolean delDocument(@RequestParam Integer kdId);
Boolean delDocument(@RequestParam Integer knowledgeInfoId, @RequestParam Integer kdId);
/**
* 批量删除文档
*
* @param knowledgeInfoId
* @param kdId 主键ID
* @return 是否成功
*/
Boolean batchDelDocument(@RequestBody List<Integer> kdId);
Boolean batchDelDocument(@RequestParam Integer knowledgeInfoId, @RequestBody List<Integer> kdId);
/**
......
......@@ -21,8 +21,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.pdfbox.pdmodel.graphics.blend.BlendComposite;
import org.beetl.ext.fn.StringUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
......@@ -55,16 +53,16 @@ public class KnowledgeRestImpl implements KnowledgeRest {
}
@Override
public Boolean delDocument(Integer kdId) {
return knowledgeService.delDocument(kdId);
public Boolean delDocument(Integer knowledgeInfoId, Integer kdId) {
return knowledgeService.delDocument(knowledgeInfoId, kdId);
}
@Override
public Boolean batchDelDocument(List<Integer> kdId) {
public Boolean batchDelDocument(Integer knowledgeInfoId, List<Integer> kdId) {
Assert.notEmpty(kdId);
boolean result = true;
for (Integer id : kdId) {
result = result && knowledgeService.delDocument(id);
result = result && knowledgeService.delDocument(knowledgeInfoId, id);
}
return result;
}
......
......@@ -24,4 +24,6 @@ public interface BizKnowledgeInfoService extends BaseService {
List<KnowledgeInfosQueryItem> knowledgeInfos(KnowledgeInfosQueryCondition condition, PagingInfo pagingInfo) throws Exception;
void removeDocument(Integer knowledgeInfoId, Integer kdId);
}
\ No newline at end of file
package cn.com.poc.knowledge.service.impl;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
......@@ -9,6 +11,8 @@ import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
import cn.com.poc.knowledge.convert.BizKnowledgeInfoConvert;
import cn.com.poc.knowledge.repository.BizKnowledgeInfoRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import com.alibaba.fastjson.TypeReference;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
......@@ -108,4 +112,22 @@ public class BizKnowledgeInfoServiceImpl extends BaseServiceImpl
public List<KnowledgeInfosQueryItem> knowledgeInfos(KnowledgeInfosQueryCondition condition, PagingInfo pagingInfo) throws Exception {
return this.sqlDao.query(condition, KnowledgeInfosQueryItem.class, pagingInfo);
}
@Override
public void removeDocument(Integer knowledgeInfoId, Integer kdId) {
BizKnowledgeInfoModel bizKnowledgeInfoModel = this.repository.get(knowledgeInfoId);
if (bizKnowledgeInfoModel != null) {
String kdIds = bizKnowledgeInfoModel.getKdIds();
if (!StringUtils.isEmpty(kdIds)) {
List<String> kdIdList = JsonUtils.deSerialize(kdIds, new TypeReference<List<String>>() {
}.getType());
kdIdList.remove(kdId.toString());
kdIds = JsonUtils.serialize(kdIdList.stream().map(Integer::valueOf).collect(Collectors.toList()));
bizKnowledgeInfoModel.setKdIds(kdIds);
this.repository.save(bizKnowledgeInfoModel);
}
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment