驱动器增加 "启用/禁用" 和 "排序" 功能.

This commit is contained in:
zhaojun1998
2020-06-27 21:12:54 +08:00
parent 766a047ee1
commit 7e878af06c
6 changed files with 71 additions and 7 deletions

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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());
}
/**

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;