From c445d6fba501c4b8f73f45860cf4ae9ff4beff65 Mon Sep 17 00:00:00 2001 From: "Johnny Miller (ZA)" Date: Fri, 11 Feb 2022 22:46:42 +0800 Subject: [PATCH] perf($auth-center): create fallback for remote API --- .../remote/OssCenterFeignService.java | 32 +++++++++++++ .../impl/OssCenterFeignServiceImpl.java | 45 +++++++++++++++++++ .../maf/authcenter/security/package-info.java | 0 .../security/service/JwtService.java | 0 .../security/service/impl/JwtServiceImpl.java | 0 .../maf/authcenter/user/package-info.java | 1 + .../user/service/UserRoleService.java | 0 .../authcenter/user/service/UserService.java | 0 .../service/impl/UserRoleServiceImpl.java | 0 .../user/service/impl/UserServiceImpl.java | 2 - ...moteApi.java => OssCenterFeignClient.java} | 10 ++--- .../configuration/OssConfiguration.java | 10 ++--- 12 files changed, 88 insertions(+), 12 deletions(-) create mode 100644 auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignService.java create mode 100644 auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/impl/OssCenterFeignServiceImpl.java rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/security/package-info.java (100%) rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/security/service/JwtService.java (100%) rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/security/service/impl/JwtServiceImpl.java (100%) create mode 100644 auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/package-info.java rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserRoleService.java (100%) rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserService.java (100%) rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserRoleServiceImpl.java (100%) rename auth-center/{auth-center-biz => auth-center-domain}/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java (98%) rename auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/{OssCenterRemoteApi.java => OssCenterFeignClient.java} (79%) diff --git a/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignService.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignService.java new file mode 100644 index 00000000..fdc92237 --- /dev/null +++ b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignService.java @@ -0,0 +1,32 @@ +/* + * Copyright By ZATI + * Copyright By 3a3c88295d37870dfd3b25056092d1a9209824b256c341f2cdc296437f671617 + * All rights reserved. + * + * If you are not the intended user, you are hereby notified that any use, disclosure, copying, printing, forwarding or + * dissemination of this property is strictly prohibited. If you have got this file in error, delete it from your + * system. + */ +package com.jmsoftware.maf.authcenter.remote; + +import com.jmsoftware.maf.common.domain.osscenter.write.ObjectResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; + +/** + * Description: OssCenterFeignService, change description here. + * + * @author 钟俊 (za-zhongjun), email: jun.zhong@zatech.com, date: 2/5/2022 7:46 PM + **/ +@Validated +public interface OssCenterFeignService { + /** + * Upload single resource object response. + * + * @param multipartFile the multipart file + * @return the object response + */ + ObjectResponse uploadSingleResource(@NotNull MultipartFile multipartFile); +} diff --git a/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/impl/OssCenterFeignServiceImpl.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/impl/OssCenterFeignServiceImpl.java new file mode 100644 index 00000000..92f75703 --- /dev/null +++ b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/remote/impl/OssCenterFeignServiceImpl.java @@ -0,0 +1,45 @@ +/* + * Copyright By ZATI + * Copyright By 3a3c88295d37870dfd3b25056092d1a9209824b256c341f2cdc296437f671617 + * All rights reserved. + * + * If you are not the intended user, you are hereby notified that any use, disclosure, copying, printing, forwarding or + * dissemination of this property is strictly prohibited. If you have got this file in error, delete it from your + * system. + */ +package com.jmsoftware.maf.authcenter.remote.impl; + +import com.jmsoftware.maf.authcenter.remote.OssCenterFeignClient; +import com.jmsoftware.maf.authcenter.remote.OssCenterFeignService; +import com.jmsoftware.maf.common.bean.ResponseBodyBean; +import com.jmsoftware.maf.common.domain.osscenter.write.ObjectResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.validation.constraints.NotNull; +import java.util.Optional; + +/** + * Description: OssCenterFeignServiceImpl, change description here. + * + * @author 钟俊 (za-zhongjun), email: jun.zhong@zatech.com, date: 2/5/2022 7:47 PM + **/ +@Slf4j +@Service +@RequiredArgsConstructor +public class OssCenterFeignServiceImpl implements OssCenterFeignService { + private final OssCenterFeignClient ossCenterFeignClient; + + @Override + public ObjectResponse uploadSingleResource(@NotNull MultipartFile multipartFile) { + log.info("Uploading single resource to oss center. multipartFile: {}", multipartFile); + return Optional.ofNullable(ossCenterFeignClient.uploadSingleResource(multipartFile)) + .map(ResponseBodyBean::getData) + .orElseThrow(() -> { + log.error("Failed to upload single resource to oss center. multipartFile: {}", multipartFile); + return new RuntimeException("Upload single resource to oss center failed."); + }); + } +} diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/package-info.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/package-info.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/package-info.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/package-info.java diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/service/JwtService.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/service/JwtService.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/service/JwtService.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/service/JwtService.java diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/service/impl/JwtServiceImpl.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/service/impl/JwtServiceImpl.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/security/service/impl/JwtServiceImpl.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/security/service/impl/JwtServiceImpl.java diff --git a/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/package-info.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/package-info.java new file mode 100644 index 00000000..069059ce --- /dev/null +++ b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/package-info.java @@ -0,0 +1 @@ +package com.jmsoftware.maf.authcenter.user; diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserRoleService.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserRoleService.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserRoleService.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserRoleService.java diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserService.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserService.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserService.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/UserService.java diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserRoleServiceImpl.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserRoleServiceImpl.java similarity index 100% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserRoleServiceImpl.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserRoleServiceImpl.java diff --git a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java similarity index 98% rename from auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java rename to auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java index 864c6c8a..616c42df 100644 --- a/auth-center/auth-center-biz/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java +++ b/auth-center/auth-center-domain/src/main/java/com/jmsoftware/maf/authcenter/user/service/impl/UserServiceImpl.java @@ -1,6 +1,5 @@ package com.jmsoftware.maf.authcenter.user.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.BooleanUtil; @@ -42,7 +41,6 @@ import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import java.util.concurrent.TimeUnit; import static java.util.concurrent.TimeUnit.DAYS; diff --git a/auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterRemoteApi.java b/auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignClient.java similarity index 79% rename from auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterRemoteApi.java rename to auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignClient.java index a7460390..1c16b170 100644 --- a/auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterRemoteApi.java +++ b/auth-center/auth-center-infra/src/main/java/com/jmsoftware/maf/authcenter/remote/OssCenterFeignClient.java @@ -14,14 +14,14 @@ import javax.validation.constraints.NotNull; /** - * Description: OssCenterRemoteApi, change description here. + * Description: OssCenterFeignClient, change description here. * * @author Johnny Miller (锺俊), email: johnnysviva@outlook.com, date: 9/15/2021 11:10 AM * @see Spring Cloud OpenFeign **/ @Validated -@FeignClient(value = OssCenterRemoteApi.SERVICE_NAME, fallback = OssCenterRemoteApi.OssCenterRemoteApiFallback.class) -public interface OssCenterRemoteApi { +@FeignClient(value = OssCenterFeignClient.SERVICE_NAME, fallback = OssCenterFeignClient.OssCenterFeignClientFallback.class) +public interface OssCenterFeignClient { String SERVICE_NAME = "oss-center"; /** @@ -35,10 +35,10 @@ public interface OssCenterRemoteApi { @Slf4j @Component - class OssCenterRemoteApiFallback implements OssCenterRemoteApi { + class OssCenterFeignClientFallback implements OssCenterFeignClient { @Override public ResponseBodyBean uploadSingleResource(@NotNull MultipartFile multipartFile) { - log.error("Fallback -> OssCenterRemoteApi#uploadSingleResource()"); + log.error("Fallback -> OssCenterFeignClient#uploadSingleResource()"); return null; } } diff --git a/auth-center/auth-center-web/src/main/java/com/jmsoftware/maf/authcenter/configuration/OssConfiguration.java b/auth-center/auth-center-web/src/main/java/com/jmsoftware/maf/authcenter/configuration/OssConfiguration.java index a6a89fcf..945363e8 100644 --- a/auth-center/auth-center-web/src/main/java/com/jmsoftware/maf/authcenter/configuration/OssConfiguration.java +++ b/auth-center/auth-center-web/src/main/java/com/jmsoftware/maf/authcenter/configuration/OssConfiguration.java @@ -1,6 +1,6 @@ package com.jmsoftware.maf.authcenter.configuration; -import com.jmsoftware.maf.authcenter.remote.OssCenterRemoteApi; +import com.jmsoftware.maf.authcenter.remote.OssCenterFeignService; import com.jmsoftware.maf.springcloudstarter.poi.OssUploader; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -18,15 +18,15 @@ @Configuration @RequiredArgsConstructor public class OssConfiguration { - private final OssCenterRemoteApi ossCenterRemoteApi; + private final OssCenterFeignService ossCenterFeignService; @Bean public OssUploader ossUploader() { return (name, inputStream) -> { val multipartFile = new MockMultipartFile(name, name, null, inputStream); - val response = this.ossCenterRemoteApi.uploadSingleResource(multipartFile); - log.info("Called {} to upload multipartFile. {}", OssCenterRemoteApi.SERVICE_NAME, response); - return String.format("%s/%s", response.getData().getBucket(), response.getData().getObject()); + val objectResponse = this.ossCenterFeignService.uploadSingleResource(multipartFile); + log.info("Uploaded multipartFile. objectResponse: {}", objectResponse); + return String.format("%s/%s", objectResponse.getBucket(), objectResponse.getObject()); }; } }