提交 d6bc2670 作者: chenshiqiang

adjust logic

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