问题知识库-增加发布状态,修改查询数据权限。
This commit is contained in:
+7
-1
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.problemKnowledgeBase.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
@@ -156,7 +157,7 @@ public class ProblemKnowledgeBaseEO implements Serializable {
|
||||
/**发布日期*/
|
||||
@Excel(name = "发布日期", width = 15)
|
||||
@ApiModelProperty(value = "发布日期")
|
||||
private java.lang.String releaseTime;
|
||||
private Date releaseTime;
|
||||
|
||||
/**点赞总数量*/
|
||||
@TableField(exist = false)
|
||||
@@ -195,4 +196,9 @@ public class ProblemKnowledgeBaseEO implements Serializable {
|
||||
/**附件展示数组*/
|
||||
@TableField(exist = false)
|
||||
private List<OSSFile> accessoryFileNameList;
|
||||
|
||||
/**发布状态*/
|
||||
@Excel(name = "发布状态", width = 15)
|
||||
@ApiModelProperty(value = "发布状态")
|
||||
private String releaseStatus;
|
||||
}
|
||||
|
||||
+36
-19
@@ -24,6 +24,7 @@ import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.*;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.ReleaseStatusEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
|
||||
import com.jero.modules.problemKnowledgeBase.service.*;
|
||||
@@ -114,17 +115,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
Date now = new Date();
|
||||
problemKnowledgeBaseEO.setCreateTime(now);
|
||||
problemKnowledgeBaseEO.setUpdateTime(now);
|
||||
save(problemKnowledgeBaseEO);
|
||||
|
||||
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
||||
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
||||
this.batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
|
||||
}
|
||||
/*else {
|
||||
//如果展示权限是公开,则把该数据插入到搜索中心中。
|
||||
//如果是已发布,将数据更新到es中。
|
||||
if(StringUtils.equals(problemKnowledgeBaseEO.getReleaseStatus(), ReleaseStatusEnum.HAVE_RELEASED.getValue())){
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
problemKnowledgeBaseEO.setReleaseUserId(currentUser.getId());
|
||||
problemKnowledgeBaseEO.setReleaseTime(now);
|
||||
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
|
||||
}*/
|
||||
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
|
||||
}
|
||||
save(problemKnowledgeBaseEO);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -435,15 +438,23 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
public void editById(ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
||||
Date now = new Date();
|
||||
problemKnowledgeBaseEO.setUpdateTime(now);
|
||||
saveOrUpdate(problemKnowledgeBaseEO);
|
||||
|
||||
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
||||
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
||||
this.batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
|
||||
//this.deleteElasticsearchData(problemKnowledgeBaseEO.getId());
|
||||
}
|
||||
|
||||
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
|
||||
//如果是已发布,将数据更新到es中。
|
||||
if(StringUtils.equals(problemKnowledgeBaseEO.getReleaseStatus(), ReleaseStatusEnum.HAVE_RELEASED.getValue())){
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
problemKnowledgeBaseEO.setReleaseUserId(currentUser.getId());
|
||||
problemKnowledgeBaseEO.setReleaseTime(now);
|
||||
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
|
||||
}else if(StringUtils.equals(problemKnowledgeBaseEO.getReleaseStatus(), ReleaseStatusEnum.DRAFT.getValue())){
|
||||
//如果是草稿,将es中的数据删掉。
|
||||
this.deleteElasticsearchData(problemKnowledgeBaseEO.getId());
|
||||
}
|
||||
saveOrUpdate(problemKnowledgeBaseEO);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -750,26 +761,32 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
@Override
|
||||
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
||||
/**
|
||||
* 查询权限
|
||||
* 公开:所有人都可以看到。
|
||||
* 私密:只有配置了的权限用户可以看到。
|
||||
* 2022-10-13增加权限,超级管理员可以看到所有的问题知识库数据。
|
||||
*/
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
QueryWrapper<ProblemKnowledgeBaseUserEO> userPermissionQueryWrapper = new QueryWrapper<>();
|
||||
userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId());
|
||||
List<ProblemKnowledgeBaseUserEO> problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper);
|
||||
boolean administrator = this.sysUserService.isAdministrator();
|
||||
if(!administrator){
|
||||
/**
|
||||
* 查询权限
|
||||
* 公开:所有人都可以看到。
|
||||
* 私密:只有配置了的权限用户可以看到。
|
||||
*/
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
QueryWrapper<ProblemKnowledgeBaseUserEO> userPermissionQueryWrapper = new QueryWrapper<>();
|
||||
userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId());
|
||||
List<ProblemKnowledgeBaseUserEO> problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper);
|
||||
|
||||
List<String> problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
|
||||
List<String> problemKnowledgeBaseIdList = problemKnowledgeBaseUserEOList.stream().map(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId).distinct().collect(Collectors.toList());
|
||||
|
||||
queryWrapper.lambda().and(query -> {
|
||||
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue());
|
||||
queryWrapper.lambda().and(query -> {
|
||||
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue());
|
||||
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseIdList)){
|
||||
query.or(o -> {
|
||||
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
|
||||
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
String searchStr = problemKnowledgeBaseEO.getSearchStr();
|
||||
if(StringUtils.isNotEmpty(searchStr)){
|
||||
|
||||
Reference in New Issue
Block a user