mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement)(knowledge) support DimValueAliasReq single (#1871)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.tencent.supersonic.headless.api.pojo.request;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author: kanedai
|
||||
* @date: 2024/10/31
|
||||
*/
|
||||
@Data
|
||||
public class DimValueAliasReq {
|
||||
|
||||
@NotNull
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* alias为空代表删除 否则更新
|
||||
*/
|
||||
DimValueMap dimValueMaps;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import com.tencent.supersonic.common.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.SensitiveLevelEnum;
|
||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimValueAliasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||
@@ -60,6 +61,14 @@ public class DimensionController {
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/updateDimension/alias/value")
|
||||
public Boolean updateDimValueAlias(@RequestBody DimValueAliasReq req,
|
||||
HttpServletRequest request, HttpServletResponse response) {
|
||||
User user = UserHolder.findUser(request, response);
|
||||
dimensionService.updateDimValueAlias(req, user);
|
||||
return true;
|
||||
}
|
||||
|
||||
@PostMapping("/batchUpdateStatus")
|
||||
public Boolean batchUpdateStatus(@RequestBody MetaBatchReq metaBatchReq,
|
||||
HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.tencent.supersonic.common.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.EventType;
|
||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimValueAliasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
||||
@@ -47,4 +48,6 @@ public interface DimensionService {
|
||||
void sendDimensionEventBatch(List<Long> modelIds, EventType eventType);
|
||||
|
||||
DataEvent getDataEvent();
|
||||
|
||||
Boolean updateDimValueAlias(DimValueAliasReq req, User user);
|
||||
}
|
||||
|
||||
@@ -16,10 +16,12 @@ import com.tencent.supersonic.common.pojo.enums.EventType;
|
||||
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||
import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.ModelDefineType;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimValueAliasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
||||
@@ -428,6 +430,40 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
return getDataEvent(dimensionDOS, EventType.ADD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateDimValueAlias(DimValueAliasReq req, User user) {
|
||||
DimensionDO dimensionDO = getById(req.getId());
|
||||
List<DimValueMap> dimValueMapList = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(dimensionDO.getDimValueMaps())) {
|
||||
dimValueMapList = JsonUtil.toList(dimensionDO.getDimValueMaps(), DimValueMap.class);
|
||||
}
|
||||
DimValueMap dimValueMaps = req.getDimValueMaps();
|
||||
Map<String, DimValueMap> valeAndMapInfo = dimValueMapList.stream()
|
||||
.collect(Collectors.toMap(DimValueMap::getValue, v -> v, (v1, v2) -> v2));
|
||||
String value = dimValueMaps.getValue();
|
||||
if (CollectionUtils.isEmpty(dimValueMaps.getAlias())) {
|
||||
// 删除
|
||||
dimValueMapList =
|
||||
dimValueMapList.stream().filter(map -> !map.getValue().equalsIgnoreCase(value))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
// 新增
|
||||
if (!valeAndMapInfo.keySet().contains(value)) {
|
||||
dimValueMapList.add(dimValueMaps);
|
||||
} else {
|
||||
// 更新
|
||||
dimValueMapList.stream().forEach(map -> {
|
||||
if (map.getValue().equalsIgnoreCase(value)) {
|
||||
map.setAlias(dimValueMaps.getAlias());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
dimensionDO.setDimValueMaps(JsonUtil.toString(dimValueMapList));
|
||||
updateById(dimensionDO);
|
||||
return true;
|
||||
}
|
||||
|
||||
private DataEvent getDataEvent(List<DimensionDO> dimensionDOS, EventType eventType) {
|
||||
List<DataItem> dataItems = dimensionDOS.stream()
|
||||
.map(dimensionDO -> DataItem.builder().id(dimensionDO.getId() + Constants.UNDERLINE)
|
||||
|
||||
Reference in New Issue
Block a user