diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/DomainUserRelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/DomainUserRelService.java index cef9abe24..73303cab2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/DomainUserRelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/DomainUserRelService.java @@ -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 { Result queryList(); + /** + * 查询领域、文档关联的用户 + * @param params + * @return + */ + List queryDomainUserRelInfo(Map params); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/impl/DomainManageServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/impl/DomainManageServiceImpl.java index cd8b86ece..4a78956e9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/impl/DomainManageServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/domain/service/impl/DomainManageServiceImpl.java @@ -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 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 domainUserRels = super.baseMapper.selectList(queryWrapper); return Result.OK(domainUserRels); } + + /** + * 查询领域、文档关联的用户 + * @param params + * @return + */ + @Override + public List queryDomainUserRelInfo(Map 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 result = new ArrayList<>(); + + try { + //获取订阅该领域的所有用户信息 + QueryWrapper queryDomain = new QueryWrapper<>(); + queryDomain.lambda().eq(DomainUserRel::getDomainId,domainId); + List domainUserRelList = super.baseMapper.selectList(queryDomain); + if(CollectionUtils.isNotEmpty(domainUserRelList)){ + result = domainUserRelList.stream().map(DomainUserRel::getUserId).distinct().collect(Collectors.toList()); + } + + //获取该文档所有订阅用户的信息 + QueryWrapper querySubscribe = new QueryWrapper<>(); + querySubscribe.lambda().eq(OnlCgformSubscribe::getDocumentId,documentId); + List onlCgformSubscribeList = onlCgformSubscribeMapper.selectList(querySubscribe); + if(CollectionUtils.isNotEmpty(onlCgformSubscribeList)){ + List userNameList = onlCgformSubscribeList.stream().map(OnlCgformSubscribe::getCreateBy).distinct().collect(Collectors.toList()); + + QueryWrapper userQuery = new QueryWrapper<>(); + userQuery.lambda().in(SysUser::getUsername,userNameList); + List 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; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java index 020b52ec5..ba8717314 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/tag/controller/OnlCgformTagController.java @@ -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;