diff --git a/src/main/java/im/zhaojun/zfile/context/DriveContext.java b/src/main/java/im/zhaojun/zfile/context/DriveContext.java index 8894785..7525a56 100644 --- a/src/main/java/im/zhaojun/zfile/context/DriveContext.java +++ b/src/main/java/im/zhaojun/zfile/context/DriveContext.java @@ -50,7 +50,6 @@ public class DriveContext implements ApplicationContextAware { try { init(driveConfig.getId()); log.info("启动时初始化驱动器成功, 驱动器信息: {}", JSON.toJSONString(driveConfig)); - throw new RuntimeException("xx"); } catch (Exception e) { log.error("启动时初始化驱动器失败, 驱动器信息: {}", JSON.toJSONString(driveConfig), e); } diff --git a/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java b/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java index 7f9bdd4..09f5612 100644 --- a/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java +++ b/src/main/java/im/zhaojun/zfile/controller/admin/DriveController.java @@ -59,7 +59,7 @@ public class DriveController { */ @PostMapping("/drive") public ResultBean saveDriveItem(@RequestBody DriveConfigDTO driveConfigDTO) { - driveConfigService.save(driveConfigDTO); + driveConfigService.saveDriveConfigDTO(driveConfigDTO); return ResultBean.success(); } @@ -76,4 +76,35 @@ public class DriveController { return ResultBean.success(); } + + /** + * 启用驱动器 + * + * @param id + * 驱动器 ID + */ + @PostMapping("/drive/{id}/enable") + public ResultBean enable(@PathVariable("id") Integer id) { + DriveConfig driveConfig = driveConfigService.findById(id); + driveConfig.setEnable(true); + driveConfigService.saveOrUpdate(driveConfig); + return ResultBean.success(); + } + + + /** + * 停止驱动器 + * + * @param id + * 驱动器 ID + */ + @PostMapping("/drive/{id}/disable") + public ResultBean disable(@PathVariable("id") Integer id) { + DriveConfig driveConfig = driveConfigService.findById(id); + driveConfig.setEnable(false); + driveConfigService.saveOrUpdate(driveConfig); + return ResultBean.success(); + } + + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java b/src/main/java/im/zhaojun/zfile/controller/home/FileController.java index f1644a1..740b536 100644 --- a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java +++ b/src/main/java/im/zhaojun/zfile/controller/home/FileController.java @@ -53,13 +53,13 @@ public class FileController { /** - * 获取所有驱动器 + * 获取所有已启用的驱动器 * - * @return 所有驱动器 + * @return 所有已启用驱动器 */ @GetMapping("/drive/list") public ResultBean drives() { - return ResultBean.success(driveConfigService.list()); + return ResultBean.success(driveConfigService.listOnlyEnable()); } /** diff --git a/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java index 980d197..2663718 100644 --- a/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java +++ b/src/main/java/im/zhaojun/zfile/model/dto/DriveConfigDTO.java @@ -18,6 +18,8 @@ public class DriveConfigDTO { @JsonDeserialize(using = StorageTypeEnumJsonDeSerializerConvert.class) private StorageTypeEnum type; + private Boolean enable; + private boolean enableCache; private boolean autoRefreshCache; @@ -28,6 +30,8 @@ public class DriveConfigDTO { private boolean searchContainEncryptedFile; + private Integer orderNum; + private StorageStrategyConfig storageStrategyConfig; } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java b/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java index 611513a..718eb1b 100644 --- a/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java +++ b/src/main/java/im/zhaojun/zfile/model/entity/DriveConfig.java @@ -21,6 +21,8 @@ public class DriveConfig { @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; + private Boolean enable; + private String name; private Boolean enableCache; @@ -35,4 +37,6 @@ public class DriveConfig { private Boolean searchContainEncryptedFile; + private Integer orderNum; + } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java b/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java index 78c2b47..1affbf4 100644 --- a/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java +++ b/src/main/java/im/zhaojun/zfile/service/DriveConfigService.java @@ -16,6 +16,8 @@ import im.zhaojun.zfile.repository.StorageConfigRepository; import im.zhaojun.zfile.service.base.AbstractBaseFileService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.data.domain.Example; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -53,10 +55,24 @@ public class DriveConfigService { * @return 驱动器列表 */ public List list() { - return driverConfigRepository.findAll(); + Sort sort = new Sort(Sort.Direction.ASC,"orderNum"); + return driverConfigRepository.findAll(sort); } + /** + * 获取所有已启用的驱动器列表 + * + * @return 已启用的驱动器列表 + */ + public List listOnlyEnable() { + DriveConfig driveConfig = new DriveConfig(); + driveConfig.setEnable(true); + Example example = Example.of(driveConfig); + Sort sort = new Sort(Sort.Direction.ASC,"orderNum"); + return driverConfigRepository.findAll(example, sort); + } + /** * 获取指定驱动器设置 * @@ -123,13 +139,23 @@ public class DriveConfigService { } + /** + * 新增或设置驱动器设置 + * @param driveConfig 驱动器设置 + * @return 保存后的驱动器设置 + */ + public DriveConfig saveOrUpdate(DriveConfig driveConfig) { + return driverConfigRepository.save(driveConfig); + } + + /** * 保存驱动器基本信息及其对应的参数设置 * * @param driveConfigDTO 驱动器 DTO 对象 */ @Transactional(rollbackFor = Exception.class) - public void save(DriveConfigDTO driveConfigDTO) { + public void saveDriveConfigDTO(DriveConfigDTO driveConfigDTO) { // 判断是新增还是修改 boolean updateFlag = driveConfigDTO.getId() != null;