问题知识库-列表数据查询权限。
问题知识库展示权限-处理数据方法。
This commit is contained in:
+1
@@ -53,6 +53,7 @@ public class ProblemKnowledgeBaseEOController extends JeroController<ProblemKnow
|
|||||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
||||||
|
this.problemKnowledgeBaseEOService.createQueryPermission(queryWrapper);
|
||||||
queryWrapper.orderByDesc("create_time");
|
queryWrapper.orderByDesc("create_time");
|
||||||
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
|
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
|
||||||
IPage<ProblemKnowledgeBaseEO> pageList = problemKnowledgeBaseEOService.page(page, queryWrapper);
|
IPage<ProblemKnowledgeBaseEO> pageList = problemKnowledgeBaseEOService.page(page, queryWrapper);
|
||||||
|
|||||||
+4
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
|||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -70,5 +71,8 @@ public class ProblemKnowledgeBaseUserEO implements Serializable {
|
|||||||
@Excel(name = "用户id", width = 15)
|
@Excel(name = "用户id", width = 15)
|
||||||
@ApiModelProperty(value = "用户id")
|
@ApiModelProperty(value = "用户id")
|
||||||
private java.lang.String userId;
|
private java.lang.String userId;
|
||||||
|
/**用户姓名*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String userName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.problemKnowledgeBase.service;
|
package com.jero.modules.problemKnowledgeBase.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
|
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
@@ -68,4 +69,10 @@ public interface IProblemKnowledgeBaseEOService extends IService<ProblemKnowledg
|
|||||||
* @param cut
|
* @param cut
|
||||||
*/
|
*/
|
||||||
void disposeData(List<ProblemKnowledgeBaseEO> datas,String 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
|
* @return
|
||||||
*/
|
*/
|
||||||
List<ProblemKnowledgeBaseUserEO> queryList();
|
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,
|
public List<ProblemKnowledgeBaseEO> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO,
|
||||||
HttpServletRequest req) {
|
HttpServletRequest req) {
|
||||||
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap());
|
||||||
|
this.createQueryPermission(queryWrapper);
|
||||||
queryWrapper.orderByDesc("create_time");
|
queryWrapper.orderByDesc("create_time");
|
||||||
List<ProblemKnowledgeBaseEO> result = this.list(queryWrapper);
|
List<ProblemKnowledgeBaseEO> result = this.list(queryWrapper);
|
||||||
this.disposeData(result,problemKnowledgeBaseEO.getCut());
|
this.disposeData(result,problemKnowledgeBaseEO.getCut());
|
||||||
@@ -182,6 +183,12 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
|||||||
collectQueryWrapper.lambda().in(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
|
collectQueryWrapper.lambda().in(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
|
||||||
List<ProblemKnowledgeBaseCollectEO> collectEOList = this.problemKnowledgeBaseCollectEOService.list(collectQueryWrapper);
|
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 -> {
|
datas.forEach(data -> {
|
||||||
if(StringUtils.isNotEmpty(data.getShowPermissions())){
|
if(StringUtils.isNotEmpty(data.getShowPermissions())){
|
||||||
data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut));
|
data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut));
|
||||||
@@ -239,7 +246,42 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
|||||||
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseCollectEOS)){
|
if(CollectionUtils.isNotEmpty(problemKnowledgeBaseCollectEOS)){
|
||||||
data.setCollectEO(problemKnowledgeBaseCollectEOS.get(0));
|
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.entity.ProblemKnowledgeBaseUserEO;
|
||||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseUserEOMapper;
|
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseUserEOMapper;
|
||||||
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseUserEOService;
|
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 org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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)
|
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
||||||
public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseUserEOMapper, ProblemKnowledgeBaseUserEO> implements IProblemKnowledgeBaseUserEOService {
|
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() {
|
public List<ProblemKnowledgeBaseUserEO> queryList() {
|
||||||
return list();
|
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