diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/dto/JoinedWorkspaceOuJob.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/dto/JoinedWorkspaceOuJob.java index e5677c0b..ae3c3fe8 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/dto/JoinedWorkspaceOuJob.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/dto/JoinedWorkspaceOuJob.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -20,21 +21,21 @@ public class JoinedWorkspaceOuJob { /** * 加入的项目部及在该项目部下担任的所有岗位 */ - private Map> workspaceJobMap; + private Map> workspaceJobMap = Collections.emptyMap(); /** * 加入的单位及在该单位下担任的所有岗位 */ - private Map> ouJobMap; + private Map> ouJobMap = Collections.emptyMap(); /** * 加入的单位及在该单位加入的项目部 */ - private Map> ouWorkspaceMap; + private Map> ouWorkspaceMap = Collections.emptyMap(); /** * 加入的项目部及在该项目部加入的单位 */ - private Map> workspaceOuMap; + private Map> workspaceOuMap = Collections.emptyMap(); } \ No newline at end of file diff --git a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/enums/MaterialTargetUserTypeEnum.java b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/enums/MaterialTargetUserTypeEnum.java index 1bf47878..ef3f4cb8 100644 --- a/banner/banner-api/src/main/java/cn/axzo/nanopart/api/enums/MaterialTargetUserTypeEnum.java +++ b/banner/banner-api/src/main/java/cn/axzo/nanopart/api/enums/MaterialTargetUserTypeEnum.java @@ -41,7 +41,7 @@ public enum MaterialTargetUserTypeEnum { Map> workspaceJobMap = workspaceOuJob.getWorkspaceJobMap(); log.info("投放项目部:{},投放岗位岗位:{},当前登录单位:{},用户加入项目部及担任岗位:{},单位加入的项目部:{},项目部下的单位:{}", - JSONUtil.toJsonStr(ouIds), JSONUtil.toJsonStr(jobCodes), + JSONUtil.toJsonStr(workspaceIds), JSONUtil.toJsonStr(jobCodes), loginOuid, JSONUtil.toJsonStr(workspaceJobMap), JSONUtil.toJsonStr(workspaceOuJob.getOuWorkspaceMap()), @@ -67,6 +67,10 @@ public enum MaterialTargetUserTypeEnum { // 若配置了具体项目部 if (Objects.isNull(loginOuid) || loginOuid == 0L) { + // 未加入任何项目部 + if (CollectionUtils.isEmpty(workspaceJobMap)){ + return false; + } // 加入的全部项目部与配置的项目部有交集 if (workspaceIds.stream().anyMatch(workspaceJobMap::containsKey)) { if (CollectionUtils.isEmpty(jobCodes)) { @@ -107,6 +111,9 @@ public enum MaterialTargetUserTypeEnum { JSONUtil.toJsonStr(ouJobMap)); // 判断配置的单位和岗位是否为空 if (CollectionUtils.isEmpty(ouIds)) { + if (CollectionUtils.isEmpty(ouJobMap)){ + return false; + } // 若配置的单位为空(即配置了全部单位) if (CollectionUtils.isEmpty(jobCodes)) { // 若配置的岗位也为空(即配置了所有岗位),则不限制投放 @@ -128,6 +135,9 @@ public enum MaterialTargetUserTypeEnum { // 若配置了具体单位 if (Objects.isNull(loginOuid) || loginOuid == 0L) { + if (CollectionUtils.isEmpty(ouJobMap)){ + return false; + } // 若登录单位为空(工人APP登录),检查用户加入的单位是否与配置单位有交集 if (ouIds.stream().anyMatch(ouJobMap::containsKey)) { if (CollectionUtils.isEmpty(jobCodes)) { diff --git a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/service/impl/MaterialServiceImpl.java b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/service/impl/MaterialServiceImpl.java index d6063f93..c52558f3 100644 --- a/banner/banner-server/src/main/java/cn/axzo/nanopart/server/service/impl/MaterialServiceImpl.java +++ b/banner/banner-server/src/main/java/cn/axzo/nanopart/server/service/impl/MaterialServiceImpl.java @@ -323,7 +323,7 @@ public class MaterialServiceImpl extends ServiceImpl impl String key = buildMaterialDisplayFrequencyKey(m, req.getPersonId()); if (RedisClient.KeyOps.hasKey(key)) { int frequency = Integer.parseInt(RedisClient.StringOps.get(key)); - log.info("{素材投放key:{},value:{}", key, frequency); + log.info("素材投放key:{},value:{}", key, frequency); displayFrequencyFilter = MaterialDisplayFrequencyTypeEnum.NO_LIMIT.getCode().equals(m.getDisplayFrequencyType().getCode()) || frequency < m.getMaxDisplayFrequency(); if (displayFrequencyFilter) { // 本次需要投放 @@ -386,13 +386,13 @@ public class MaterialServiceImpl extends ServiceImpl impl */ private JoinedWorkspaceOuJob getPersonJoinedWorkspaceOuJob(Long personId) { if (Objects.isNull(personId)) { - return null; + return new JoinedWorkspaceOuJob(); } // 获取用户参与的组织架构 List nodeUserList = organizationalNodeUserGateway.list(OrganizationalNodeUserSearchReq.builder().personId(personId).build()); if (CollectionUtils.isEmpty(nodeUserList)) { - return null; + return new JoinedWorkspaceOuJob(); } // Map