问题知识库-列表数据查询权限。
问题知识库展示权限-处理数据方法。
This commit is contained in:
+1
@@ -53,6 +53,7 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
||||
this.problemKnowledgeBaseEOService.createQueryPermission(queryWrapper);
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
|
||||
IPage<ProblemKnowledgeBaseEO> pageList = problemKnowledgeBaseEOService.page(page, queryWrapper);
|
||||
|
||||
+4
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
@@ -70,5 +71,8 @@ public class ProblemKnowledgeBaseUserEO implements Serializable {
|
||||
@Excel(name = "用户id", width = 15)
|
||||
@ApiModelProperty(value = "用户id")
|
||||
private java.lang.String userId;
|
||||
/**用户姓名*/
|
||||
@TableField(exist = false)
|
||||
private String userName;
|
||||
|
||||
}
|
||||
|
||||
+7
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.problemKnowledgeBase.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@@ -68,4 +69,10 @@ public interface IProblemKnowledgeBaseEOService extends IService<ProblemKnowledg
|
||||
* @param cut
|
||||
*/
|
||||
void disposeData(List<ProblemKnowledgeBaseEO> datas,String cut);
|
||||
|
||||
/**
|
||||
* 创建查询权限
|
||||
* @param queryWrapper
|
||||
*/
|
||||
void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper);
|
||||
}
|
||||
|
||||
+7
@@ -58,4 +58,11 @@ public interface IProblemKnowledgeBaseUserEOService extends IService<ProblemKnow
|
||||
* @return
|
||||
*/
|
||||
List<ProblemKnowledgeBaseUserEO> queryList();
|
||||
|
||||
/**
|
||||
* 处理数据
|
||||
* @param datas
|
||||
* @param cut
|
||||
*/
|
||||
void disposeData(List<ProblemKnowledgeBaseUserEO> datas,String cut);
|
||||
}
|
||||
|
||||
+42
@@ -129,6 +129,7 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
public List<ProblemKnowledgeBaseEO> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
||||
this.createQueryPermission(queryWrapper);
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
List<ProblemKnowledgeBaseEO> result = this.list(queryWrapper);
|
||||
this.disposeData(result,problemKnowledgeBaseEO.getCut());
|
||||
@@ -182,6 +183,12 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
collectQueryWrapper.lambda().in(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
|
||||
List<ProblemKnowledgeBaseCollectEO> collectEOList = this.problemKnowledgeBaseCollectEOService.list(collectQueryWrapper);
|
||||
|
||||
//查询出数据的所有的权限用户
|
||||
QueryWrapper<ProblemKnowledgeBaseUserEO> permissionUserQueryWrapper = new QueryWrapper<>();
|
||||
permissionUserQueryWrapper.lambda().in(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
|
||||
List<ProblemKnowledgeBaseUserEO> permissionUserEOList = this.problemKnowledgeBaseUserEOService.list(permissionUserQueryWrapper);
|
||||
this.problemKnowledgeBaseUserEOService.disposeData(permissionUserEOList,cut);
|
||||
|
||||
datas.forEach(data -> {
|
||||
if(StringUtils.isNotEmpty(data.getShowPermissions())){
|
||||
data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut));
|
||||
@@ -239,7 +246,42 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseCollectEOS)){
|
||||
data.setCollectEO(problemKnowledgeBaseCollectEOS.get(0));
|
||||
}
|
||||
|
||||
List<ProblemKnowledgeBaseUserEO> permissionUserEOS = permissionUserEOList.stream().filter(permissionUserEO -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(data.getId(), permissionUserEO.getProblemKnowledgeBaseId())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(permissionUserEOS)){
|
||||
data.setPermissionUserList(permissionUserEOS);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper) {
|
||||
/**
|
||||
* 查询权限
|
||||
* 公开:所有人都可以看到。
|
||||
* 私密:只有配置了的权限用户可以看到。
|
||||
*/
|
||||
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());
|
||||
|
||||
queryWrapper.lambda().and(query -> {
|
||||
query.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.OPEN.getValue()).
|
||||
or(o -> {
|
||||
o.eq(ProblemKnowledgeBaseEO::getShowPermissions,ShowPermissionsEnum.PRIVACY.getValue());
|
||||
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+36
@@ -3,9 +3,16 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseUserEO;
|
||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseUserEOMapper;
|
||||
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseUserEOService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -20,6 +27,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
||||
public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseUserEOMapper, ProblemKnowledgeBaseUserEO> implements IProblemKnowledgeBaseUserEOService {
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -89,4 +99,30 @@ public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKn
|
||||
public List<ProblemKnowledgeBaseUserEO> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disposeData(List<ProblemKnowledgeBaseUserEO> datas, String cut) {
|
||||
if(CollectionUtils.isNotEmpty(datas)){
|
||||
List<String> userIdList = datas.stream().map(ProblemKnowledgeBaseUserEO::getUserId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<SysUser> userList = sysUserService.querySysUserListByIdList(userIdList);
|
||||
|
||||
datas.forEach(data -> {
|
||||
if(CollectionUtils.isNotEmpty(userList)){
|
||||
String userName = "";
|
||||
for (SysUser user : userList) {
|
||||
if (StringUtils.equals(data.getUserId(), user.getId())) {
|
||||
userName = user.getUsername();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(StringUtils.isNotEmpty(userName)){
|
||||
data.setUserName(userName);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user