查询领域、文档关联的方法。

This commit is contained in:
wangzhijiang
2022-03-03 14:20:23 +08:00
parent f57164dbe3
commit ed490f0313
3 changed files with 80 additions and 0 deletions
@@ -4,6 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.domain.entity.DomainUserRel;
import java.util.List;
import java.util.Map;
/**
* 领域与用户关系
*@Author: wzj
@@ -15,4 +19,11 @@ public interface DomainUserRelService extends IService<DomainUserRel> {
Result<?> queryList();
/**
* 查询领域、文档关联的用户
* @param params
* @return
*/
List<String> queryDomainUserRelInfo(Map<String,Object> params);
}
@@ -6,16 +6,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.domain.entity.DomainUserRel;
import com.jero.modules.domain.mapper.DomainUserRelMapper;
import com.jero.modules.domain.service.DomainUserRelService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.mapper.OnlCgformSubscribeMapper;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 领域与用户关系
@@ -25,6 +33,13 @@ import java.util.List;
@Service
public class DomainManageServiceImpl extends ServiceImpl<DomainUserRelMapper, DomainUserRel> implements DomainUserRelService {
//我的订阅
@Autowired
private OnlCgformSubscribeMapper onlCgformSubscribeMapper;
@Autowired
private SysUserMapper sysUserMapper;
@Override
public Result<?> insert(JSONObject jsonObject) {
try {
@@ -64,4 +79,56 @@ public class DomainManageServiceImpl extends ServiceImpl<DomainUserRelMapper, Do
List<DomainUserRel> domainUserRels = super.baseMapper.selectList(queryWrapper);
return Result.OK(domainUserRels);
}
/**
* 查询领域、文档关联的用户
* @param params
* @return
*/
@Override
public List<String> queryDomainUserRelInfo(Map<String, Object> params) {
String domainId = (String) params.get("domainId");
if(oConvertUtils.isEmpty(domainId)){
throw new JeroBootException("领域id不能为空!");
}
String documentId = (String) params.get("documentId");
if(oConvertUtils.isEmpty(documentId)){
throw new JeroBootException("文档id不能为空");
}
List<String> result = new ArrayList<>();
try {
//获取订阅该领域的所有用户信息
QueryWrapper<DomainUserRel> queryDomain = new QueryWrapper<>();
queryDomain.lambda().eq(DomainUserRel::getDomainId,domainId);
List<DomainUserRel> domainUserRelList = super.baseMapper.selectList(queryDomain);
if(CollectionUtils.isNotEmpty(domainUserRelList)){
result = domainUserRelList.stream().map(DomainUserRel::getUserId).distinct().collect(Collectors.toList());
}
//获取该文档所有订阅用户的信息
QueryWrapper<OnlCgformSubscribe> querySubscribe = new QueryWrapper<>();
querySubscribe.lambda().eq(OnlCgformSubscribe::getDocumentId,documentId);
List<OnlCgformSubscribe> onlCgformSubscribeList = onlCgformSubscribeMapper.selectList(querySubscribe);
if(CollectionUtils.isNotEmpty(onlCgformSubscribeList)){
List<String> userNameList = onlCgformSubscribeList.stream().map(OnlCgformSubscribe::getCreateBy).distinct().collect(Collectors.toList());
QueryWrapper<SysUser> userQuery = new QueryWrapper<>();
userQuery.lambda().in(SysUser::getUsername,userNameList);
List<SysUser> sysUsers = this.sysUserMapper.selectList(userQuery);
if(CollectionUtils.isNotEmpty(sysUsers)){
for (SysUser sysUser : sysUsers) {
if(!result.contains(sysUser.getId())){
result.add(sysUser.getId());
}
}
}
}
}catch (Exception ex){
log.error("根据领域id、文档id查询用户失败:" + ex.getMessage());
throw new JeroBootException("根据领域id、文档id查询用户失败!");
}
return result;
}
}
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.tag.entity.OnlCgformArea;
@@ -23,6 +24,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;