refactor: 重构数据额外配置.

This commit is contained in:
lijiahangmax
2023-12-21 01:20:57 +08:00
parent a365b8a955
commit 4bae5a35d6
28 changed files with 757 additions and 137 deletions

View File

@@ -2,7 +2,7 @@ package com.orion.ops.module.infra.api;
import com.orion.ops.module.infra.entity.dto.data.DataExtraDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraQueryDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraUpdateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraSetDTO;
import com.orion.ops.module.infra.enums.DataExtraTypeEnum;
import java.util.List;
@@ -18,20 +18,38 @@ import java.util.Map;
public interface DataExtraApi {
/**
* 更新数据拓展信息
* 更新数据拓展信息 不存在则新增
*
* @param type type
* @param dto dto
* @return effect
*/
Integer updateExtraItem(DataExtraUpdateDTO dto, DataExtraTypeEnum type);
Integer setExtraItem(DataExtraSetDTO dto, DataExtraTypeEnum type);
/**
* 新增数据拓展信息
*
* @param dto dto
* @param type type
* @return id
*/
Long addExtraItem(DataExtraSetDTO dto, DataExtraTypeEnum type);
/**
* 更新数据拓展信息
*
* @param id id
* @param value value
* @return effect
*/
Integer updateExtraValue(Long id, String value);
/**
* 批量更新数据拓展信息
*
* @param map map
*/
void batchUpdate(Map<Long, Object> map);
void batchUpdateExtraValue(Map<Long, String> map);
/**
* 查询额外配置项
@@ -40,7 +58,7 @@ public interface DataExtraApi {
* @param dto dto
* @return item
*/
String getExtraItem(DataExtraQueryDTO dto, DataExtraTypeEnum type);
String getExtraValue(DataExtraQueryDTO dto, DataExtraTypeEnum type);
/**
* 查询额外配置项
@@ -49,7 +67,7 @@ public interface DataExtraApi {
* @param type type
* @return item
*/
Map<Long, String> getExtraItemList(DataExtraQueryDTO dto, DataExtraTypeEnum type);
Map<Long, String> getExtraItemValues(DataExtraQueryDTO dto, DataExtraTypeEnum type);
/**
* 查询额外配置
@@ -58,7 +76,16 @@ public interface DataExtraApi {
* @param type type
* @return effect
*/
List<DataExtraDTO> getExtraList(DataExtraQueryDTO dto, DataExtraTypeEnum type);
DataExtraDTO getExtraItem(DataExtraQueryDTO dto, DataExtraTypeEnum type);
/**
* 查询额外配置
*
* @param dto dto
* @param type type
* @return effect
*/
List<DataExtraDTO> getExtraItems(DataExtraQueryDTO dto, DataExtraTypeEnum type);
/**
* 通过 relId 删除

View File

@@ -36,10 +36,10 @@ public class DataExtraDTO implements Serializable {
@Schema(description = "数据类型")
private String type;
@Schema(description = "拓展")
@Schema(description = "配置")
private String item;
@Schema(description = "拓展")
@Schema(description = "配置")
private String value;
}

View File

@@ -22,8 +22,8 @@ import java.io.Serializable;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "DataExtraUpdateDTO", description = "数据拓展信息 更新请求业务对象")
public class DataExtraUpdateDTO implements Serializable {
@Schema(name = "DataExtraSetDTO", description = "数据拓展信息 更新请求业务对象")
public class DataExtraSetDTO implements Serializable {
private static final long serialVersionUID = 1L;
@@ -37,11 +37,11 @@ public class DataExtraUpdateDTO implements Serializable {
@NotBlank
@Size(max = 32)
@Schema(description = "拓展")
@Schema(description = "配置")
private String item;
@NotBlank
@Schema(description = "拓展")
@Schema(description = "配置")
private String value;
}

View File

@@ -3,11 +3,12 @@ package com.orion.ops.module.infra.api.impl;
import com.orion.ops.framework.common.utils.Valid;
import com.orion.ops.module.infra.api.DataExtraApi;
import com.orion.ops.module.infra.convert.DataExtraProviderConvert;
import com.orion.ops.module.infra.entity.domain.DataExtraDO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraQueryDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraUpdateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraSetDTO;
import com.orion.ops.module.infra.entity.request.data.DataExtraQueryRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraSetRequest;
import com.orion.ops.module.infra.enums.DataExtraTypeEnum;
import com.orion.ops.module.infra.service.DataExtraService;
import lombok.extern.slf4j.Slf4j;
@@ -33,42 +34,65 @@ public class DataExtraApiImpl implements DataExtraApi {
private DataExtraService dataExtraService;
@Override
public Integer updateExtraItem(DataExtraUpdateDTO dto, DataExtraTypeEnum type) {
public Integer setExtraItem(DataExtraSetDTO dto, DataExtraTypeEnum type) {
Valid.valid(dto);
// 更新
DataExtraUpdateRequest request = DataExtraProviderConvert.MAPPER.to(dto);
DataExtraSetRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.updateExtraItem(request);
return dataExtraService.setExtraItem(request);
}
@Override
public void batchUpdate(Map<Long, Object> map) {
dataExtraService.batchUpdate(map);
public Long addExtraItem(DataExtraSetDTO dto, DataExtraTypeEnum type) {
Valid.valid(dto);
// 更新
DataExtraSetRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.addExtraItem(request);
}
@Override
public String getExtraItem(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
public Integer updateExtraValue(Long id, String value) {
return dataExtraService.updateExtraValue(id, value);
}
@Override
public void batchUpdateExtraValue(Map<Long, String> map) {
dataExtraService.batchUpdateExtraValue(map);
}
@Override
public String getExtraValue(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
Valid.allNotNull(dto.getUserId(), dto.getRelId(), dto.getItem());
// 查询
DataExtraQueryRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.getExtraItem(request);
return dataExtraService.getExtraItemValue(request);
}
@Override
public Map<Long, String> getExtraItemList(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
public Map<Long, String> getExtraItemValues(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
Valid.allNotNull(dto.getUserId(), dto.getRelIdList(), dto.getItem());
// 查询
DataExtraQueryRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.getExtraItemList(request);
return dataExtraService.getExtraItemValues(request);
}
@Override
public List<DataExtraDTO> getExtraList(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
public DataExtraDTO getExtraItem(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
Valid.allNotNull(dto.getUserId(), dto.getRelId(), dto.getItem());
DataExtraQueryRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.getExtraList(request)
DataExtraDO extraItem = dataExtraService.getExtraItem(request);
return DataExtraProviderConvert.MAPPER.to(extraItem);
}
@Override
public List<DataExtraDTO> getExtraItems(DataExtraQueryDTO dto, DataExtraTypeEnum type) {
DataExtraQueryRequest request = DataExtraProviderConvert.MAPPER.to(dto);
request.setType(type.name());
return dataExtraService.getExtraItems(request)
.stream()
.map(DataExtraProviderConvert.MAPPER::to)
.collect(Collectors.toList());

View File

@@ -3,9 +3,9 @@ package com.orion.ops.module.infra.convert;
import com.orion.ops.module.infra.entity.domain.DataExtraDO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraQueryDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraUpdateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataExtraSetDTO;
import com.orion.ops.module.infra.entity.request.data.DataExtraQueryRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraSetRequest;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@@ -23,7 +23,7 @@ public interface DataExtraProviderConvert {
DataExtraQueryRequest to(DataExtraQueryDTO query);
DataExtraUpdateRequest to(DataExtraUpdateDTO update);
DataExtraSetRequest to(DataExtraSetDTO update);
DataExtraDTO to(DataExtraDO domain);

View File

@@ -42,11 +42,11 @@ public class DataExtraDO extends BaseDO {
@TableField("type")
private String type;
@Schema(description = "拓展")
@Schema(description = "配置")
@TableField("item")
private String item;
@Schema(description = "拓展")
@Schema(description = "配置")
@TableField("value")
private String value;

View File

@@ -22,8 +22,8 @@ import java.io.Serializable;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "DataExtraUpdateRequest", description = "数据拓展信息 更新请求对象")
public class DataExtraUpdateRequest implements Serializable {
@Schema(name = "DataExtraSetRequest", description = "数据拓展信息 更新请求对象")
public class DataExtraSetRequest implements Serializable {
private static final long serialVersionUID = 1L;
@@ -42,11 +42,11 @@ public class DataExtraUpdateRequest implements Serializable {
@NotBlank
@Size(max = 32)
@Schema(description = "拓展")
@Schema(description = "配置")
private String item;
@NotBlank
@Schema(description = "拓展")
private Object value;
@Schema(description = "配置")
private String value;
}

View File

@@ -2,7 +2,7 @@ package com.orion.ops.module.infra.service;
import com.orion.ops.module.infra.entity.domain.DataExtraDO;
import com.orion.ops.module.infra.entity.request.data.DataExtraQueryRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraSetRequest;
import java.util.List;
import java.util.Map;
@@ -17,19 +17,36 @@ import java.util.Map;
public interface DataExtraService {
/**
* 更新数据拓展信息
* 更新数据拓展信息 不存在则新增
*
* @param request request
* @return effect
*/
Integer updateExtraItem(DataExtraUpdateRequest request);
Integer setExtraItem(DataExtraSetRequest request);
/**
* 新增数据拓展信息
*
* @param request request
* @return id
*/
Long addExtraItem(DataExtraSetRequest request);
/**
* 更新数据拓展信息
*
* @param id id
* @param value value
* @return effect
*/
Integer updateExtraValue(Long id, String value);
/**
* 批量更新数据拓展信息
*
* @param map map
*/
void batchUpdate(Map<Long, Object> map);
void batchUpdateExtraValue(Map<Long, String> map);
/**
* 查询额外配置项
@@ -37,7 +54,7 @@ public interface DataExtraService {
* @param request request
* @return item
*/
String getExtraItem(DataExtraQueryRequest request);
String getExtraItemValue(DataExtraQueryRequest request);
/**
* 查询额外配置项
@@ -45,7 +62,7 @@ public interface DataExtraService {
* @param request request
* @return item
*/
Map<Long, String> getExtraItemList(DataExtraQueryRequest request);
Map<Long, String> getExtraItemValues(DataExtraQueryRequest request);
/**
* 查询额外配置
@@ -53,7 +70,15 @@ public interface DataExtraService {
* @param request request
* @return rows
*/
List<DataExtraDO> getExtraList(DataExtraQueryRequest request);
DataExtraDO getExtraItem(DataExtraQueryRequest request);
/**
* 查询额外配置
*
* @param request request
* @return rows
*/
List<DataExtraDO> getExtraItems(DataExtraQueryRequest request);
/**
* 通过 userId 删除

View File

@@ -8,7 +8,7 @@ import com.orion.ops.module.infra.constant.DataExtraItems;
import com.orion.ops.module.infra.define.cache.DataExtraCacheKeyDefine;
import com.orion.ops.module.infra.entity.request.data.DataAliasUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraQueryRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraSetRequest;
import com.orion.ops.module.infra.service.DataAliasService;
import com.orion.ops.module.infra.service.DataExtraService;
import lombok.extern.slf4j.Slf4j;
@@ -37,13 +37,13 @@ public class DataAliasServiceImpl implements DataAliasService {
Long userId = request.getUserId();
String type = request.getType();
// 更新
DataExtraUpdateRequest update = new DataExtraUpdateRequest();
DataExtraSetRequest update = new DataExtraSetRequest();
update.setUserId(userId);
update.setRelId(request.getRelId());
update.setType(type);
update.setItem(DataExtraItems.ALIAS);
update.setValue(Refs.json(request.getAlias()));
Integer effect = dataExtraService.updateExtraItem(update);
Integer effect = dataExtraService.setExtraItem(update);
// 删除缓存
RedisMaps.delete(DataExtraCacheKeyDefine.DATA_ALIAS.format(userId, type));
return effect;
@@ -66,7 +66,7 @@ public class DataAliasServiceImpl implements DataAliasService {
.type(type)
.item(DataExtraItems.ALIAS)
.build();
Map<Long, String> extras = dataExtraService.getExtraItemList(request);
Map<Long, String> extras = dataExtraService.getExtraItemValues(request);
entities = Maps.map(extras, String::valueOf, Refs::unrefToString);
// 设置屏障 防止穿透
CacheBarriers.MAP.check(entities);

View File

@@ -1,13 +1,13 @@
package com.orion.ops.module.infra.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.orion.lang.function.Functions;
import com.orion.lang.utils.collect.Maps;
import com.orion.ops.framework.common.constant.Const;
import com.orion.ops.module.infra.dao.DataExtraDAO;
import com.orion.ops.module.infra.entity.domain.DataExtraDO;
import com.orion.ops.module.infra.entity.request.data.DataExtraQueryRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraUpdateRequest;
import com.orion.ops.module.infra.entity.request.data.DataExtraSetRequest;
import com.orion.ops.module.infra.service.DataExtraService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -32,41 +32,49 @@ public class DataExtraServiceImpl implements DataExtraService {
private DataExtraDAO dataExtraDAO;
@Override
public Integer updateExtraItem(DataExtraUpdateRequest request) {
Long userId = request.getUserId();
Long relId = request.getRelId();
String type = request.getType();
String item = request.getItem();
Object value = request.getValue();
public Integer setExtraItem(DataExtraSetRequest request) {
// 查询配置是否存在
DataExtraDO extraItem = dataExtraDAO.of()
.createWrapper()
.eq(DataExtraDO::getUserId, userId)
.eq(DataExtraDO::getRelId, relId)
.eq(DataExtraDO::getType, type)
.eq(DataExtraDO::getItem, item)
.eq(DataExtraDO::getUserId, request.getUserId())
.eq(DataExtraDO::getRelId, request.getRelId())
.eq(DataExtraDO::getType, request.getType())
.eq(DataExtraDO::getItem, request.getItem())
.then()
.getOne();
if (extraItem == null) {
// 插入
DataExtraDO insert = new DataExtraDO();
insert.setUserId(userId);
insert.setRelId(relId);
insert.setType(type);
insert.setItem(item);
insert.setValue(JSON.toJSONString(value));
return dataExtraDAO.insert(insert);
this.addExtraItem(request);
return Const.N_1;
} else {
// 修改
DataExtraDO update = new DataExtraDO();
update.setId(extraItem.getId());
update.setValue(JSON.toJSONString(value));
return dataExtraDAO.updateById(update);
return this.updateExtraValue(extraItem.getId(), request.getValue());
}
}
@Override
public void batchUpdate(Map<Long, Object> map) {
public Long addExtraItem(DataExtraSetRequest request) {
// 插入
DataExtraDO insert = new DataExtraDO();
insert.setUserId(request.getUserId());
insert.setRelId(request.getRelId());
insert.setType(request.getType());
insert.setItem(request.getItem());
insert.setValue(request.getValue());
dataExtraDAO.insert(insert);
return insert.getId();
}
@Override
public Integer updateExtraValue(Long id, String value) {
DataExtraDO update = new DataExtraDO();
update.setId(id);
update.setValue(value);
return dataExtraDAO.updateById(update);
}
@Override
public void batchUpdateExtraValue(Map<Long, String> map) {
if (Maps.isEmpty(map)) {
return;
}
@@ -76,14 +84,14 @@ public class DataExtraServiceImpl implements DataExtraService {
.map(s -> {
DataExtraDO extra = new DataExtraDO();
extra.setId(s.getKey());
extra.setValue(JSON.toJSONString(s.getValue()));
extra.setValue(s.getValue());
return extra;
}).collect(Collectors.toList());
dataExtraDAO.updateBatch(list);
}
@Override
public String getExtraItem(DataExtraQueryRequest request) {
public String getExtraItemValue(DataExtraQueryRequest request) {
return dataExtraDAO.of()
.wrapper(this.buildWrapper(request))
.optionalOne()
@@ -92,7 +100,7 @@ public class DataExtraServiceImpl implements DataExtraService {
}
@Override
public Map<Long, String> getExtraItemList(DataExtraQueryRequest request) {
public Map<Long, String> getExtraItemValues(DataExtraQueryRequest request) {
return dataExtraDAO.of()
.wrapper(this.buildWrapper(request))
.stream()
@@ -103,7 +111,14 @@ public class DataExtraServiceImpl implements DataExtraService {
}
@Override
public List<DataExtraDO> getExtraList(DataExtraQueryRequest request) {
public DataExtraDO getExtraItem(DataExtraQueryRequest request) {
return dataExtraDAO.of()
.wrapper(this.buildWrapper(request))
.getOne();
}
@Override
public List<DataExtraDO> getExtraItems(DataExtraQueryRequest request) {
return dataExtraDAO.of()
.wrapper(this.buildWrapper(request))
.list();