diff --git a/src/main/java/im/zhaojun/common/config/GlobalScheduleTask.java b/src/main/java/im/zhaojun/common/config/GlobalScheduleTask.java index abfe390..bab79b3 100644 --- a/src/main/java/im/zhaojun/common/config/GlobalScheduleTask.java +++ b/src/main/java/im/zhaojun/common/config/GlobalScheduleTask.java @@ -1,15 +1,10 @@ package im.zhaojun.common.config; -import im.zhaojun.common.model.StorageConfig; -import im.zhaojun.common.model.constant.StorageConfigConstant; import im.zhaojun.common.model.enums.StorageTypeEnum; import im.zhaojun.common.service.AbstractFileService; import im.zhaojun.common.service.StorageConfigService; import im.zhaojun.common.service.SystemConfigService; -import im.zhaojun.onedrive.china.service.OneDriveChinaService; -import im.zhaojun.onedrive.china.service.OneDriveServiceChinaImpl; -import im.zhaojun.onedrive.common.model.OneDriveToken; -import im.zhaojun.onedrive.international.service.OneDriveService; +import im.zhaojun.onedrive.china.service.OneDriveChinaServiceImpl; import im.zhaojun.onedrive.international.service.OneDriveServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; @@ -18,7 +13,6 @@ import org.springframework.scheduling.annotation.Scheduled; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.Arrays; import java.util.Objects; /** @@ -33,10 +27,10 @@ public class GlobalScheduleTask { private StorageConfigService storageConfigService; @Resource - private OneDriveService oneDriveService; + private OneDriveServiceImpl oneDriveServiceImpl; @Resource - private OneDriveChinaService oneDriveChinaService; + private OneDriveChinaServiceImpl oneDriveChinaServiceImpl; @Resource private SystemConfigService systemConfigService; @@ -50,7 +44,7 @@ public class GlobalScheduleTask { AbstractFileService currentFileService = systemConfigService.getCurrentFileService(); if (!(currentFileService instanceof OneDriveServiceImpl - || currentFileService instanceof OneDriveServiceChinaImpl)) { + || currentFileService instanceof OneDriveChinaServiceImpl)) { log.debug("当前启用存储类型, 不是 OneDrive, 跳过自动刷新 AccessToken"); return; } @@ -77,27 +71,11 @@ public class GlobalScheduleTask { * 调用刷新 OneDrive Token */ public void refreshOneDriveToken(StorageTypeEnum storageType) { - - OneDriveToken refreshToken; if (Objects.equals(storageType, StorageTypeEnum.ONE_DRIVE_CHINA)) { - refreshToken = oneDriveChinaService.getRefreshToken(storageType); + oneDriveChinaServiceImpl.refreshOneDriveToken(); } else { - refreshToken = oneDriveService.getRefreshToken(storageType); + oneDriveServiceImpl.refreshOneDriveToken(); } - - - if (refreshToken.getAccessToken() == null || refreshToken.getRefreshToken() == null) { - return; - } - - StorageConfig accessTokenConfig = - storageConfigService.selectByTypeAndKey(storageType, StorageConfigConstant.ACCESS_TOKEN_KEY); - StorageConfig refreshTokenConfig = - storageConfigService.selectByTypeAndKey(storageType, StorageConfigConstant.REFRESH_TOKEN_KEY); - accessTokenConfig.setValue(refreshToken.getAccessToken()); - refreshTokenConfig.setValue(refreshToken.getRefreshToken()); - - storageConfigService.updateStorageConfig(Arrays.asList(accessTokenConfig, refreshTokenConfig)); log.info("刷新 {} key 时间: {}", storageType.getDescription(), LocalDateTime.now()); } } \ No newline at end of file diff --git a/src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaService.java b/src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaService.java deleted file mode 100644 index 98f7648..0000000 --- a/src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaService.java +++ /dev/null @@ -1,54 +0,0 @@ -package im.zhaojun.onedrive.china.service; - -import im.zhaojun.onedrive.common.service.AbstractOneDriveService; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -/** - * @author zhaojun - */ -@Service -public class OneDriveChinaService extends AbstractOneDriveService { - - @Value("${zfile.onedirve-china.clientId}") - private String clientId; - - @Value("${zfile.onedirve-china.redirectUri}") - private String redirectUri; - - @Value("${zfile.onedirve-china.clientSecret}") - private String clientSecret; - - @Value("${zfile.onedirve-china.scope}") - private String scope; - - @Override - public String getGraphEndPoint() { - return "microsoftgraph.chinacloudapi.cn"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.partner.microsoftonline.cn"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } -} diff --git a/src/main/java/im/zhaojun/onedrive/china/service/OneDriveServiceChinaImpl.java b/src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaServiceImpl.java similarity index 64% rename from src/main/java/im/zhaojun/onedrive/china/service/OneDriveServiceChinaImpl.java rename to src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaServiceImpl.java index f5a19d4..97f9987 100644 --- a/src/main/java/im/zhaojun/onedrive/china/service/OneDriveServiceChinaImpl.java +++ b/src/main/java/im/zhaojun/onedrive/china/service/OneDriveChinaServiceImpl.java @@ -1,20 +1,18 @@ package im.zhaojun.onedrive.china.service; import im.zhaojun.common.config.GlobalScheduleTask; -import im.zhaojun.common.exception.NotExistFileException; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; -import im.zhaojun.common.service.AbstractFileService; import im.zhaojun.common.service.FileService; import im.zhaojun.common.service.StorageConfigService; +import im.zhaojun.onedrive.common.service.AbstractOneDriveService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.List; import java.util.Map; /** @@ -22,7 +20,7 @@ import java.util.Map; */ @Service @Slf4j -public class OneDriveServiceChinaImpl extends AbstractFileService implements FileService { +public class OneDriveChinaServiceImpl extends AbstractOneDriveService implements FileService { @Resource private GlobalScheduleTask globalScheduleTask; @@ -30,8 +28,17 @@ public class OneDriveServiceChinaImpl extends AbstractFileService implements Fil @Resource private StorageConfigService storageConfigService; - @Resource - private OneDriveChinaService oneDriveChinaService; + @Value("${zfile.onedirve-china.clientId}") + private String clientId; + + @Value("${zfile.onedirve-china.redirectUri}") + private String redirectUri; + + @Value("${zfile.onedirve-china.clientSecret}") + private String clientSecret; + + @Value("${zfile.onedirve-china.scope}") + private String scope; @Override public void init() { @@ -46,7 +53,7 @@ public class OneDriveServiceChinaImpl extends AbstractFileService implements Fil log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); isInitialized = false; } else { - globalScheduleTask.refreshOneDriveToken(getStorageTypeEnum()); + refreshOneDriveToken(); isInitialized = testConnection(); } } catch (Exception e) { @@ -54,11 +61,6 @@ public class OneDriveServiceChinaImpl extends AbstractFileService implements Fil } } - @Override - public List fileList(String path) { - return oneDriveChinaService.list(basePath, path); - } - @Override public String getDownloadUrl(String path) { return null; @@ -70,14 +72,32 @@ public class OneDriveServiceChinaImpl extends AbstractFileService implements Fil } @Override - public FileItemDTO getFileItem(String path) { - FileItemDTO fileItemDTO ; + public String getGraphEndPoint() { + return "microsoftgraph.chinacloudapi.cn"; + } - try { - fileItemDTO = oneDriveChinaService.getItem(path); - } catch (Exception e) { - throw new NotExistFileException(); - } - return fileItemDTO; + @Override + public String getAuthenticateEndPoint() { + return "login.partner.microsoftonline.cn"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; } } diff --git a/src/main/java/im/zhaojun/onedrive/international/service/OneDriveService.java b/src/main/java/im/zhaojun/onedrive/international/service/OneDriveService.java deleted file mode 100644 index 4b6bfb5..0000000 --- a/src/main/java/im/zhaojun/onedrive/international/service/OneDriveService.java +++ /dev/null @@ -1,54 +0,0 @@ -package im.zhaojun.onedrive.international.service; - -import im.zhaojun.onedrive.common.service.AbstractOneDriveService; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -/** - * @author zhaojun - */ -@Service -public class OneDriveService extends AbstractOneDriveService { - - @Value("${zfile.onedirve.clientId}") - protected String clientId; - - @Value("${zfile.onedirve.redirectUri}") - protected String redirectUri; - - @Value("${zfile.onedirve.clientSecret}") - protected String clientSecret; - - @Value("${zfile.onedirve.scope}") - protected String scope; - - @Override - public String getGraphEndPoint() { - return "graph.microsoft.com"; - } - - @Override - public String getAuthenticateEndPoint() { - return "login.microsoftonline.com"; - } - - @Override - public String getClientId() { - return clientId; - } - - @Override - public String getRedirectUri() { - return redirectUri; - } - - @Override - public String getClientSecret() { - return clientSecret; - } - - @Override - public String getScope() { - return scope; - } -} diff --git a/src/main/java/im/zhaojun/onedrive/international/service/OneDriveServiceImpl.java b/src/main/java/im/zhaojun/onedrive/international/service/OneDriveServiceImpl.java index f622ce4..a3a2756 100644 --- a/src/main/java/im/zhaojun/onedrive/international/service/OneDriveServiceImpl.java +++ b/src/main/java/im/zhaojun/onedrive/international/service/OneDriveServiceImpl.java @@ -1,20 +1,18 @@ package im.zhaojun.onedrive.international.service; import im.zhaojun.common.config.GlobalScheduleTask; -import im.zhaojun.common.exception.NotExistFileException; import im.zhaojun.common.model.StorageConfig; import im.zhaojun.common.model.constant.StorageConfigConstant; -import im.zhaojun.common.model.dto.FileItemDTO; import im.zhaojun.common.model.enums.StorageTypeEnum; -import im.zhaojun.common.service.AbstractFileService; import im.zhaojun.common.service.FileService; import im.zhaojun.common.service.StorageConfigService; +import im.zhaojun.onedrive.common.service.AbstractOneDriveService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import java.util.List; import java.util.Map; /** @@ -22,7 +20,7 @@ import java.util.Map; */ @Service @Slf4j -public class OneDriveServiceImpl extends AbstractFileService implements FileService { +public class OneDriveServiceImpl extends AbstractOneDriveService implements FileService { @Resource private GlobalScheduleTask globalScheduleTask; @@ -30,8 +28,17 @@ public class OneDriveServiceImpl extends AbstractFileService implements FileServ @Resource private StorageConfigService storageConfigService; - @Resource - private OneDriveService oneDriveService; + @Value("${zfile.onedirve.clientId}") + protected String clientId; + + @Value("${zfile.onedirve.redirectUri}") + protected String redirectUri; + + @Value("${zfile.onedirve.clientSecret}") + protected String clientSecret; + + @Value("${zfile.onedirve.scope}") + protected String scope; @Override public void init() { @@ -46,7 +53,7 @@ public class OneDriveServiceImpl extends AbstractFileService implements FileServ log.debug("初始化存储策略 [{}] 失败: 参数不完整", getStorageTypeEnum().getDescription()); isInitialized = false; } else { - globalScheduleTask.refreshOneDriveToken(getStorageTypeEnum()); + refreshOneDriveToken(); isInitialized = testConnection(); } } catch (Exception e) { @@ -54,11 +61,6 @@ public class OneDriveServiceImpl extends AbstractFileService implements FileServ } } - @Override - public List fileList(String path) { - return oneDriveService.list(basePath, path); - } - @Override public String getDownloadUrl(String path) { return null; @@ -70,14 +72,32 @@ public class OneDriveServiceImpl extends AbstractFileService implements FileServ } @Override - public FileItemDTO getFileItem(String path) { - FileItemDTO fileItemDTO ; - - try { - fileItemDTO = oneDriveService.getItem(path); - } catch (Exception e) { - throw new NotExistFileException(); - } - return fileItemDTO; + public String getGraphEndPoint() { + return "graph.microsoft.com"; } -} + + @Override + public String getAuthenticateEndPoint() { + return "login.microsoftonline.com"; + } + + @Override + public String getClientId() { + return clientId; + } + + @Override + public String getRedirectUri() { + return redirectUri; + } + + @Override + public String getClientSecret() { + return clientSecret; + } + + @Override + public String getScope() { + return scope; + } +} \ No newline at end of file