feat(REQ-2106): 投放日志打印
This commit is contained in:
parent
3b6edd3c02
commit
6a3dd0f82f
@ -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<Long> workspaceIds, List<Long> ouIds, List<String> jobCodes, JoinedWorkspaceOuJob workspaceOuJob) {
|
||||
// 若workspaceIds和jobCodes都为空,则表示不限制,否则需要满足配置的workspaceIds和jobCodes与用户加入的workspaceJob的key,value均存在交集
|
||||
Map<Long, List<String>> 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<Long> workspaceIds, List<Long> ouIds, List<String> jobCodes, JoinedWorkspaceOuJob workspaceOuJob) {
|
||||
// 若workspaceIds和jobCodes都为空,则表示不限制,否则需要满足配置的workspaceIds和jobCodes与用户加入的workspaceJob的key,value均存在交集
|
||||
Map<Long, List<String>> 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));
|
||||
}
|
||||
|
||||
@ -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<MaterialDao, Material> 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<MaterialDao, Material> 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<MaterialDao, Material> 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) {
|
||||
// 本次需要投放
|
||||
|
||||
Loading…
Reference in New Issue
Block a user