feat: 数据别名服务.
This commit is contained in:
@@ -53,4 +53,15 @@ DELETE {{baseUrl}}/asset/host/delete?id=1
|
||||
Authorization: {{token}}
|
||||
|
||||
|
||||
### 更新主机别名
|
||||
PUT {{baseUrl}}/asset/host/update-alias
|
||||
Content-Type: application/json
|
||||
Authorization: {{token}}
|
||||
|
||||
{
|
||||
"id": 1,
|
||||
"name": "alias"
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog;
|
||||
import com.orion.ops.framework.common.validator.group.Page;
|
||||
import com.orion.ops.framework.log.core.annotation.IgnoreLog;
|
||||
import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
|
||||
import com.orion.ops.framework.security.core.utils.SecurityUtils;
|
||||
import com.orion.ops.framework.web.core.annotation.RestWrapper;
|
||||
import com.orion.ops.module.asset.define.operator.HostOperatorType;
|
||||
import com.orion.ops.module.asset.entity.request.host.*;
|
||||
@@ -12,6 +13,9 @@ import com.orion.ops.module.asset.entity.vo.HostConfigVO;
|
||||
import com.orion.ops.module.asset.entity.vo.HostVO;
|
||||
import com.orion.ops.module.asset.service.HostConfigService;
|
||||
import com.orion.ops.module.asset.service.HostService;
|
||||
import com.orion.ops.module.infra.api.DataAliasApi;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO;
|
||||
import com.orion.ops.module.infra.enums.DataAliasTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -45,6 +49,9 @@ public class HostController {
|
||||
@Resource
|
||||
private HostConfigService hostConfigService;
|
||||
|
||||
@Resource
|
||||
private DataAliasApi dataAliasApi;
|
||||
|
||||
@OperatorLog(HostOperatorType.CREATE)
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建主机")
|
||||
@@ -95,6 +102,17 @@ public class HostController {
|
||||
return hostService.deleteHostById(id);
|
||||
}
|
||||
|
||||
@PutMapping("/update-alias")
|
||||
@Operation(summary = "修改主机别名")
|
||||
public Integer updateHostAlias(@Validated @RequestBody HostAliasUpdateRequest request) {
|
||||
DataAliasUpdateDTO update = DataAliasUpdateDTO.builder()
|
||||
.userId(SecurityUtils.getLoginUserId())
|
||||
.relId(request.getId())
|
||||
.alias(request.getName())
|
||||
.build();
|
||||
return dataAliasApi.updateDataAlias(update, DataAliasTypeEnum.HOST);
|
||||
}
|
||||
|
||||
@IgnoreLog(IgnoreLogMode.RET)
|
||||
@GetMapping("/get-config")
|
||||
@Operation(summary = "查询主机配置")
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.orion.ops.module.asset.entity.request.host;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 主机别名 更新请求对象
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-9-13 14:31
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "HostAliasUpdateRequest", description = "主机别名 更新请求对象")
|
||||
public class HostAliasUpdateRequest implements Serializable {
|
||||
|
||||
@NotNull
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@Size(max = 32)
|
||||
@Schema(description = "别名")
|
||||
private String name;
|
||||
|
||||
}
|
||||
@@ -23,11 +23,13 @@ import com.orion.ops.module.asset.entity.request.host.HostUpdateRequest;
|
||||
import com.orion.ops.module.asset.entity.vo.HostVO;
|
||||
import com.orion.ops.module.asset.service.HostConfigService;
|
||||
import com.orion.ops.module.asset.service.HostService;
|
||||
import com.orion.ops.module.infra.api.DataAliasApi;
|
||||
import com.orion.ops.module.infra.api.DataGroupRelApi;
|
||||
import com.orion.ops.module.infra.api.FavoriteApi;
|
||||
import com.orion.ops.module.infra.api.TagRelApi;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataGroupRelCreateDTO;
|
||||
import com.orion.ops.module.infra.entity.dto.tag.TagDTO;
|
||||
import com.orion.ops.module.infra.enums.DataAliasTypeEnum;
|
||||
import com.orion.ops.module.infra.enums.DataGroupTypeEnum;
|
||||
import com.orion.ops.module.infra.enums.FavoriteTypeEnum;
|
||||
import com.orion.ops.module.infra.enums.TagTypeEnum;
|
||||
@@ -71,6 +73,9 @@ public class HostServiceImpl implements HostService {
|
||||
@Resource
|
||||
private DataGroupRelApi dataGroupRelApi;
|
||||
|
||||
@Resource
|
||||
private DataAliasApi dataAliasApi;
|
||||
|
||||
@Override
|
||||
public Long createHost(HostCreateRequest request) {
|
||||
log.info("HostService-createHost request: {}", JSON.toJSONString(request));
|
||||
@@ -213,6 +218,8 @@ public class HostServiceImpl implements HostService {
|
||||
tagRelApi.deleteRelId(TagTypeEnum.HOST, id);
|
||||
// 删除收藏引用
|
||||
favoriteApi.deleteByRelId(FavoriteTypeEnum.HOST, id);
|
||||
// 删除主机别名
|
||||
dataAliasApi.deleteByRelId(DataAliasTypeEnum.HOST, id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,95 +1,64 @@
|
||||
// package com.orion.ops.module.infra.api;
|
||||
//
|
||||
// import com.orion.ops.module.infra.entity.dto.data.*;
|
||||
//
|
||||
// import java.util.List;
|
||||
//
|
||||
// /**
|
||||
// * 数据别名 对外服务类
|
||||
// *
|
||||
// * @author Jiahang Li
|
||||
// * @version 1.0.0
|
||||
// * @since 2023-12-18 17:37
|
||||
// */
|
||||
// public interface DataAliasApi {
|
||||
//
|
||||
// /**
|
||||
// * 创建数据别名
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return id
|
||||
// */
|
||||
// Long createDataAlias(DataAliasCreateDTO dto);
|
||||
//
|
||||
// /**
|
||||
// * 更新数据别名
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return effect
|
||||
// */
|
||||
// Integer updateDataAliasById(DataAliasUpdateDTO dto);
|
||||
//
|
||||
// /**
|
||||
// * 查询数据别名
|
||||
// *
|
||||
// * @param id id
|
||||
// * @return row
|
||||
// */
|
||||
// DataAliasDTO getDataAliasById(Long id);
|
||||
//
|
||||
// /**
|
||||
// * 批量查询数据别名
|
||||
// *
|
||||
// * @param idList idList
|
||||
// * @return rows
|
||||
// */
|
||||
// List<DataAliasDTO> getDataAliasByIdList(List<Long> idList);
|
||||
//
|
||||
// /**
|
||||
// * 查询全部数据别名
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return rows
|
||||
// */
|
||||
// List<DataAliasDTO> getDataAliasList(DataAliasQueryDTO dto);
|
||||
//
|
||||
// /**
|
||||
// * 通过缓存查询数据别名
|
||||
// *
|
||||
// * @return rows
|
||||
// */
|
||||
// List<DataAliasDTO> getDataAliasListByCache();
|
||||
//
|
||||
// /**
|
||||
// * 查询数据别名数量
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return count
|
||||
// */
|
||||
// Long getDataAliasCount(DataAliasQueryDTO dto);
|
||||
//
|
||||
// /**
|
||||
// * 删除数据别名
|
||||
// *
|
||||
// * @param id id
|
||||
// * @return effect
|
||||
// */
|
||||
// Integer deleteDataAliasById(Long id);
|
||||
//
|
||||
// /**
|
||||
// * 批量删除数据别名
|
||||
// *
|
||||
// * @param idList idList
|
||||
// * @return effect
|
||||
// */
|
||||
// Integer deleteDataAliasByIdList(List<Long> idList);
|
||||
//
|
||||
// /**
|
||||
// * 根据条件删除数据别名
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return effect
|
||||
// */
|
||||
// Integer deleteDataAlias(DataAliasQueryDTO dto);
|
||||
//
|
||||
// }
|
||||
package com.orion.ops.module.infra.api;
|
||||
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO;
|
||||
import com.orion.ops.module.infra.enums.DataAliasTypeEnum;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/**
|
||||
* 数据别名 对外服务类
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
public interface DataAliasApi {
|
||||
|
||||
/**
|
||||
* 更新数据别名
|
||||
*
|
||||
* @param dto dto
|
||||
* @param type type
|
||||
* @return effect
|
||||
*/
|
||||
Integer updateDataAlias(DataAliasUpdateDTO dto, DataAliasTypeEnum type);
|
||||
|
||||
/**
|
||||
* 查询数据别名
|
||||
*
|
||||
* @param userId userId
|
||||
* @param type type
|
||||
* @param relId relId
|
||||
* @return aliasName
|
||||
*/
|
||||
String getDataAlias(Long userId, DataAliasTypeEnum type, Long relId);
|
||||
|
||||
/**
|
||||
* 查询数据别名
|
||||
*
|
||||
* @param userId userId
|
||||
* @param type type
|
||||
* @return relId:aliasName
|
||||
*/
|
||||
Map<Long, String> getDataAlias(Long userId, DataAliasTypeEnum type);
|
||||
|
||||
/**
|
||||
* 异步查询数据别名
|
||||
*
|
||||
* @param userId userId
|
||||
* @param type type
|
||||
* @return relId:aliasName
|
||||
*/
|
||||
Future<Map<Long, String>> getDataAliasAsync(Long userId, DataAliasTypeEnum type);
|
||||
|
||||
/**
|
||||
* 删除数据别名
|
||||
*
|
||||
* @param type type
|
||||
* @param relId relId
|
||||
* @return effect
|
||||
*/
|
||||
Integer deleteByRelId(DataAliasTypeEnum type, Long relId);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.orion.ops.module.infra.entity.dto.data;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.math.*;
|
||||
|
||||
/**
|
||||
* 数据别名 创建请求业务对象
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "DataAliasCreateDTO", description = "数据别名 创建请求业务对象")
|
||||
public class DataAliasCreateDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@NotNull
|
||||
@Schema(description = "用户id")
|
||||
private Long userId;
|
||||
|
||||
@NotNull
|
||||
@Schema(description = "数据id")
|
||||
private Long relId;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 32)
|
||||
@Schema(description = "数据类型")
|
||||
private String type;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 32)
|
||||
@Schema(description = "别名")
|
||||
private String alias;
|
||||
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
package com.orion.ops.module.infra.entity.dto.data;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.io.Serializable;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.math.*;
|
||||
|
||||
/**
|
||||
* 数据别名 业务对象
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "DataAliasDTO", description = "数据别名 业务对象")
|
||||
public class DataAliasDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "数据id")
|
||||
private Long relId;
|
||||
|
||||
@Schema(description = "数据类型")
|
||||
private String type;
|
||||
|
||||
@Schema(description = "别名")
|
||||
private String alias;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@Schema(description = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@Schema(description = "创建人")
|
||||
private String creator;
|
||||
|
||||
@Schema(description = "修改人")
|
||||
private String updater;
|
||||
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.orion.ops.module.infra.entity.dto.data;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.math.*;
|
||||
|
||||
/**
|
||||
* 数据别名 查询请求业务对象
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "DataAliasQueryDTO", description = "数据别名 查询请求业务对象")
|
||||
public class DataAliasQueryDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "数据id")
|
||||
private Long relId;
|
||||
|
||||
@Size(max = 32)
|
||||
@Schema(description = "数据类型")
|
||||
private String type;
|
||||
|
||||
@Size(max = 32)
|
||||
@Schema(description = "别名")
|
||||
private String alias;
|
||||
|
||||
}
|
||||
@@ -6,12 +6,9 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.math.*;
|
||||
|
||||
/**
|
||||
* 数据别名 更新请求业务对象
|
||||
@@ -24,15 +21,11 @@ import java.math.*;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Schema(name = "DataAliasUpdateDTO", description = "数据别名 更新请求业务对象")
|
||||
@Schema(name = "DataAliasUpdateDTO", description = "数据别名 创建请求业务对象")
|
||||
public class DataAliasUpdateDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@NotNull
|
||||
@Schema(description = "id")
|
||||
private Long id;
|
||||
|
||||
@NotNull
|
||||
@Schema(description = "用户id")
|
||||
private Long userId;
|
||||
@@ -41,12 +34,6 @@ public class DataAliasUpdateDTO implements Serializable {
|
||||
@Schema(description = "数据id")
|
||||
private Long relId;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 32)
|
||||
@Schema(description = "数据类型")
|
||||
private String type;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 32)
|
||||
@Schema(description = "别名")
|
||||
private String alias;
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.orion.ops.module.infra.enums;
|
||||
|
||||
/**
|
||||
* 数据别名类型
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023/12/18 21:51
|
||||
*/
|
||||
public enum DataAliasTypeEnum {
|
||||
|
||||
/**
|
||||
* 主机
|
||||
*/
|
||||
HOST,
|
||||
|
||||
;
|
||||
|
||||
public static DataAliasTypeEnum of(String type) {
|
||||
if (type == null) {
|
||||
return null;
|
||||
}
|
||||
for (DataAliasTypeEnum value : values()) {
|
||||
if (value.name().equals(type)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,165 +1,67 @@
|
||||
// package com.orion.ops.module.infra.api.impl;
|
||||
//
|
||||
// import com.alibaba.fastjson.JSON;
|
||||
// import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
// import com.orion.lang.utils.collect.Lists;
|
||||
// import com.orion.ops.framework.common.constant.ErrorMessage;
|
||||
// import com.orion.ops.framework.common.utils.Valid;
|
||||
// import com.orion.ops.module.infra.entity.vo.*;
|
||||
// import com.orion.ops.module.infra.entity.request.data.*;
|
||||
// import com.orion.ops.module.infra.convert.*;
|
||||
// import com.orion.ops.module.infra.entity.dto.*;
|
||||
// import com.orion.ops.module.infra.define.cache.*;
|
||||
// import com.orion.ops.module.infra.define.operator.*;
|
||||
// import com.orion.ops.module.infra.api.*;
|
||||
// import com.orion.ops.module.infra.api.impl.*;
|
||||
// import com.orion.ops.module.infra.entity.dto.data.*;
|
||||
// import com.orion.ops.module.infra.convert.*;
|
||||
// import com.orion.ops.module.infra.entity.domain.DataAliasDO;
|
||||
// import com.orion.ops.module.infra.dao.DataAliasDAO;
|
||||
// import com.orion.ops.module.infra.service.DataAliasService;
|
||||
// import lombok.extern.slf4j.Slf4j;
|
||||
// import org.springframework.stereotype.Service;
|
||||
//
|
||||
// import javax.annotation.Resource;
|
||||
// import java.util.ArrayList;
|
||||
// import java.util.List;
|
||||
// import java.util.stream.Collectors;
|
||||
//
|
||||
// /**
|
||||
// * 数据别名 对外服务实现类
|
||||
// *
|
||||
// * @author Jiahang Li
|
||||
// * @version 1.0.0
|
||||
// * @since 2023-12-18 17:37
|
||||
// */
|
||||
// @Slf4j
|
||||
// @Service
|
||||
// public class DataAliasApiImpl implements DataAliasApi {
|
||||
//
|
||||
// @Resource
|
||||
// private DataAliasService dataAliasService;
|
||||
//
|
||||
// @Resource
|
||||
// private DataAliasDAO dataAliasDAO;
|
||||
//
|
||||
// @Override
|
||||
// public Long createDataAlias(DataAliasCreateDTO dto) {
|
||||
// log.info("DataAliasApi.createDataAlias dto: {}", JSON.toJSONString(dto));
|
||||
// Valid.valid(dto);
|
||||
// // 转换
|
||||
// DataAliasCreateRequest request = DataAliasProviderConvert.MAPPER.toRequest(dto);
|
||||
// // 创建
|
||||
// return dataAliasService.createDataAlias(request);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer updateDataAliasById(DataAliasUpdateDTO dto) {
|
||||
// log.info("DataAliasApi.updateDataAliasById dto: {}", JSON.toJSONString(dto));
|
||||
// Valid.valid(dto);
|
||||
// // 转换
|
||||
// DataAliasUpdateRequest request = DataAliasProviderConvert.MAPPER.toRequest(dto);
|
||||
// // 修改
|
||||
// return dataAliasService.updateDataAliasById(request);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @Override
|
||||
// public DataAliasDTO getDataAliasById(Long id) {
|
||||
// log.info("DataAliasApi.getDataAliasById id: {}", id);
|
||||
// Valid.notNull(id, ErrorMessage.ID_MISSING);
|
||||
// // 修改
|
||||
// DataAliasDO record = dataAliasDAO.selectById(id);
|
||||
// if (record == null) {
|
||||
// return null;
|
||||
// }
|
||||
// // 转换
|
||||
// return DataAliasProviderConvert.MAPPER.to(record);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<DataAliasDTO> getDataAliasByIdList(List<Long> idList) {
|
||||
// log.info("DataAliasApi.getDataAliasByIdList idList: {}", idList);
|
||||
// if (Lists.isEmpty(idList)) {
|
||||
// return new ArrayList<>();
|
||||
// }
|
||||
// // 查询
|
||||
// List<DataAliasDO> rows = dataAliasDAO.selectBatchIds(idList);
|
||||
// // 转换
|
||||
// return DataAliasProviderConvert.MAPPER.toList(rows);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<DataAliasDTO> getDataAliasList(DataAliasQueryDTO dto) {
|
||||
// log.info("DataAliasApi.getDataAliasList dto: {}", JSON.toJSONString(dto));
|
||||
// Valid.valid(dto);
|
||||
// // 条件
|
||||
// LambdaQueryWrapper<DataAliasDO> wrapper = this.buildQueryWrapper(dto);
|
||||
// // 查询
|
||||
// return dataAliasDAO.of(wrapper).list(DataAliasProviderConvert.MAPPER::to);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<DataAliasDTO> getDataAliasListByCache() {
|
||||
// return dataAliasService.getDataAliasListByCache()
|
||||
// .stream()
|
||||
// .map(DataAliasProviderConvert.MAPPER::to)
|
||||
// .collect(Collectors.toList());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Long getDataAliasCount(DataAliasQueryDTO dto) {
|
||||
// log.info("DataAliasApi.getDataAliasCount dto: {}", JSON.toJSONString(dto));
|
||||
// Valid.valid(dto);
|
||||
// // 条件
|
||||
// LambdaQueryWrapper<DataAliasDO> wrapper = this.buildQueryWrapper(dto);
|
||||
// // 查询
|
||||
// return dataAliasDAO.selectCount(wrapper);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer deleteDataAliasById(Long id) {
|
||||
// log.info("DataAliasApi.deleteDataAliasById id: {}", id);
|
||||
// Valid.notNull(id, ErrorMessage.ID_MISSING);
|
||||
// // 删除
|
||||
// Integer effect = dataAliasService.deleteDataAliasById(id);
|
||||
// log.info("DataAliasApi.deleteDataAliasById id: {}, effect: {}", id, effect);
|
||||
// return effect;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer deleteDataAliasByIdList(List<Long> idList) {
|
||||
// log.info("DataAliasApi.deleteDataAliasByIdList idList: {}", idList);
|
||||
// Valid.notEmpty(idList, ErrorMessage.ID_MISSING);
|
||||
// // 删除
|
||||
// Integer effect = dataAliasService.deleteDataAliasByIdList(idList);
|
||||
// log.info("DataAliasApi.deleteDataAliasByIdList effect: {}", effect);
|
||||
// return effect;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer deleteDataAlias(DataAliasQueryDTO dto) {
|
||||
// log.info("DataAliasApi.deleteDataAlias dto: {}", JSON.toJSONString(dto));
|
||||
// Valid.valid(dto);
|
||||
// // 删除
|
||||
// Integer effect = dataAliasService.deleteDataAlias(DataAliasProviderConvert.MAPPER.toRequest(dto));
|
||||
// log.info("DataAliasApi.deleteDataAlias effect: {}", effect);
|
||||
// return effect;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 构建查询 wrapper
|
||||
// *
|
||||
// * @param dto dto
|
||||
// * @return wrapper
|
||||
// */
|
||||
// private LambdaQueryWrapper<DataAliasDO> buildQueryWrapper(DataAliasQueryDTO dto) {
|
||||
// return dataAliasDAO.wrapper()
|
||||
// .eq(DataAliasDO::getId, dto.getId())
|
||||
// .eq(DataAliasDO::getUserId, dto.getUserId())
|
||||
// .eq(DataAliasDO::getRelId, dto.getRelId())
|
||||
// .eq(DataAliasDO::getType, dto.getType())
|
||||
// .eq(DataAliasDO::getAlias, dto.getAlias());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
package com.orion.ops.module.infra.api.impl;
|
||||
|
||||
import com.orion.ops.framework.common.utils.Valid;
|
||||
import com.orion.ops.module.infra.api.DataAliasApi;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO;
|
||||
import com.orion.ops.module.infra.entity.request.data.DataAliasUpdateRequest;
|
||||
import com.orion.ops.module.infra.enums.DataAliasTypeEnum;
|
||||
import com.orion.ops.module.infra.service.DataAliasService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/**
|
||||
* 数据别名 对外服务实现类
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class DataAliasApiImpl implements DataAliasApi {
|
||||
|
||||
@Resource
|
||||
private DataAliasService dataAliasService;
|
||||
|
||||
@Override
|
||||
public Integer updateDataAlias(DataAliasUpdateDTO dto, DataAliasTypeEnum type) {
|
||||
Valid.valid(dto);
|
||||
DataAliasUpdateRequest update = DataAliasUpdateRequest.builder()
|
||||
.userId(dto.getUserId())
|
||||
.type(type.name())
|
||||
.relId(dto.getRelId())
|
||||
.alias(dto.getAlias())
|
||||
.build();
|
||||
return dataAliasService.updateDataAlias(update);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDataAlias(Long userId, DataAliasTypeEnum type, Long relId) {
|
||||
Valid.allNotNull(userId, relId);
|
||||
return dataAliasService.getDataAlias(userId, type.name(), relId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, String> getDataAlias(Long userId, DataAliasTypeEnum type) {
|
||||
Valid.notNull(userId);
|
||||
return dataAliasService.getDataAlias(userId, type.name());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Future<Map<Long, String>> getDataAliasAsync(Long userId, DataAliasTypeEnum type) {
|
||||
Valid.notNull(userId);
|
||||
return CompletableFuture.completedFuture(dataAliasService.getDataAlias(userId, type.name()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteByRelId(DataAliasTypeEnum type, Long relId) {
|
||||
Valid.notNull(relId);
|
||||
return dataAliasService.deleteByRelId(type.name(), relId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.orion.ops.module.infra.convert;
|
||||
|
||||
import com.orion.ops.module.infra.entity.domain.DataAliasDO;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasDTO;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasQueryDTO;
|
||||
import com.orion.ops.module.infra.entity.dto.data.DataAliasUpdateDTO;
|
||||
import com.orion.ops.module.infra.entity.request.data.DataAliasUpdateRequest;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 数据别名 对外服务对象转换器
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Mapper
|
||||
public interface DataAliasProviderConvert {
|
||||
|
||||
DataAliasProviderConvert MAPPER = Mappers.getMapper(DataAliasProviderConvert.class);
|
||||
|
||||
DataAliasDO to(DataAliasDTO dto);
|
||||
|
||||
DataAliasDTO to(DataAliasDO domain);
|
||||
|
||||
DataAliasDO to(DataAliasQueryDTO domain);
|
||||
|
||||
DataAliasDO to(DataAliasUpdateDTO update);
|
||||
|
||||
DataAliasUpdateRequest toRequest(DataAliasUpdateDTO request);
|
||||
|
||||
List<DataAliasDTO> toList(List<DataAliasDO> list);
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.orion.ops.module.infra.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.orion.ops.framework.mybatis.core.mapper.IMapper;
|
||||
import com.orion.ops.module.infra.entity.domain.DataAliasDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -14,4 +15,16 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper
|
||||
public interface DataAliasDAO extends IMapper<DataAliasDO> {
|
||||
|
||||
/**
|
||||
* 通过 userId 删除
|
||||
*
|
||||
* @param userId userId
|
||||
* @return effect
|
||||
*/
|
||||
default int deleteByUserId(Long userId) {
|
||||
LambdaQueryWrapper<DataAliasDO> wrapper = this.lambda()
|
||||
.eq(DataAliasDO::getUserId, userId);
|
||||
return this.delete(wrapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
package com.orion.ops.module.infra.define.operator;
|
||||
|
||||
import com.orion.ops.framework.biz.operator.log.core.annotation.Module;
|
||||
import com.orion.ops.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
|
||||
import com.orion.ops.framework.biz.operator.log.core.model.OperatorType;
|
||||
|
||||
import static com.orion.ops.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
|
||||
|
||||
/**
|
||||
* 数据别名 操作日志类型
|
||||
*
|
||||
* @author Jiahang Li
|
||||
* @version 1.0.0
|
||||
* @since 2023-12-18 17:37
|
||||
*/
|
||||
@Module("infra:data-alias")
|
||||
public class DataAliasOperatorType extends InitializingOperatorTypes {
|
||||
|
||||
public static final String CREATE = "data-alias:create";
|
||||
|
||||
public static final String UPDATE = "data-alias:update";
|
||||
|
||||
public static final String DELETE = "data-alias:delete";
|
||||
|
||||
@Override
|
||||
public OperatorType[] types() {
|
||||
return new OperatorType[]{
|
||||
new OperatorType(L, CREATE, "创建数据别名"),
|
||||
new OperatorType(M, UPDATE, "更新数据别名"),
|
||||
new OperatorType(H, DELETE, "删除数据别名"),
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -40,7 +40,6 @@ public class DataAliasUpdateRequest implements Serializable {
|
||||
@Schema(description = "数据类型")
|
||||
private String type;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 32)
|
||||
@Schema(description = "别名")
|
||||
private String alias;
|
||||
|
||||
@@ -46,7 +46,7 @@ public interface DataAliasService {
|
||||
* @param userId userId
|
||||
* @return effect
|
||||
*/
|
||||
Integer deleteDataAliasByUserId(Long userId);
|
||||
Integer deleteByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 删除数据别名
|
||||
@@ -55,6 +55,6 @@ public interface DataAliasService {
|
||||
* @param relId relId
|
||||
* @return effect
|
||||
*/
|
||||
Integer deleteDataAliasByRelId(String type, Long relId);
|
||||
Integer deleteByRelId(String type, Long relId);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.orion.ops.module.infra.service.impl;
|
||||
|
||||
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.redis.core.utils.RedisMaps;
|
||||
@@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -31,18 +33,6 @@ public class DataAliasServiceImpl implements DataAliasService {
|
||||
|
||||
@Resource
|
||||
private DataAliasDAO dataAliasDAO;
|
||||
// @Override
|
||||
// public Integer deleteDataAlias(DataAliasQueryRequest request) {
|
||||
// log.info("DataAliasService.deleteDataAlias request: {}", JSON.toJSONString(request));
|
||||
// // 条件
|
||||
// LambdaQueryWrapper<DataAliasDO> wrapper = this.buildQueryWrapper(request);
|
||||
// // 删除
|
||||
// int effect = dataAliasDAO.delete(wrapper);
|
||||
// log.info("DataAliasService.deleteDataAlias effect: {}", effect);
|
||||
// // 删除缓存
|
||||
// RedisMaps.delete(DataAliasCacheKeyDefine.DATA_ALIAS);
|
||||
// return effect;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public Integer updateDataAlias(DataAliasUpdateRequest request) {
|
||||
@@ -77,7 +67,7 @@ public class DataAliasServiceImpl implements DataAliasService {
|
||||
|
||||
@Override
|
||||
public String getDataAlias(Long userId, String type, Long relId) {
|
||||
return null;
|
||||
return this.getDataAlias(userId, type).get(relId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,7 +88,6 @@ public class DataAliasServiceImpl implements DataAliasService {
|
||||
DataAliasDO::getAlias,
|
||||
Functions.right())
|
||||
);
|
||||
|
||||
// 设置屏障 防止穿透
|
||||
CacheBarriers.MAP.check(entities);
|
||||
// 设置缓存
|
||||
@@ -111,13 +100,36 @@ public class DataAliasServiceImpl implements DataAliasService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteDataAliasByUserId(Long userId) {
|
||||
return null;
|
||||
public Integer deleteByUserId(Long userId) {
|
||||
// 删除
|
||||
int effect = dataAliasDAO.deleteByUserId(userId);
|
||||
// 删除缓存
|
||||
RedisMaps.scanKeysDelete(DataAliasCacheKeyDefine.DATA_ALIAS.format(userId, "*"));
|
||||
return effect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteDataAliasByRelId(String type, Long relId) {
|
||||
return null;
|
||||
public Integer deleteByRelId(String type, Long relId) {
|
||||
LambdaQueryWrapper<DataAliasDO> wrapper = dataAliasDAO.lambda()
|
||||
.eq(DataAliasDO::getType, type)
|
||||
.eq(DataAliasDO::getRelId, relId);
|
||||
// 查询
|
||||
List<Long> userIdList = dataAliasDAO.selectList(wrapper)
|
||||
.stream()
|
||||
.map(DataAliasDO::getUserId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (userIdList.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
// 删除
|
||||
int effect = dataAliasDAO.delete(wrapper);
|
||||
// 删除缓存
|
||||
List<String> keys = userIdList.stream()
|
||||
.map(s -> DataAliasCacheKeyDefine.DATA_ALIAS.format(s, type))
|
||||
.collect(Collectors.toList());
|
||||
RedisMaps.delete(keys);
|
||||
return effect;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -69,6 +69,9 @@ public class SystemUserServiceImpl implements SystemUserService {
|
||||
@Resource
|
||||
private DataPermissionService dataPermissionService;
|
||||
|
||||
@Resource
|
||||
private DataAliasService dataAliasService;
|
||||
|
||||
@Override
|
||||
public Long createSystemUser(SystemUserCreateRequest request) {
|
||||
// 转换
|
||||
@@ -246,6 +249,8 @@ public class SystemUserServiceImpl implements SystemUserService {
|
||||
preferenceService.deletePreferenceByUserId(id);
|
||||
// 删除用户数据权限
|
||||
dataPermissionService.deleteByUserId(id);
|
||||
// 删除用户数据别名
|
||||
dataAliasService.deleteByUserId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user