Skip to content

Commit 0a03f41

Browse files
author
zengqiao
committed
后端增加指标摆放顺序功能
1 parent 5619193 commit 0a03f41

File tree

6 files changed

+87
-4
lines changed

6 files changed

+87
-4
lines changed

km-biz/src/main/java/com/xiaojukeji/know/streaming/km/biz/version/impl/VersionControlManagerImpl.java

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
import com.didiglobal.logi.security.common.dto.config.ConfigDTO;
88
import com.didiglobal.logi.security.service.ConfigService;
99
import com.xiaojukeji.know.streaming.km.biz.version.VersionControlManager;
10+
import com.xiaojukeji.know.streaming.km.common.bean.dto.metrices.MetricDetailDTO;
1011
import com.xiaojukeji.know.streaming.km.common.bean.dto.metrices.UserMetricConfigDTO;
1112
import com.xiaojukeji.know.streaming.km.common.bean.entity.config.metric.UserMetricConfig;
1213
import com.xiaojukeji.know.streaming.km.common.bean.entity.result.Result;
1314
import com.xiaojukeji.know.streaming.km.common.bean.entity.version.VersionControlItem;
1415
import com.xiaojukeji.know.streaming.km.common.bean.vo.config.metric.UserMetricConfigVO;
1516
import com.xiaojukeji.know.streaming.km.common.bean.vo.version.VersionItemVO;
17+
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
1618
import com.xiaojukeji.know.streaming.km.common.enums.version.VersionEnum;
1719
import com.xiaojukeji.know.streaming.km.common.utils.ConvertUtil;
1820
import com.xiaojukeji.know.streaming.km.common.utils.VersionUtil;
@@ -159,6 +161,9 @@ public Result<List<UserMetricConfigVO>> listUserMetricItem(Long clusterId, Integ
159161

160162
UserMetricConfig umc = userMetricConfigMap.get(itemType + "@" + metric);
161163
userMetricConfigVO.setSet(null != umc && umc.isSet());
164+
if (umc != null) {
165+
userMetricConfigVO.setRank(umc.getRank());
166+
}
162167
userMetricConfigVO.setName(itemVO.getName());
163168
userMetricConfigVO.setType(itemVO.getType());
164169
userMetricConfigVO.setDesc(itemVO.getDesc());
@@ -178,13 +183,30 @@ public Result<List<UserMetricConfigVO>> listUserMetricItem(Long clusterId, Integ
178183
@Override
179184
public Result<Void> updateUserMetricItem(Long clusterId, Integer type, UserMetricConfigDTO dto, String operator) {
180185
Map<String, Boolean> metricsSetMap = dto.getMetricsSet();
181-
if(null == metricsSetMap || metricsSetMap.isEmpty()){
186+
187+
//转换metricDetailDTOList
188+
List<MetricDetailDTO> metricDetailDTOList = dto.getMetricDetailDTOList();
189+
Map<String, MetricDetailDTO> metricDetailMap = new HashMap<>();
190+
if (metricDetailDTOList != null && !metricDetailDTOList.isEmpty()) {
191+
metricDetailMap = metricDetailDTOList.stream().collect(Collectors.toMap(MetricDetailDTO::getMetric, Function.identity()));
192+
}
193+
194+
//转换metricsSetMap
195+
if (metricsSetMap != null && !metricsSetMap.isEmpty()) {
196+
for (Map.Entry<String, Boolean> metricAndShowEntry : metricsSetMap.entrySet()) {
197+
if (metricDetailMap.containsKey(metricAndShowEntry.getKey())) continue;
198+
metricDetailMap.put(metricAndShowEntry.getKey(), new MetricDetailDTO(metricAndShowEntry.getKey(), metricAndShowEntry.getValue(), null));
199+
}
200+
}
201+
202+
if (metricDetailMap.isEmpty()) {
182203
return Result.buildSuc();
183204
}
184205

206+
185207
Set<UserMetricConfig> userMetricConfigs = getUserMetricConfig(operator);
186208
for(Map.Entry<String, Boolean> metricAndShowEntry : metricsSetMap.entrySet()){
187-
UserMetricConfig userMetricConfig = new UserMetricConfig(type, metricAndShowEntry.getKey(), metricAndShowEntry.getValue());
209+
UserMetricConfig userMetricConfig = new UserMetricConfig(type, metricAndShowEntry.getKey(), metricAndShowEntry.getValue(), metricDetailMap.get(metricAndShowEntry.getKey()).getRank());
188210
userMetricConfigs.remove(userMetricConfig);
189211
userMetricConfigs.add(userMetricConfig);
190212
}
@@ -228,7 +250,15 @@ private Set<UserMetricConfig> getUserMetricConfig(String operator){
228250
return defaultMetrics;
229251
}
230252

231-
return JSON.parseObject(value, new TypeReference<Set<UserMetricConfig>>(){});
253+
Set<UserMetricConfig> userMetricConfigs = JSON.parseObject(value, new TypeReference<Set<UserMetricConfig>>() {});
254+
255+
//补充rank不存在情况
256+
for (UserMetricConfig userMetricConfig : userMetricConfigs) {
257+
if (userMetricConfig.getRank() == 0) {
258+
userMetricConfig.setRank(Constant.DEFAULT_METRIC_RANK);
259+
}
260+
}
261+
return userMetricConfigs;
232262
}
233263

234264
public static void main(String[] args){
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.xiaojukeji.know.streaming.km.common.bean.dto.metrices;
2+
3+
import com.xiaojukeji.know.streaming.km.common.bean.dto.BaseDTO;
4+
import io.swagger.annotations.ApiModel;
5+
import io.swagger.annotations.ApiModelProperty;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
/**
11+
* @author didi
12+
*/
13+
@Data
14+
@NoArgsConstructor
15+
@AllArgsConstructor
16+
@ApiModel(description = "指标详细属性信息")
17+
public class MetricDetailDTO extends BaseDTO {
18+
19+
@ApiModelProperty("指标名称")
20+
private String metric;
21+
22+
@ApiModelProperty("指标是否显示")
23+
private Boolean set;
24+
25+
@ApiModelProperty("指标优先级")
26+
private Integer rank;
27+
28+
}

km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/dto/metrices/UserMetricConfigDTO.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.Data;
88
import lombok.NoArgsConstructor;
99

10+
import java.util.List;
1011
import java.util.Map;
1112

1213

@@ -17,4 +18,7 @@
1718
public class UserMetricConfigDTO extends BaseDTO {
1819
@ApiModelProperty("指标展示设置项,key:指标名;value:是否展现(true展现/false不展现)")
1920
private Map<String, Boolean> metricsSet;
21+
22+
@ApiModelProperty("指标自定义属性列表")
23+
private List<MetricDetailDTO> metricDetailDTOList;
2024
}

km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/entity/config/metric/UserMetricConfig.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.xiaojukeji.know.streaming.km.common.bean.entity.config.metric;
22

3+
import com.xiaojukeji.know.streaming.km.common.constant.Constant;
34
import lombok.AllArgsConstructor;
45
import lombok.Data;
56
import lombok.NoArgsConstructor;
67

78
@Data
89
@NoArgsConstructor
9-
@AllArgsConstructor
1010
public class UserMetricConfig {
1111

1212
private int type;
@@ -15,6 +15,22 @@ public class UserMetricConfig {
1515

1616
private boolean set;
1717

18+
private int rank;
19+
20+
public UserMetricConfig(int type, String metric, boolean set, Integer rank) {
21+
this.type = type;
22+
this.metric = metric;
23+
this.set = set;
24+
this.rank = rank == null ? Constant.DEFAULT_METRIC_RANK : rank;
25+
}
26+
27+
public UserMetricConfig(int type, String metric, boolean set) {
28+
this.type = type;
29+
this.metric = metric;
30+
this.set = set;
31+
this.rank = Constant.DEFAULT_METRIC_RANK;
32+
}
33+
1834
@Override
1935
public int hashCode(){
2036
return metric.hashCode() << 1 + type;

km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/bean/vo/config/metric/UserMetricConfigVO.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@
1414
public class UserMetricConfigVO extends VersionItemVO {
1515
@ApiModelProperty(value = "该指标用户是否设置展现", example = "true")
1616
private Boolean set;
17+
18+
@ApiModelProperty(value = "该指标展示优先级", example = "1")
19+
private Integer rank;
1720
}

km-common/src/main/java/com/xiaojukeji/know/streaming/km/common/constant/Constant.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ private Constant() {}
4242
*/
4343
public static final Integer DEFAULT_CLUSTER_HEALTH_SCORE = 90;
4444

45+
public static final Integer DEFAULT_METRIC_RANK = 10000;
46+
4547
public static final String DEFAULT_USER_NAME = "know-streaming-app";
4648

4749
public static final int INVALID_CODE = -1;

0 commit comments

Comments
 (0)