类 BackupController

java.lang.Object
net.sohelp.boot.admin.core.base.BaseController
net.sohelp.boot.dev.web.ops.backup.BackupController

@RestController("dev-ops-backup") @RequestMapping("/dev/ops/backup") public class BackupController extends BaseController
备份控制器 提供数据库备份与恢复接口,用于管理系统中数据库备份与恢复功能。 包含备份的触发、停止、列表查询、下载、删除以及恢复等操作。
从以下版本开始:
2026/01/01 21:23
作者:
AaronFung
  • 构造器详细资料

    • BackupController

      public BackupController()
  • 方法详细资料

    • backup

      @PostMapping("/backup") @Permission("ADMIN") public ApiResult<String> backup(@RequestParam(defaultValue="MANUAL") String type)
      触发备份任务 启动一个新的线程执行数据库和资源的备份操作。
      参数:
      type - 备份类型:MANUAL(手动), AUTO(自动), BEFORE_RESTORE(恢复前)
      返回:
      返回操作结果,成功提示"备份任务已启动"
    • stop

      @PostMapping("/stop") @Permission("ADMIN") public ApiResult<String> stop(@RequestBody Map<String,String> body)
      停止备份/恢复任务 根据任务ID停止正在运行的备份或恢复任务。 会尝试终止关联的进程并中断执行线程。
      参数:
      body - 请求体,包含任务ID (key: "id")
      返回:
      返回操作结果,成功提示"停止指令已发送"
    • page

      @GetMapping("/page") @Permission("ADMIN") public ApiResult<Pager<Map<String,Object>>> page(@RequestParam Map<String,Object> params)
      获取备份列表分页数据 根据条件查询备份记录,支持按类型、时间范围过滤。
      参数:
      params - 查询参数: - page: 当前页码 (默认1) - limit: 每页条数 (默认20) - type: 备份类型 - startTime: 开始时间 - endTime: 结束时间
      返回:
      返回分页数据 Pager 对象
    • download

      @GetMapping("/download") @Permission("ADMIN") public void download(@RequestParam String id, jakarta.servlet.http.HttpServletResponse response) throws IOException
      下载备份文件 根据ID下载对应的备份文件(ZIP格式)。
      参数:
      id - 备份记录ID
      response - HTTP响应对象,用于写入文件流
      抛出:
      IOException - IO异常
    • delete

      @PostMapping("/delete") @Permission("ADMIN") public ApiResult<String> delete(@RequestBody Map<String,String> body)
      删除备份记录 逻辑删除数据库记录,并物理删除对应的备份文件。
      参数:
      body - 请求体,包含备份记录ID (key: "id")
      返回:
      返回操作结果
    • getConfig

      @GetMapping("/config") @Permission("ADMIN") public ApiResult<Map<String,Object>> getConfig()
      获取数据库配置信息 用于前端显示数据库连接信息(已脱敏)。
      返回:
      返回包含数据库配置的Map对象
    • restore

      @PostMapping("/restore") @Permission("ADMIN") public ApiResult<String> restore(@RequestParam("file") org.springframework.web.multipart.MultipartFile file) throws IOException
      上传并恢复备份 接收上传的备份文件并执行恢复操作。
      参数:
      file - 上传的备份文件 (sql或zip)
      返回:
      返回操作结果,成功提示"恢复任务已启动"
      抛出:
      IOException - IO异常
    • restoreFromRecord

      @PostMapping("/restoreFromRecord") @Permission("ADMIN") public ApiResult<String> restoreFromRecord(@RequestBody Map<String,String> body)
      从已有记录恢复 根据备份记录ID查找对应的备份文件并执行恢复。
      参数:
      body - 请求体,包含备份记录ID (key: "id")
      返回:
      返回操作结果,成功提示"恢复任务已启动"
    • saveConfig

      @PostMapping("/saveConfig") @Permission("ADMIN") public ApiResult<String> saveConfig(@RequestBody Map<String,Object> config) throws Exception
      保存备份配置 更新系统的备份策略配置,如自动备份频率、时间等。
      参数:
      config - 包含配置项的Map对象
      返回:
      返回操作结果,成功提示"保存成功"
      抛出:
      Exception - 保存过程中可能出现的异常
    • checkAndRunBackupTask

      @Scheduled(fixedDelay=60000L) public void checkAndRunBackupTask()
      定时检查并执行自动备份任务 每分钟触发一次,检查是否满足自动备份条件(频率、时间)。 如果满足条件且当天未执行过,则触发自动备份。