package com.iailab.module.infra.controller.admin.monitordisk; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; import java.util.*; import java.io.IOException; import com.iailab.framework.common.pojo.PageParam; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.util.object.BeanUtils; import static com.iailab.framework.common.pojo.CommonResult.success; import com.iailab.framework.excel.core.util.ExcelUtils; import com.iailab.framework.apilog.core.annotation.ApiAccessLog; import static com.iailab.framework.apilog.core.enums.OperateTypeEnum.*; import com.iailab.module.infra.controller.admin.monitordisk.vo.*; import com.iailab.module.infra.dal.dataobject.monitordisk.MonitorDiskDO; import com.iailab.module.infra.service.monitordisk.MonitorDiskService; @Tag(name = "管理后台 - 磁盘监控日志") @RestController @RequestMapping("/infra/monitor-disk") @Validated public class MonitorDiskController { @Resource private MonitorDiskService monitorDiskService; @PostMapping("/create") @Operation(summary = "创建磁盘监控日志") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:create')") public CommonResult createMonitorDisk(@Valid @RequestBody MonitorDiskSaveReqVO createReqVO) { return success(monitorDiskService.createMonitorDisk(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新磁盘监控日志") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:update')") public CommonResult updateMonitorDisk(@Valid @RequestBody MonitorDiskSaveReqVO updateReqVO) { monitorDiskService.updateMonitorDisk(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除磁盘监控日志") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('infra:monitor-disk:delete')") public CommonResult deleteMonitorDisk(@RequestParam("id") Long id) { monitorDiskService.deleteMonitorDisk(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得磁盘监控日志") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult getMonitorDisk(@RequestParam("id") Long id) { MonitorDiskDO monitorDisk = monitorDiskService.getMonitorDisk(id); return success(BeanUtils.toBean(monitorDisk, MonitorDiskRespVO.class)); } @GetMapping("/page") @Operation(summary = "获得磁盘监控日志分页") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult> getMonitorDiskPage(@Valid MonitorDiskPageReqVO pageReqVO) { PageResult pageResult = monitorDiskService.getMonitorDiskPage(pageReqVO); return success(BeanUtils.toBean(pageResult, MonitorDiskRespVO.class)); } @GetMapping("/getMonitorDiskList") @Operation(summary = "获得磁盘监控日志列表") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult>>>> getMonitorMemList(@Valid MonitorDiskReqVO reqVO) { List>>> result = monitorDiskService.getMonitorDiskList(reqVO); return success(result); } @GetMapping("/getAllHost") @Operation(summary = "获得内存监控日志统计") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult> getAllHost() { List hosts = monitorDiskService.getAllHost(); return success(hosts); } @GetMapping("/getAllIp") @Operation(summary = "获得内存监控日志统计") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult> getAllIp() { List ips = monitorDiskService.getAllIp(); return success(ips); } @GetMapping("/getMonitorDiskInfo") @Operation(summary = "获得磁盘监控日志列表") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:query')") public CommonResult>> getMonitorDiskInfo(@Valid MonitorDiskReqVO reqVO) { List> result = monitorDiskService.getMonitorDiskInfo(reqVO); return success(result); } @GetMapping("/export-excel") @Operation(summary = "导出磁盘监控日志 Excel") @PreAuthorize("@ss.hasPermission('infra:monitor-disk:export')") @ApiAccessLog(operateType = EXPORT) public void exportMonitorDiskExcel(@Valid MonitorDiskPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = monitorDiskService.getMonitorDiskPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "磁盘监控日志.xls", "数据", MonitorDiskRespVO.class, BeanUtils.toBean(list, MonitorDiskRespVO.class)); } }