mirror of
https://github.com/zfile-dev/zfile.git
synced 2025-04-19 05:34:52 +00:00
🐛 修复切换存储器 ID 时,为级联修改或清理缓存、过滤器、短链的问题
This commit is contained in:
@@ -2,6 +2,8 @@ package im.zhaojun.zfile.repository;
|
||||
|
||||
import im.zhaojun.zfile.model.entity.FilterConfig;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
@@ -26,4 +28,17 @@ public interface FilterConfigRepository extends JpaRepository<FilterConfig, Inte
|
||||
*/
|
||||
void deleteByDriveId(Integer driveId);
|
||||
|
||||
|
||||
/**
|
||||
* 更新驱动器 ID 对应的参数设置为新的驱动器 ID
|
||||
*
|
||||
* @param updateId
|
||||
* 驱动器原 ID
|
||||
*
|
||||
* @param newId
|
||||
* 驱动器新 ID
|
||||
*/
|
||||
@Modifying
|
||||
@Query(value="update FILTER_CONFIG set driveId = :newId where driveId = :updateId")
|
||||
void updateDriveId(Integer updateId, Integer newId);
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@@ -57,4 +58,18 @@ public interface ShortLinkConfigRepository extends JpaRepository<ShortLinkConfig
|
||||
* 短链 URL
|
||||
*/
|
||||
ShortLinkConfig findByUrl(String url);
|
||||
|
||||
|
||||
/**
|
||||
* 更新驱动器 ID
|
||||
*
|
||||
* @param updateSubPath
|
||||
* 原路径部分名称
|
||||
*
|
||||
* @param newSubPath
|
||||
* 修改后路径部分名称
|
||||
*/
|
||||
@Modifying
|
||||
@Query(value="update SHORT_LINK set url = replace(url, :updateSubPath, :newSubPath)")
|
||||
void updateUrlDriveId(String updateSubPath, String newSubPath);
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package im.zhaojun.zfile.service;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import im.zhaojun.zfile.cache.ZFileCache;
|
||||
import im.zhaojun.zfile.context.DriveContext;
|
||||
@@ -13,6 +14,8 @@ import im.zhaojun.zfile.model.entity.DriveConfig;
|
||||
import im.zhaojun.zfile.model.entity.StorageConfig;
|
||||
import im.zhaojun.zfile.model.enums.StorageTypeEnum;
|
||||
import im.zhaojun.zfile.repository.DriverConfigRepository;
|
||||
import im.zhaojun.zfile.repository.FilterConfigRepository;
|
||||
import im.zhaojun.zfile.repository.ShortLinkConfigRepository;
|
||||
import im.zhaojun.zfile.repository.StorageConfigRepository;
|
||||
import im.zhaojun.zfile.service.base.AbstractBaseFileService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -42,6 +45,12 @@ public class DriveConfigService {
|
||||
@Resource
|
||||
private StorageConfigRepository storageConfigRepository;
|
||||
|
||||
@Resource
|
||||
private FilterConfigRepository filterConfigRepository;
|
||||
|
||||
@Resource
|
||||
private ShortLinkConfigRepository shortLinkConfigRepository;
|
||||
|
||||
@Resource
|
||||
private DriveContext driveContext;
|
||||
|
||||
@@ -248,6 +257,8 @@ public class DriveConfigService {
|
||||
public void updateId(Integer updateId, Integer newId) {
|
||||
driverConfigRepository.updateId(updateId, newId);
|
||||
storageConfigRepository.updateDriveId(updateId, newId);
|
||||
filterConfigRepository.updateDriveId(updateId, newId);
|
||||
shortLinkConfigRepository.updateUrlDriveId("/directlink/" + updateId, "/directlink/" + newId);
|
||||
driveContext.updateDriveId(updateId, newId);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user