mirror of
https://github.com/zfile-dev/zfile.git
synced 2025-04-19 05:34:52 +00:00
✨ 驱动器增加 "启用/禁用" 和 "排序" 功能.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<DriveConfig> list() {
|
||||
return driverConfigRepository.findAll();
|
||||
Sort sort = new Sort(Sort.Direction.ASC,"orderNum");
|
||||
return driverConfigRepository.findAll(sort);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取所有已启用的驱动器列表
|
||||
*
|
||||
* @return 已启用的驱动器列表
|
||||
*/
|
||||
public List<DriveConfig> listOnlyEnable() {
|
||||
DriveConfig driveConfig = new DriveConfig();
|
||||
driveConfig.setEnable(true);
|
||||
Example<DriveConfig> 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;
|
||||
|
||||
Reference in New Issue
Block a user