From 6a3dd0f82f11e55070342e4c789a15b0b972f9ae Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Fri, 19 Apr 2024 11:46:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-2106):=20=E6=8A=95=E6=94=BE=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanopart/api/enums/MaterialTargetUserTypeEnum.java | 5 +++++ .../server/service/impl/MaterialServiceImpl.java | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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 4be9226b..fe0b1991 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 @@ -1,8 +1,10 @@ package cn.axzo.nanopart.api.enums; import cn.axzo.nanopart.api.dto.JoinedWorkspaceOuJob; +import cn.hutool.json.JSONUtil; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; @@ -18,6 +20,7 @@ import java.util.stream.Collectors; * @version 1.0 * @date 2024/4/9 16:46 */ +@Slf4j @Getter @AllArgsConstructor public enum MaterialTargetUserTypeEnum { @@ -34,6 +37,7 @@ public enum MaterialTargetUserTypeEnum { public boolean isDeliverRequired(List workspaceIds, List ouIds, List jobCodes, JoinedWorkspaceOuJob workspaceOuJob) { // 若workspaceIds和jobCodes都为空,则表示不限制,否则需要满足配置的workspaceIds和jobCodes与用户加入的workspaceJob的key,value均存在交集 Map> workspaceJobMap = workspaceOuJob.getWorkspaceJobMap(); + log.info("投放项目部:{},投放岗位岗位:{},用户加入项目部及担任岗位:{}", JSONUtil.toJsonStr(workspaceIds),JSONUtil.toJsonStr(jobCodes),JSONUtil.toJsonStr(workspaceJobMap)); return CollectionUtils.isEmpty(workspaceIds) ? CollectionUtils.isEmpty(jobCodes) || jobCodes.stream().anyMatch(jobCode -> workspaceJobMap.values().stream().flatMap(List::stream).distinct().collect(Collectors.toList()).contains(jobCode)) : workspaceIds.stream().anyMatch(workspaceId -> workspaceJobMap.get(workspaceId).stream().anyMatch(jobCodes::contains)); } @@ -44,6 +48,7 @@ public enum MaterialTargetUserTypeEnum { public boolean isDeliverRequired(List workspaceIds, List ouIds, List jobCodes, JoinedWorkspaceOuJob workspaceOuJob) { // 若workspaceIds和jobCodes都为空,则表示不限制,否则需要满足配置的workspaceIds和jobCodes与用户加入的workspaceJob的key,value均存在交集 Map> ouJobMap = workspaceOuJob.getOuJobMap(); + log.info("投放单位:{},投放岗位岗位:{},用户加入单位及担任岗位:{}", JSONUtil.toJsonStr(workspaceIds),JSONUtil.toJsonStr(jobCodes),JSONUtil.toJsonStr(ouJobMap)); return CollectionUtils.isEmpty(ouIds) ? CollectionUtils.isEmpty(jobCodes) || jobCodes.stream().anyMatch(jobCode -> ouJobMap.values().stream().flatMap(List::stream).distinct().collect(Collectors.toList()).contains(jobCode)) : ouIds.stream().anyMatch(ouId -> ouJobMap.get(ouId).stream().anyMatch(jobCodes::contains)); } 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 69877acf..ebf91b4f 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 @@ -34,6 +34,7 @@ import cn.axzo.pokonyan.config.redis.RedisClient; import cn.axzo.pokonyan.dao.converter.PageConverter; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -113,6 +114,7 @@ public class MaterialServiceImpl extends ServiceImpl impl if (CollectionUtils.isEmpty(materialList)) { return Collections.emptyList(); } + log.info("上架且有效广告位:{}", JSONUtil.toJsonStr(materialList)); // 获取当前登录用户加入的所有项目部,单位及其在项目部或在单位下担任的岗位 JoinedWorkspaceOuJob personJoinedWorkspaceOuJob = getPersonJoinedWorkspaceOuJob(req.getPersonId()); @@ -267,13 +269,13 @@ public class MaterialServiceImpl extends ServiceImpl impl } Material material = getById(req.getId()); - if (Objects.isNull(material)){ + if (Objects.isNull(material)) { return null; } // 获取所属广告位 Banner banner = bannerService.selectByCode(material.getBannerCode()); - if (Objects.isNull(banner)){ - log.warn("广告位不存在,广告位code:{},素材id:{}", material.getBannerCode(),material.getId()); + if (Objects.isNull(banner)) { + log.warn("广告位不存在,广告位code:{},素材id:{}", material.getBannerCode(), material.getId()); throw new ServiceException("数据异常"); } MaterialResp materialResp = BeanUtil.copyProperties(material, MaterialResp.class); @@ -321,6 +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("{}已投放次数:{},素材最大投放次数:{}", req.getPersonId(), frequency, m.getMaxDisplayFrequency()); displayFrequencyFilter = frequency < m.getMaxDisplayFrequency(); if (displayFrequencyFilter) { // 本次需要投放