ValidConfigNewServiceImpl.java
5.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package cn.fw.dalaran.service.data.impl;
import cn.fw.dalaran.dao.ValidConfigNewDao;
import cn.fw.dalaran.domain.db.config.ValidConfigNew;
import cn.fw.dalaran.domain.enums.BizTypeEnum;
import cn.fw.dalaran.domain.enums.ValidLiveEnum;
import cn.fw.dalaran.domain.enums.ValidVideoEnum;
import cn.fw.dalaran.domain.vo.ValidConfigNewVo;
import cn.fw.dalaran.service.data.ValidConfigNewService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author wmy3969
* @version 1.0
* @date 2022-02-15 12:37:25
* @Description
*/
@Service("validConfigNewService")
@RequiredArgsConstructor
public class ValidConfigNewServiceImpl extends ServiceImpl<ValidConfigNewDao, ValidConfigNew> implements ValidConfigNewService {
private final ApplicationEventPublisher publisher;
/**
* 更新配置
*
* @param details 新的配置列表参数
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateConfig(List<ValidConfigNewVo.singleVo> details) {
details.forEach(item -> this.updateById(ValidConfigNewVo.toDB(item)));
publisher.publishEvent("validConfigAlertEvent#" + details.get(0).getConfigGroupId());
return true;
}
/**
* 查询集团直播/短视频配置
*
* @param configGroupId 所属配置组id
* @param type 类型id
* @return
*/
@Override
public ValidConfigNewVo queryList(Long configGroupId, Integer type) {
List<ValidConfigNew> list;
list = this.lambdaQuery()
.eq(ValidConfigNew::getConfigGroupId, configGroupId)
.eq(ValidConfigNew::getType, type)
.list();// 获取数据库中的配置列表
if (Objects.equals(BizTypeEnum.VIDEO.getValue(), type)) {
final int videoConfigLength = ValidVideoEnum.values().length;// 获取枚举中规定的视频指标项目
if (list.size() != videoConfigLength) {
list = this.initVideoConfigList(configGroupId);
}
} else if (Objects.equals(BizTypeEnum.LIVE.getValue(), type)) {
final int liveConfigLength = ValidLiveEnum.values().length;// 获取枚举中规定的直播指标项目
if (list.size() != liveConfigLength) {
list = this.initLiveConfigList(configGroupId);
}
} else if (Objects.equals(3, type)) {
if (list.size() != 1) {
list.add(ValidConfigNew.createConfig(-1, configGroupId, type, -1));
this.saveBatch(list);
}
}
return ValidConfigNew.toVO(list);
}
/**
* 根据枚举初始化视频最低标准配置
*
* @param configGroupId 所属配置组id
* @return
*/
@Transactional(rollbackFor = Exception.class)
public List<ValidConfigNew> initVideoConfigList(Long configGroupId) {
final List<ValidConfigNew> list = this.lambdaQuery()
.eq(ValidConfigNew::getConfigGroupId, configGroupId)
.eq(ValidConfigNew::getType, BizTypeEnum.VIDEO.getValue())
.list();// 获取原来配置
this.removeByIds(list.stream()
.map(ValidConfigNew::getId)
.collect(Collectors.toList()));// 删除原来配置
final List<ValidConfigNew> collect = Arrays.stream(ValidVideoEnum.values())
.map(item -> {
Integer minValue = 0;
List<ValidConfigNew> collect1 = list.stream()
.filter(item1 -> Objects.equals(item.getValue(), item1.getIndexType()))
.collect(Collectors.toList());
if (collect1.size() > 0) {
minValue = collect1.get(0).getMinValue();
}
return ValidConfigNew.createConfig(item.getValue(), configGroupId, BizTypeEnum.VIDEO.getValue(), minValue);
})
.collect(Collectors.toList());
this.saveBatch(collect);
return collect;
}
/**
* 根据枚举初始化视频最低标准配置
*
* @param configGroupId 所属配置组id
* @return
*/
@Transactional(rollbackFor = Exception.class)
public List<ValidConfigNew> initLiveConfigList(Long configGroupId) {
final List<ValidConfigNew> list = this.lambdaQuery()
.eq(ValidConfigNew::getConfigGroupId, configGroupId)
.eq(ValidConfigNew::getType, BizTypeEnum.LIVE.getValue())
.list();// 获取原来配置
this.removeByIds(list.stream()
.map(ValidConfigNew::getId)
.collect(Collectors.toList()));// 删除原来配置
final List<ValidConfigNew> collect = Arrays.stream(ValidLiveEnum.values())
.map(item -> {
Integer minValue = 0;
if (Objects.equals(item.getValue(), -1))// 付费推广判定倍率(默认为1倍)
minValue = 1;
List<ValidConfigNew> collect1 = list.stream()
.filter(item1 -> Objects.equals(item.getValue(), item1.getIndexType()))
.collect(Collectors.toList());
if (collect1.size() > 0) {
minValue = collect1.get(0).getMinValue();
}
return ValidConfigNew.createConfig(item.getValue(), configGroupId, BizTypeEnum.LIVE.getValue(), minValue);
})
.collect(Collectors.toList());
this.saveBatch(collect);
return collect;
}
}