问题知识库-增加发布状态,修改查询数据权限。
This commit is contained in:
@@ -1179,4 +1179,10 @@ update onl_cgform_field set is_query = '1', is_read_only = '1' where id = '09fa6
|
|||||||
-- 配置表,增加问题知识库预览图片配置 2022-09-27 已同步生产环境
|
-- 配置表,增加问题知识库预览图片配置 2022-09-27 已同步生产环境
|
||||||
INSERT INTO `laws_weilai`.`sys_config` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name`) VALUES ('4', 'admin', '2022-09-28 14:35:30', NULL, NULL, 'A01', 'http://grp.nioint.com/', 'domianWebImgURL');
|
INSERT INTO `laws_weilai`.`sys_config` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `config`, `config_name`) VALUES ('4', 'admin', '2022-09-28 14:35:30', NULL, NULL, 'A01', 'http://grp.nioint.com/', 'domianWebImgURL');
|
||||||
|
|
||||||
|
--问题知识库,增加字段 发布状态 2022-10-13 未同步生产环境
|
||||||
|
ALTER TABLE `laws_weilai`.`problem_knowledge_base`
|
||||||
|
ADD COLUMN `release_status` varchar(50) NULL COMMENT '发布状态' AFTER `release_time`;
|
||||||
|
|
||||||
|
--处理问题知识库数据,发布人,发布时间,发布状态数据sql 2022-10-13 未同步生产环境
|
||||||
|
update problem_knowledge_base pkd set pkd.release_status = 'Have released',pkd.release_time = pkd.create_time,pkd.release_user_id = (select su.id from sys_user su where su.username = pkd.create_by)
|
||||||
|
|
||||||
|
|||||||
+6
@@ -270,4 +270,10 @@ public interface ISysUserService extends IService<SysUser> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<SysRole> queryUserRoleListInfoByUserId(String userId);
|
List<SysRole> queryUserRoleListInfoByUserId(String userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证当前登录用户是否是超级管理员。
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean isAdministrator();
|
||||||
}
|
}
|
||||||
|
|||||||
+28
@@ -17,6 +17,7 @@ import com.jero.common.util.oConvertUtils;
|
|||||||
import com.jero.modules.base.service.BaseCommonService;
|
import com.jero.modules.base.service.BaseCommonService;
|
||||||
import com.jero.modules.system.entity.*;
|
import com.jero.modules.system.entity.*;
|
||||||
import com.jero.modules.system.enums.PPSyncEnum;
|
import com.jero.modules.system.enums.PPSyncEnum;
|
||||||
|
import com.jero.modules.system.enums.RoleEnum;
|
||||||
import com.jero.modules.system.mapper.*;
|
import com.jero.modules.system.mapper.*;
|
||||||
import com.jero.modules.system.model.SysUserSysDepartModel;
|
import com.jero.modules.system.model.SysUserSysDepartModel;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
@@ -24,6 +25,7 @@ import com.jero.modules.system.vo.SysUserDepVo;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -586,4 +588,30 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证当前登录用户是否是超级管理员
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean isAdministrator() {
|
||||||
|
boolean result = false;
|
||||||
|
RoleEnum administrator = RoleEnum.MANAGER_ID;
|
||||||
|
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
List<SysUserRole> userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
|
||||||
|
if(CollectionUtils.isNotEmpty(userRoleList)){
|
||||||
|
List<SysUserRole> userRoles = userRoleList.stream().filter(userRole -> {
|
||||||
|
boolean flag = false;
|
||||||
|
if(StringUtils.equals(userRole.getRoleId(),administrator.getId())){
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if(CollectionUtils.isNotEmpty(userRoles)){
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-1
@@ -1,6 +1,7 @@
|
|||||||
package com.jero.modules.problemKnowledgeBase.entity;
|
package com.jero.modules.problemKnowledgeBase.entity;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
@@ -156,7 +157,7 @@ public class ProblemKnowledgeBaseEO implements Serializable {
|
|||||||
/**发布日期*/
|
/**发布日期*/
|
||||||
@Excel(name = "发布日期", width = 15)
|
@Excel(name = "发布日期", width = 15)
|
||||||
@ApiModelProperty(value = "发布日期")
|
@ApiModelProperty(value = "发布日期")
|
||||||
private java.lang.String releaseTime;
|
private Date releaseTime;
|
||||||
|
|
||||||
/**点赞总数量*/
|
/**点赞总数量*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@@ -195,4 +196,9 @@ public class ProblemKnowledgeBaseEO implements Serializable {
|
|||||||
/**附件展示数组*/
|
/**附件展示数组*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<OSSFile> accessoryFileNameList;
|
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.entity.*;
|
||||||
import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum;
|
import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum;
|
||||||
import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum;
|
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.enums.ShowPermissionsEnum;
|
||||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
|
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
|
||||||
import com.jero.modules.problemKnowledgeBase.service.*;
|
import com.jero.modules.problemKnowledgeBase.service.*;
|
||||||
@@ -114,17 +115,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
|||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
problemKnowledgeBaseEO.setCreateTime(now);
|
problemKnowledgeBaseEO.setCreateTime(now);
|
||||||
problemKnowledgeBaseEO.setUpdateTime(now);
|
problemKnowledgeBaseEO.setUpdateTime(now);
|
||||||
save(problemKnowledgeBaseEO);
|
|
||||||
|
|
||||||
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
||||||
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
||||||
this.batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
|
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);
|
||||||
}*/
|
}
|
||||||
this.addOrUpdateElasticsearch(problemKnowledgeBaseEO);
|
save(problemKnowledgeBaseEO);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -435,15 +438,23 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
|||||||
public void editById(ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
public void editById(ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
problemKnowledgeBaseEO.setUpdateTime(now);
|
problemKnowledgeBaseEO.setUpdateTime(now);
|
||||||
saveOrUpdate(problemKnowledgeBaseEO);
|
|
||||||
|
|
||||||
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
//如果该条问题知识库的展示权限为私密,则创建权限表数据
|
||||||
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
if(StringUtils.equals(problemKnowledgeBaseEO.getShowPermissions(), ShowPermissionsEnum.PRIVACY.getValue())){
|
||||||
this.batchInsertProblemKnowledgeBaseUserEO(problemKnowledgeBaseEO);
|
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
|
@Override
|
||||||
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
|
||||||
/**
|
/**
|
||||||
* 查询权限
|
* 2022-10-13增加权限,超级管理员可以看到所有的问题知识库数据。
|
||||||
* 公开:所有人都可以看到。
|
|
||||||
* 私密:只有配置了的权限用户可以看到。
|
|
||||||
*/
|
*/
|
||||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
boolean administrator = this.sysUserService.isAdministrator();
|
||||||
QueryWrapper<ProblemKnowledgeBaseUserEO> userPermissionQueryWrapper = new QueryWrapper<>();
|
if(!administrator){
|
||||||
userPermissionQueryWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getUserId,currentUser.getId());
|
/**
|
||||||
List<ProblemKnowledgeBaseUserEO> problemKnowledgeBaseUserEOList = problemKnowledgeBaseUserEOService.list(userPermissionQueryWrapper);
|
* 查询权限
|
||||||
|
* 公开:所有人都可以看到。
|
||||||
|
* 私密:只有配置了的权限用户可以看到。
|
||||||
|
*/
|
||||||
|
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 -> {
|
queryWrapper.lambda().and(query -> {
|
||||||
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue());
|
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue());
|
||||||
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseIdList)){
|
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseIdList)){
|
||||||
query.or(o -> {
|
query.or(o -> {
|
||||||
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
|
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
|
||||||
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
|
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
String searchStr = problemKnowledgeBaseEO.getSearchStr();
|
String searchStr = problemKnowledgeBaseEO.getSearchStr();
|
||||||
if(StringUtils.isNotEmpty(searchStr)){
|
if(StringUtils.isNotEmpty(searchStr)){
|
||||||
|
|||||||
Reference in New Issue
Block a user