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

feat: 知识库文档批量删除

parent dba01bb2
...@@ -21,10 +21,11 @@ public interface KnowledgeService { ...@@ -21,10 +21,11 @@ public interface KnowledgeService {
/** /**
* 删除文档 * 删除文档
* *
* @param kdId 主键ID * @param knowledgeInfoId 知识库ID
* @param kdId 文档ID
* @return 是否成功 * @return 是否成功
*/ */
Boolean delDocument(Integer kdId); Boolean delDocument(Integer knowledgeInfoId, Integer kdId);
/** /**
...@@ -52,7 +53,7 @@ public interface KnowledgeService { ...@@ -52,7 +53,7 @@ public interface KnowledgeService {
List<BizKnowledgeDocumentEntity> getList(String search, String trainStatus, PagingInfo pagingInfo) throws Exception; List<BizKnowledgeDocumentEntity> getList(String search, String trainStatus, PagingInfo pagingInfo) throws Exception;
/** /**
* 获取用户知识库 * 获取用户知识库文档
*/ */
List<BizKnowledgeDocumentEntity> getListByKdIds(List<Integer> kdIds); List<BizKnowledgeDocumentEntity> getListByKdIds(List<Integer> kdIds);
......
...@@ -127,10 +127,11 @@ public class KnowledgeServiceImpl implements KnowledgeService { ...@@ -127,10 +127,11 @@ public class KnowledgeServiceImpl implements KnowledgeService {
} }
@Override @Override
public Boolean delDocument(Integer kdId) { public Boolean delDocument(Integer knowledgeInfoId, Integer kdId) {
Assert.notNull(kdId, "kdId cannot be null"); Assert.notNull(kdId, "kdId cannot be null");
bizKnowledgeDocumentService.deleted(kdId); bizKnowledgeDocumentService.deleted(kdId);
bizMemberKnowledgeRelationService.deletedByKdId(kdId); bizMemberKnowledgeRelationService.deletedByKdId(kdId);
bizKnowledgeInfoService.removeDocument(knowledgeInfoId, kdId);
return true; return true;
} }
...@@ -185,11 +186,18 @@ public class KnowledgeServiceImpl implements KnowledgeService { ...@@ -185,11 +186,18 @@ public class KnowledgeServiceImpl implements KnowledgeService {
knowledgeProducerService.trainKnowledge(message); knowledgeProducerService.trainKnowledge(message);
} }
BizKnowledgeInfoEntity bizKnowledgeInfoEntity = new BizKnowledgeInfoEntity(); BizKnowledgeInfoEntity knowledgeInfoEntity = bizKnowledgeInfoService.get(knowledgeInfoId);
bizKnowledgeInfoEntity.setId(knowledgeInfoId);
bizKnowledgeInfoEntity.setTrainStatus(KnowledgeConstant.TrainStatus.TRAINING); if (StringUtils.isNotBlank(knowledgeInfoEntity.getKdIds())) {
bizKnowledgeInfoEntity.setKdIds(JsonUtils.serialize(kdIds)); List<Integer> kdIdList = JsonUtils.deSerialize(knowledgeInfoEntity.getKdIds(), new TypeReference<List<Integer>>() {
bizKnowledgeInfoService.update(bizKnowledgeInfoEntity); }.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; return true;
} }
......
...@@ -29,18 +29,20 @@ public interface KnowledgeRest extends BaseRest { ...@@ -29,18 +29,20 @@ public interface KnowledgeRest extends BaseRest {
/** /**
* 删除文档 * 删除文档
* *
* @param kdId 主键ID * @param knowledgeInfoId 知识库ID
* @param kdId 文档ID
* @return 是否成功 * @return 是否成功
*/ */
Boolean delDocument(@RequestParam Integer kdId); Boolean delDocument(@RequestParam Integer knowledgeInfoId, @RequestParam Integer kdId);
/** /**
* 批量删除文档 * 批量删除文档
* *
* @param kdId 主键ID * @param knowledgeInfoId
* @param kdId 主键ID
* @return 是否成功 * @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; ...@@ -21,8 +21,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; 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.stereotype.Component;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -55,16 +53,16 @@ public class KnowledgeRestImpl implements KnowledgeRest { ...@@ -55,16 +53,16 @@ public class KnowledgeRestImpl implements KnowledgeRest {
} }
@Override @Override
public Boolean delDocument(Integer kdId) { public Boolean delDocument(Integer knowledgeInfoId, Integer kdId) {
return knowledgeService.delDocument(kdId); return knowledgeService.delDocument(knowledgeInfoId, kdId);
} }
@Override @Override
public Boolean batchDelDocument(List<Integer> kdId) { public Boolean batchDelDocument(Integer knowledgeInfoId, List<Integer> kdId) {
Assert.notEmpty(kdId); Assert.notEmpty(kdId);
boolean result = true; boolean result = true;
for (Integer id : kdId) { for (Integer id : kdId) {
result = result && knowledgeService.delDocument(id); result = result && knowledgeService.delDocument(knowledgeInfoId, id);
} }
return result; return result;
} }
......
...@@ -24,4 +24,6 @@ public interface BizKnowledgeInfoService extends BaseService { ...@@ -24,4 +24,6 @@ public interface BizKnowledgeInfoService extends BaseService {
List<KnowledgeInfosQueryItem> knowledgeInfos(KnowledgeInfosQueryCondition condition, PagingInfo pagingInfo) throws Exception; 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; 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.KnowledgeInfosQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem; import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl; import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
...@@ -9,6 +11,8 @@ import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity; ...@@ -9,6 +11,8 @@ import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
import cn.com.poc.knowledge.convert.BizKnowledgeInfoConvert; import cn.com.poc.knowledge.convert.BizKnowledgeInfoConvert;
import cn.com.poc.knowledge.repository.BizKnowledgeInfoRepository; import cn.com.poc.knowledge.repository.BizKnowledgeInfoRepository;
import cn.com.yict.framemax.data.model.PagingInfo; 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.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -108,4 +112,22 @@ public class BizKnowledgeInfoServiceImpl extends BaseServiceImpl ...@@ -108,4 +112,22 @@ public class BizKnowledgeInfoServiceImpl extends BaseServiceImpl
public List<KnowledgeInfosQueryItem> knowledgeInfos(KnowledgeInfosQueryCondition condition, PagingInfo pagingInfo) throws Exception { public List<KnowledgeInfosQueryItem> knowledgeInfos(KnowledgeInfosQueryCondition condition, PagingInfo pagingInfo) throws Exception {
return this.sqlDao.query(condition, KnowledgeInfosQueryItem.class, pagingInfo); 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