问题知识库-分类维护-查询接口完善。

This commit is contained in:
wangzhijiang
2022-08-08 15:09:09 +08:00
parent a3878ba62f
commit bffaae0b59
9 changed files with 108 additions and 5 deletions
@@ -459,7 +459,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
userIdList = userIdList.stream().distinct().collect(Collectors.toList());
QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
sysUserQueryWrapper.lambda().in(SysUser::getId,userIdList);
List<SysUser> sysUsers = this.baseMapper.selectList(sysUserQueryWrapper);
List<SysUser> sysUsers = new ArrayList<>();
if(CollectionUtils.isNotEmpty(userIdList)){
sysUsers = this.baseMapper.selectList(sysUserQueryWrapper);
}
return sysUsers;
}
@@ -56,6 +56,7 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController<Pro
queryWrapper.orderByDesc("create_time");
Page<ProblemKnowledgeBaseClassifyEO> page = new Page<ProblemKnowledgeBaseClassifyEO>(pageNo, pageSize);
IPage<ProblemKnowledgeBaseClassifyEO> pageList = problemKnowledgeBaseClassifyEOService.page(page, queryWrapper);
this.problemKnowledgeBaseClassifyEOService.disposeData(pageList.getRecords());
return Result.OK(pageList);
}
@@ -69,6 +70,7 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController<Pro
@GetMapping(value = "/list")
public Result<List<ProblemKnowledgeBaseClassifyEO>> queryList() {
List<ProblemKnowledgeBaseClassifyEO> list = problemKnowledgeBaseClassifyEOService.queryList();
this.problemKnowledgeBaseClassifyEOService.disposeData(list);
return Result.OK(list);
}
@@ -53,7 +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);
this.problemKnowledgeBaseEOService.createQueryPermission(queryWrapper,problemKnowledgeBaseEO);
queryWrapper.orderByDesc("create_time");
Page<ProblemKnowledgeBaseEO> page = new Page<ProblemKnowledgeBaseEO>(pageNo, pageSize);
IPage<ProblemKnowledgeBaseEO> pageList = problemKnowledgeBaseEOService.page(page, queryWrapper);
@@ -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,7 @@ public class ProblemKnowledgeBaseClassifyEO implements Serializable {
@Excel(name = "负责人id", width = 15)
@ApiModelProperty(value = "负责人id")
private java.lang.String chargePersonId;
@TableField(exist = false)
private java.lang.String chargePersonIdName;
}
@@ -73,8 +73,12 @@ public class ProblemKnowledgeBaseEO implements Serializable {
@Excel(name = "问题分类", width = 15)
@ApiModelProperty(value = "问题分类")
private java.lang.String problemType;
/**问题分类展示名称*/
@TableField(exist = false)
private java.lang.String problemTypeName;
/**市场*/
@Dict(dicCode = "region")
@Excel(name = "市场", width = 15)
@ApiModelProperty(value = "市场")
private java.lang.String targetMarket;
@@ -171,4 +175,8 @@ public class ProblemKnowledgeBaseEO implements Serializable {
/**中英文切换*/
@TableField(exist = false)
private String cut;
/**模糊搜索全部输入字段条件*/
@TableField(exist = false)
private String searchStr;
}
@@ -58,4 +58,10 @@ public interface IProblemKnowledgeBaseClassifyEOService extends IService<Problem
* @return
*/
List<ProblemKnowledgeBaseClassifyEO> queryList();
/**
* 处理数据
* @param datas
*/
void disposeData(List<ProblemKnowledgeBaseClassifyEO> datas);
}
@@ -74,5 +74,5 @@ public interface IProblemKnowledgeBaseEOService extends IService<ProblemKnowledg
* 创建查询权限
* @param queryWrapper
*/
void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper);
void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO);
}
@@ -3,9 +3,16 @@ package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseClassifyEO;
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseClassifyEOMapper;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseClassifyEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
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;
@@ -19,6 +26,8 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseClassifyEOMapper, ProblemKnowledgeBaseClassifyEO> implements IProblemKnowledgeBaseClassifyEOService {
@Autowired
private ISysUserService sysUserService;
/**
* 保存
@@ -89,4 +98,28 @@ public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<Probl
public List<ProblemKnowledgeBaseClassifyEO> queryList() {
return list();
}
@Override
public void disposeData(List<ProblemKnowledgeBaseClassifyEO> datas) {
if (CollectionUtils.isNotEmpty(datas)) {
List<String> userIdList = datas.stream().map(ProblemKnowledgeBaseClassifyEO::getChargePersonId).distinct().collect(Collectors.toList());
List<SysUser> userList = this.sysUserService.querySysUserListByIdList(userIdList);
datas.forEach(data -> {
if(CollectionUtils.isNotEmpty(userList)){
List<SysUser> sysUsers = userList.stream().filter(user -> {
boolean flag = false;
if (StringUtils.equals(data.getId(), user.getId())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(sysUsers)){
data.setChargePersonIdName(sysUsers.get(0).getUsername());
}
}
});
}
}
}
@@ -14,9 +14,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
@@ -42,6 +44,8 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
private IProblemKnowledgeBaseCollectEOService problemKnowledgeBaseCollectEOService;
@Autowired
private IProblemKnowledgeBaseBrowsingHistoryEOService problemKnowledgeBaseBrowsingHistoryEOService;
@Autowired
private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService;
/**
* 保存
@@ -129,7 +133,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);
this.createQueryPermission(queryWrapper,problemKnowledgeBaseEO);
queryWrapper.orderByDesc("create_time");
List<ProblemKnowledgeBaseEO> result = this.list(queryWrapper);
this.disposeData(result,problemKnowledgeBaseEO.getCut());
@@ -167,6 +171,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
if (CollectionUtils.isNotEmpty(datas)) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
StringBuffer problemTypeSb = new StringBuffer();
for (ProblemKnowledgeBaseEO data : datas) {
problemTypeSb.append(data.getProblemType() + ",");
}
List<String> probleKnowledgeBaseIdList = datas.stream().map(ProblemKnowledgeBaseEO::getId).distinct().collect(Collectors.toList());
//查询出数据的所有点赞数量
QueryWrapper<ProblemKnowledgeBasePraiseEO> praiseQueryWrapper = new QueryWrapper<>();
@@ -189,6 +198,16 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
List<ProblemKnowledgeBaseUserEO> permissionUserEOList = this.problemKnowledgeBaseUserEOService.list(permissionUserQueryWrapper);
this.problemKnowledgeBaseUserEOService.disposeData(permissionUserEOList,cut);
List<ProblemKnowledgeBaseClassifyEO> problemKnowledgeBaseClassifyEOList = new ArrayList<>();
if(StringUtils.isNotEmpty(problemTypeSb.toString())){
Stream<String> problemTypeList = Arrays.asList(problemTypeSb.toString().substring(0, problemTypeSb.toString().length() - 1).split(",")).stream().distinct();
QueryWrapper<ProblemKnowledgeBaseClassifyEO> classifyEOQueryWrapper = new QueryWrapper<>();
classifyEOQueryWrapper.lambda().in(ProblemKnowledgeBaseClassifyEO::getId,problemTypeList);
problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list(classifyEOQueryWrapper);
}
List<ProblemKnowledgeBaseClassifyEO> finalProblemKnowledgeBaseClassifyEOList = problemKnowledgeBaseClassifyEOList;
datas.forEach(data -> {
if(StringUtils.isNotEmpty(data.getShowPermissions())){
data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut));
@@ -258,12 +277,28 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
if(CollectionUtils.isNotEmpty(permissionUserEOS)){
data.setPermissionUserList(permissionUserEOS);
}
String problemType = data.getProblemType();
if(StringUtils.isNotEmpty(problemType)){
String[] problemTypeArr = problemType.split(",");
String problemTypeName = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> {
boolean flag = false;
for (String type : problemTypeArr) {
if (StringUtils.equals(type, problemKnowledgeBaseClassifyEO.getId())) {
flag = true;
}
}
return flag;
}).map(ProblemKnowledgeBaseClassifyEO::getProblemLabel).collect(Collectors.joining(","));
data.setProblemTypeName(problemTypeName);
}
});
}
}
@Override
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper) {
public void createQueryPermission(QueryWrapper<ProblemKnowledgeBaseEO> queryWrapper,ProblemKnowledgeBaseEO problemKnowledgeBaseEO) {
/**
* 查询权限
* 公开:所有人都可以看到。
@@ -283,5 +318,17 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
o.in(ProblemKnowledgeBaseEO::getId,problemKnowledgeBaseIdList);
});
});
String searchStr = problemKnowledgeBaseEO.getSearchStr();
if(StringUtils.isNotEmpty(searchStr)){
queryWrapper.lambda().and(query -> {
query.like(ProblemKnowledgeBaseEO::getTitle,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getProblemType,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getTargetMarket,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getStandNumber,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getStandTitle,searchStr);
query.or().like(ProblemKnowledgeBaseEO::getContent,searchStr);
});
}
}
}