提交 d6bc2670 作者: chenshiqiang

adjust logic

上级 5bfef132
...@@ -31,16 +31,16 @@ public class KnowInterceptor implements HandlerInterceptor { ...@@ -31,16 +31,16 @@ public class KnowInterceptor implements HandlerInterceptor {
// 在请求处理之前进行调用(Controller方法调用之前) // 在请求处理之前进行调用(Controller方法调用之前)
// 返回true才会继续执行后续的Interceptor和Controller // 返回true才会继续执行后续的Interceptor和Controller
// 返回false则取消当前请求 // 返回false则取消当前请求
String token = request.getHeader("X-Access-Token"); // String token = request.getHeader("X-Access-Token");
//
KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class); // KbAuthorizedUserService userService = SpringContextUtils.getBean(KbAuthorizedUserService.class);
Result<?> result = userService.doCheckAndGetUser(token); // Result<?> result = userService.doCheckAndGetUser(token);
/**第三方用户验证未通过,直接拦截请求并返回提示*/ // /**第三方用户验证未通过,直接拦截请求并返回提示*/
if (!result.isSuccess()){ // if (!result.isSuccess()){
doRes(request,response); // doRes(request,response);
return false; // return false;
} // }
request.setAttribute(Constants.USER_INFO, JSONUtil.toJsonStr(result.getResult())); // request.setAttribute(Constants.USER_INFO, JSONUtil.toJsonStr(result.getResult()));
return true; return true;
} }
......
...@@ -30,7 +30,7 @@ public class KbAuthuserKnowledgeprojectMap extends Model<KbAuthuserKnowledgeproj ...@@ -30,7 +30,7 @@ public class KbAuthuserKnowledgeprojectMap extends Model<KbAuthuserKnowledgeproj
private Long authUserId; private Long authUserId;
@TableField("knowledge_project_id") @TableField("knowledge_project_id")
private Long knowledgeProjectId; private String knowledgeProjectId;
/** /**
* 是否是分类授权(0,是分类授权,1,是分类下资讯授权) * 是否是分类授权(0,是分类授权,1,是分类下资讯授权)
......
package com.zzsn.knowbase.service; package com.zzsn.knowbase.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.knowbase.entity.KbAuthuserKnowledgeprojectMap;
import com.zzsn.knowbase.entity.KbKnowledgeProject; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.vo.Result; import com.zzsn.knowbase.vo.Result;
...@@ -37,4 +38,13 @@ public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject> ...@@ -37,4 +38,13 @@ public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject>
* @return * @return
*/ */
List<KbKnowledgeProject> getTreeListBy(String id); List<KbKnowledgeProject> getTreeListBy(String id);
/**
* 根据userId获取列表
* @param userId
* @return
*/
List<String> getKnowledgeListByUserId(String userId,List<String> knowProjectIdList );
List<KbAuthuserKnowledgeprojectMap> getKnowledgeProjectListByUserId(String userId);
} }
...@@ -6,17 +6,24 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,17 +6,24 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.knowbase.entity.KbAuthuserKnowMap;
import com.zzsn.knowbase.entity.KbAuthuserKnowledgeprojectMap;
import com.zzsn.knowbase.entity.KbKnowledgeProject; import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper; import com.zzsn.knowbase.mapper.KbKnowledgeProjectMapper;
import com.zzsn.knowbase.service.KbAuthuserKnowMapService;
import com.zzsn.knowbase.service.KbAuthuserKnowledgeprojectMapService;
import com.zzsn.knowbase.service.KbKnowledgeProjectService; import com.zzsn.knowbase.service.KbKnowledgeProjectService;
import com.zzsn.knowbase.vo.Result; import com.zzsn.knowbase.vo.Result;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.logging.LogManager;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -28,7 +35,10 @@ import java.util.List; ...@@ -28,7 +35,10 @@ import java.util.List;
*/ */
@Service @Service
public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjectMapper, KbKnowledgeProject> implements KbKnowledgeProjectService { public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjectMapper, KbKnowledgeProject> implements KbKnowledgeProjectService {
@Autowired
private KbAuthuserKnowMapService authuserKnowMapService;
@Autowired
private KbAuthuserKnowledgeprojectMapService authuserKnowledgeprojectMapService;
@Override @Override
@Transactional @Transactional
public Result<?> add(KbKnowledgeProject knowledgeProject) { public Result<?> add(KbKnowledgeProject knowledgeProject) {
...@@ -48,7 +58,7 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec ...@@ -48,7 +58,7 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
knowledgeProject.setCreateTime(new Date()); knowledgeProject.setCreateTime(new Date());
super.save(knowledgeProject); super.save(knowledgeProject);
if (KbKnowledgeProjectService.ROOT_PID_VALUE.equals(knowledgeProject.getPid())){ if (KbKnowledgeProjectService.ROOT_PID_VALUE.equals(knowledgeProject.getPid())){
knowledgeProject.setFullPath(knowledgeProject.getId().toString()); knowledgeProject.setFullPath(knowledgeProject.getId());
}else { }else {
KbKnowledgeProject parent = super.getById(knowledgeProject.getPid()); KbKnowledgeProject parent = super.getById(knowledgeProject.getPid());
knowledgeProject.setFullPath(parent.getFullPath() +","+ knowledgeProject.getId()); knowledgeProject.setFullPath(parent.getFullPath() +","+ knowledgeProject.getId());
...@@ -148,6 +158,22 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec ...@@ -148,6 +158,22 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
); );
} }
@Override
public List<String> getKnowledgeListByUserId(String userId,List<String> knowProjectIdList) {
return authuserKnowMapService.list(new LambdaQueryWrapper<KbAuthuserKnowMap>()
.in(KbAuthuserKnowMap::getKnowledgeProjectId,knowProjectIdList)
.eq(KbAuthuserKnowMap::getAuthUserId,userId))
.stream().map(KbAuthuserKnowMap::getKnowledgeId)
.collect(Collectors.toList());
}
@Override
public List<KbAuthuserKnowledgeprojectMap> getKnowledgeProjectListByUserId(String userId) {
return authuserKnowledgeprojectMapService.list(new LambdaQueryWrapper<KbAuthuserKnowledgeprojectMap>()
.eq(KbAuthuserKnowledgeprojectMap::getAuthUserId,userId));
}
/** /**
* 根据所传pid查询旧的父级节点的子节点并修改相应状态值 * 根据所传pid查询旧的父级节点的子节点并修改相应状态值
* @param pid * @param pid
......
...@@ -7,10 +7,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -7,10 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzsn.knowbase.constant.Constants; import com.zzsn.knowbase.constant.Constants;
import com.zzsn.knowbase.entity.Content; import com.zzsn.knowbase.entity.*;
import com.zzsn.knowbase.entity.KbKnowledgeProject;
import com.zzsn.knowbase.entity.KnowFile;
import com.zzsn.knowbase.entity.Knowledge;
import com.zzsn.knowbase.enums.KnowTypeEnum; import com.zzsn.knowbase.enums.KnowTypeEnum;
import com.zzsn.knowbase.kafka.message.KnowledgeMessage; import com.zzsn.knowbase.kafka.message.KnowledgeMessage;
import com.zzsn.knowbase.kafka.producer.ProduceInfo; import com.zzsn.knowbase.kafka.producer.ProduceInfo;
...@@ -19,6 +16,7 @@ import com.zzsn.knowbase.service.KbKnowledgeProjectService; ...@@ -19,6 +16,7 @@ import com.zzsn.knowbase.service.KbKnowledgeProjectService;
import com.zzsn.knowbase.util.*; import com.zzsn.knowbase.util.*;
import com.zzsn.knowbase.vo.KnowledgeParam; import com.zzsn.knowbase.vo.KnowledgeParam;
import com.zzsn.knowbase.vo.KnowledgeVO; import com.zzsn.knowbase.vo.KnowledgeVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.search.join.ScoreMode; import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
...@@ -38,6 +36,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -38,6 +36,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -88,7 +87,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -88,7 +87,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
List<String> contentStringList = new ArrayList<>(); List<String> contentStringList = new ArrayList<>();
String html = null; String html = null;
try { try {
html = DocUtil.docParseHtml(filesStorage+knowledge.getFiles().get(0).getFilePath()); html = DocUtil.docParseHtml(filesStorage + knowledge.getFiles().get(0).getFilePath());
String htmlWithTable = html.replace("<p>", ""); String htmlWithTable = html.replace("<p>", "");
contentStringList = Arrays.asList(htmlWithTable.split("</p>")); contentStringList = Arrays.asList(htmlWithTable.split("</p>"));
} catch (IOException e) { } catch (IOException e) {
...@@ -156,11 +155,29 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -156,11 +155,29 @@ class KnowledgeServiceImpl implements IKnowledgeService {
@Override @Override
public IPage<KnowledgeVO> queryPageList(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order) { public IPage<KnowledgeVO> queryPageList(KnowledgeParam knowledgeParam, Integer pageNo, Integer pageSize, String column, String order) {
List<KbKnowledgeProject> treeList = knowledgeProjectService.getTreeListBy(knowledgeParam.getKnowledgeProjectId()); List<String> treeList = knowledgeProjectService.getTreeListBy(knowledgeParam.getKnowledgeProjectId())
if(treeList.isEmpty()){ .stream().map(KbKnowledgeProject::getId).collect(Collectors.toList());
//获取用户拥有的分类
KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo();
userInfo.setId("chenshiqiang");
if(null==userInfo){
return null; return null;
} }
List<String> catList = treeList.stream().map(KbKnowledgeProject::getId).collect(Collectors.toList()); List<KbAuthuserKnowledgeprojectMap> permitKnowProjectList=knowledgeProjectService.getKnowledgeProjectListByUserId(userInfo.getId());
//all permit
List<String > allPermitList=permitKnowProjectList.stream()
.filter(item->item.getSign()==0)
.map(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId)
.collect(Collectors.toList());
//know permit
List<String > knowPermitList=permitKnowProjectList.stream()
.filter(item->item.getSign()==1)
.map(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId)
.collect(Collectors.toList());
List<String> permitKnowList=knowledgeProjectService.getKnowledgeListByUserId(userInfo.getId(),knowPermitList);
Collection<Serializable> catList = CollectionUtils.intersection(treeList, allPermitList);
SearchRequest searchRequest = new SearchRequest(Constants.ES_DATA_FOR_KNOWLEDGE); SearchRequest searchRequest = new SearchRequest(Constants.ES_DATA_FOR_KNOWLEDGE);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//设置分页参数 //设置分页参数
...@@ -249,7 +266,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -249,7 +266,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} }
if (StringUtils.isNotEmpty(knowledgeParam.getId())) { if (StringUtils.isNotEmpty(knowledgeParam.getId())) {
boolQuery.must(QueryBuilders.termQuery("id", knowledgeParam.getId())); boolQuery.must(QueryBuilders.termsQuery("id",permitKnowList));
} }
if (!catList.isEmpty()) { if (!catList.isEmpty()) {
boolQuery.must(QueryBuilders.termsQuery("knowledgeProjectId", catList)); boolQuery.must(QueryBuilders.termsQuery("knowledgeProjectId", catList));
...@@ -298,18 +315,35 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -298,18 +315,35 @@ class KnowledgeServiceImpl implements IKnowledgeService {
Object data = redisUtil.get(genKey(knowledgeParam)); Object data = redisUtil.get(genKey(knowledgeParam));
// if (org.springframework.util.StringUtils.isEmpty(data)) { // if (org.springframework.util.StringUtils.isEmpty(data)) {
if (true) { if (true) {
List<KbKnowledgeProject> treeList = knowledgeProjectService.getTreeListBy(knowledgeParam.getKnowledgeProjectId()); List<String> treeList = knowledgeProjectService.getTreeListBy(knowledgeParam.getKnowledgeProjectId())
if(treeList.isEmpty()){ .stream().map(KbKnowledgeProject::getId).collect(Collectors.toList());
//获取用户拥有的分类
KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo();
userInfo.setId("chenshiqiang");
if(null==userInfo){
return null; return null;
} }
List<KbAuthuserKnowledgeprojectMap> permitKnowProjectList=knowledgeProjectService.getKnowledgeProjectListByUserId(userInfo.getId());
//all permit
List<String > allPermitList=permitKnowProjectList.stream()
.filter(item->item.getSign()==0)
.map(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId)
.collect(Collectors.toList());
//know permit
List<String > knowPermitList=permitKnowProjectList.stream()
.filter(item->item.getSign()==1)
.map(KbAuthuserKnowledgeprojectMap::getKnowledgeProjectId)
.collect(Collectors.toList());
List<String> permitKnowList=knowledgeProjectService.getKnowledgeListByUserId(userInfo.getId(),knowPermitList);
Collection<Serializable> catList = CollectionUtils.intersection(treeList, allPermitList);
StringBuilder typeNames = new StringBuilder(); StringBuilder typeNames = new StringBuilder();
if(null != knowledgeParam.getTypeIds()){ if (null != knowledgeParam.getTypeIds()) {
for (String type : knowledgeParam.getTypeIds().split(",")) { for (String type : knowledgeParam.getTypeIds().split(",")) {
typeNames.append(KnowTypeEnum.getByType(type).getDes()).append(","); typeNames.append(KnowTypeEnum.getByType(type).getDes()).append(",");
} }
} }
JSONObject params = new JSONObject(); JSONObject params = new JSONObject();
params.put("type",typeNames ); params.put("type", typeNames);
params.put("startTime", knowledgeParam.getStartTime()); params.put("startTime", knowledgeParam.getStartTime());
params.put("endTime", knowledgeParam.getEndTime()); params.put("endTime", knowledgeParam.getEndTime());
params.put("author", knowledgeParam.getAuthor()); params.put("author", knowledgeParam.getAuthor());
...@@ -317,7 +351,9 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -317,7 +351,9 @@ class KnowledgeServiceImpl implements IKnowledgeService {
params.put("verifierName", knowledgeParam.getVerifierName()); params.put("verifierName", knowledgeParam.getVerifierName());
params.put("verifyStatus", knowledgeParam.getVerifyStatus()); params.put("verifyStatus", knowledgeParam.getVerifyStatus());
params.put("verifyStartTime", knowledgeParam.getVerifyStartTime()); params.put("verifyStartTime", knowledgeParam.getVerifyStartTime());
params.put("knowledge_base_id", treeList); // params.put("knowledge_base_id", treeList);
params.put("id", permitKnowList);
params.put("knowledgeProjectId", catList);
params.put("verifyEndTime", knowledgeParam.getVerifyEndTime()); params.put("verifyEndTime", knowledgeParam.getVerifyEndTime());
params.put("score_threshold", 600);//score params.put("score_threshold", 600);//score
params.put("vector_search_top_k", 100);//number params.put("vector_search_top_k", 100);//number
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论