mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 20:25:12 +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.common.pojo.enums.SensitiveLevelEnum;
|
||||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
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.DimensionReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq;
|
import com.tencent.supersonic.headless.api.pojo.request.DimensionValueReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||||
@@ -60,6 +61,14 @@ public class DimensionController {
|
|||||||
return true;
|
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")
|
@PostMapping("/batchUpdateStatus")
|
||||||
public Boolean batchUpdateStatus(@RequestBody MetaBatchReq metaBatchReq,
|
public Boolean batchUpdateStatus(@RequestBody MetaBatchReq metaBatchReq,
|
||||||
HttpServletRequest request, HttpServletResponse response) {
|
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.common.pojo.enums.EventType;
|
||||||
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
import com.tencent.supersonic.headless.api.pojo.DimValueMap;
|
||||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
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.DimensionReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
||||||
@@ -47,4 +48,6 @@ public interface DimensionService {
|
|||||||
void sendDimensionEventBatch(List<Long> modelIds, EventType eventType);
|
void sendDimensionEventBatch(List<Long> modelIds, EventType eventType);
|
||||||
|
|
||||||
DataEvent getDataEvent();
|
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.StatusEnum;
|
||||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||||
import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException;
|
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.DimValueMap;
|
||||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||||
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
|
import com.tencent.supersonic.headless.api.pojo.ModelDetail;
|
||||||
import com.tencent.supersonic.headless.api.pojo.enums.ModelDefineType;
|
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.DimensionReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
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);
|
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) {
|
private DataEvent getDataEvent(List<DimensionDO> dimensionDOS, EventType eventType) {
|
||||||
List<DataItem> dataItems = dimensionDOS.stream()
|
List<DataItem> dataItems = dimensionDOS.stream()
|
||||||
.map(dimensionDO -> DataItem.builder().id(dimensionDO.getId() + Constants.UNDERLINE)
|
.map(dimensionDO -> DataItem.builder().id(dimensionDO.getId() + Constants.UNDERLINE)
|
||||||
|
|||||||
Reference in New Issue
Block a user