refactor: 修改主机权限.

This commit is contained in:
lijiahang
2023-11-23 11:28:35 +08:00
parent fde01f5c97
commit 1188502bb6
20 changed files with 357 additions and 519 deletions

View File

@@ -5,17 +5,13 @@ import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog;
import com.orion.ops.framework.log.core.annotation.IgnoreLog;
import com.orion.ops.framework.log.core.enums.IgnoreLogMode;
import com.orion.ops.framework.web.core.annotation.RestWrapper;
import com.orion.ops.module.asset.convert.HostGroupConvert;
import com.orion.ops.module.asset.define.operator.HostGroupOperatorType;
import com.orion.ops.module.asset.entity.request.host.HostGroupRelUpdateRequest;
import com.orion.ops.module.asset.entity.vo.HostGroupTreeVO;
import com.orion.ops.module.infra.api.DataGroupApi;
import com.orion.ops.module.infra.api.DataGroupRelApi;
import com.orion.ops.module.asset.service.HostGroupService;
import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupMoveDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupRenameDTO;
import com.orion.ops.module.infra.enums.DataGroupTypeEnum;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -45,67 +41,63 @@ import java.util.Set;
public class HostGroupController {
@Resource
private DataGroupApi dataGroupApi;
@Resource
private DataGroupRelApi dataGroupRelApi;
private HostGroupService hostGroupService;
@OperatorLog(HostGroupOperatorType.CREATE)
@PostMapping("/create")
@Operation(summary = "创建主机分组")
@Operation(summary = "创建主机分组 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host-group:create')")
public Long updateGroupHost(@Validated @RequestBody DataGroupCreateDTO request) {
return dataGroupApi.createDataGroup(DataGroupTypeEnum.HOST, request);
public Long createHostGroup(@Validated @RequestBody DataGroupCreateDTO request) {
return hostGroupService.createHostGroup(request);
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/tree")
@Operation(summary = "查询主机分组")
@Operation(summary = "查询主机分组 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host-group:query')")
public List<HostGroupTreeVO> queryHostGroup() {
List<DataGroupDTO> rows = dataGroupApi.getDataGroupTree(DataGroupTypeEnum.HOST);
return HostGroupConvert.MAPPER.toList(rows);
public List<HostGroupTreeVO> queryHostGroupTree() {
return hostGroupService.queryHostGroupTree();
}
@OperatorLog(HostGroupOperatorType.RENAME)
@PutMapping("/rename")
@Operation(summary = "修改名称")
@Operation(summary = "修改名称 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host-group:update')")
public Integer updateHostGroupName(@Validated @RequestBody DataGroupRenameDTO request) {
return dataGroupApi.renameDataGroup(request);
return hostGroupService.updateHostGroupName(request);
}
@OperatorLog(HostGroupOperatorType.MOVE)
@PutMapping("/move")
@Operation(summary = "移动位置")
@Operation(summary = "移动位置 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host-group:update')")
public Integer moveHostGroup(@Validated @RequestBody DataGroupMoveDTO request) {
return dataGroupApi.moveDataGroup(request);
return hostGroupService.moveHostGroup(request);
}
@OperatorLog(HostGroupOperatorType.DELETE)
@DeleteMapping("/delete")
@Operation(summary = "删除主机分组")
@Operation(summary = "删除主机分组 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host-group:delete')")
public Integer deleteHostGroup(@RequestParam("id") Long id) {
return dataGroupApi.deleteDataGroupById(id);
return hostGroupService.deleteHostGroup(id);
}
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/rel-list")
@Operation(summary = "查询分组主机")
@Operation(summary = "查询分组主机 - 管理")
@Parameter(name = "groupId", description = "groupId", required = true)
@PreAuthorize("@ss.hasPermission('asset:host-group:query')")
public Set<Long> queryHostGroupRel(@RequestParam("groupId") Long groupId) {
return dataGroupRelApi.getGroupRelIdByGroupId(DataGroupTypeEnum.HOST, groupId);
return hostGroupService.queryHostGroupRel(groupId);
}
@OperatorLog(HostGroupOperatorType.UPDATE_REL)
@PostMapping("/update-rel")
@Operation(summary = "修改分组主机")
@Operation(summary = "修改分组主机 - 管理")
@PreAuthorize("@ss.hasPermission('asset:host:update')")
public HttpWrapper<?> updateGroupHost(@Validated @RequestBody HostGroupRelUpdateRequest request) {
dataGroupRelApi.updateGroupRel(request.getGroupId(), request.getHostIdList());
public HttpWrapper<?> updateHostGroupRel(@Validated @RequestBody HostGroupRelUpdateRequest request) {
hostGroupService.updateHostGroupRel(request);
return HttpWrapper.ok();
}

View File

@@ -0,0 +1,75 @@
package com.orion.ops.module.asset.service;
import com.orion.ops.module.asset.entity.request.host.HostGroupRelUpdateRequest;
import com.orion.ops.module.asset.entity.vo.HostGroupTreeVO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupMoveDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupRenameDTO;
import java.util.List;
import java.util.Set;
/**
* 主机分组服务
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/11/23 10:59
*/
public interface HostGroupService {
/**
* 创建主机分组
*
* @param request request
* @return id
*/
Long createHostGroup(DataGroupCreateDTO request);
/**
* 查询主机分组树
*
* @return tree
*/
List<HostGroupTreeVO> queryHostGroupTree();
/**
* 更新主机分组名称
*
* @param request request
* @return effect
*/
Integer updateHostGroupName(DataGroupRenameDTO request);
/**
* 移动主机分组
*
* @param request request
* @return effect
*/
Integer moveHostGroup(DataGroupMoveDTO request);
/**
* 删除主机分组
*
* @param id id
* @return effect
*/
Integer deleteHostGroup(Long id);
/**
* 查询主机分组内主机
*
* @param groupId groupId
* @return hostId
*/
Set<Long> queryHostGroupRel(Long groupId);
/**
* 修改主机分组内主机
*
* @param request request
*/
void updateHostGroupRel(HostGroupRelUpdateRequest request);
}

View File

@@ -0,0 +1,83 @@
package com.orion.ops.module.asset.service.impl;
import com.orion.ops.module.asset.convert.HostGroupConvert;
import com.orion.ops.module.asset.entity.request.host.HostGroupRelUpdateRequest;
import com.orion.ops.module.asset.entity.vo.HostGroupTreeVO;
import com.orion.ops.module.asset.service.HostGroupService;
import com.orion.ops.module.infra.api.DataGroupApi;
import com.orion.ops.module.infra.api.DataGroupRelApi;
import com.orion.ops.module.infra.api.DataPermissionApi;
import com.orion.ops.module.infra.entity.dto.data.DataGroupCreateDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupMoveDTO;
import com.orion.ops.module.infra.entity.dto.data.DataGroupRenameDTO;
import com.orion.ops.module.infra.enums.DataGroupTypeEnum;
import com.orion.ops.module.infra.enums.DataPermissionTypeEnum;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Set;
/**
* 主机分组服务 实现类
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/11/23 10:59
*/
@Service
public class HostGroupServiceImpl implements HostGroupService {
@Resource
private DataGroupApi dataGroupApi;
@Resource
private DataGroupRelApi dataGroupRelApi;
@Resource
private DataPermissionApi dataPermissionApi;
@Override
public Long createHostGroup(DataGroupCreateDTO request) {
return dataGroupApi.createDataGroup(DataGroupTypeEnum.HOST, request);
}
@Override
public List<HostGroupTreeVO> queryHostGroupTree() {
List<DataGroupDTO> rows = dataGroupApi.getDataGroupTree(DataGroupTypeEnum.HOST);
return HostGroupConvert.MAPPER.toList(rows);
}
@Override
public Integer updateHostGroupName(DataGroupRenameDTO request) {
return dataGroupApi.renameDataGroup(request);
}
@Override
public Integer moveHostGroup(DataGroupMoveDTO request) {
return dataGroupApi.moveDataGroup(request);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer deleteHostGroup(Long id) {
// 删除主机分组
Integer effect = dataGroupApi.deleteDataGroupById(id);
// 删除数据权限
dataPermissionApi.deleteByRelId(DataPermissionTypeEnum.HOST_GROUP, id);
return effect;
}
@Override
public Set<Long> queryHostGroupRel(Long groupId) {
return dataGroupRelApi.getGroupRelIdByGroupId(DataGroupTypeEnum.HOST, groupId);
}
@Override
public void updateHostGroupRel(HostGroupRelUpdateRequest request) {
dataGroupRelApi.updateGroupRel(request.getGroupId(), request.getHostIdList());
}
}