From 895a4efab385cb22b72c57e66312903fc642a4e4 Mon Sep 17 00:00:00 2001 From: Liu Wu <2780205363@qq.com> Date: Tue, 24 Sep 2024 10:40:34 +0800 Subject: [PATCH] =?UTF-8?q?saas=E6=A8=A1=E5=9D=97=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/ServiceNameConstants.java | 5 +++ .../many/datasource/ManyDataSource.java | 10 +++--- .../cloud/common/saas/domain/Datasource.java | 26 +++++++++++++++ cloud-common/cloud-common-system/pom.xml | 3 ++ .../muyu/common/system/domain/Datasource.java | 26 +++++++++++++++ .../system/remote/RemoteSaaSService.java | 29 ++++++++++++++++ .../factory/RemoteSaaSFallbackFactory.java | 33 +++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + cloud-modules/cloud-modules-car/pom.xml | 2 -- cloud-modules/pom.xml | 1 - 10 files changed, 129 insertions(+), 7 deletions(-) create mode 100644 cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/Datasource.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Datasource.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteSaaSService.java create mode 100644 cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteSaaSFallbackFactory.java diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java index c529d7e..304711c 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java @@ -25,4 +25,9 @@ public class ServiceNameConstants { * 智能车联服务 */ public static final String SMART_SERVICE = "cloud-smart-car"; + + + public static final String SAAS_SERVICE = "cloud-saas"; + + } diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java index dbbbabb..cd3f37b 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/many/datasource/ManyDataSource.java @@ -11,7 +11,9 @@ import com.muyu.cloud.common.saas.domain.model.EntInfo; import com.muyu.cloud.common.saas.exception.SaaSException; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.SpringUtils; +import com.muyu.common.system.domain.Datasource; import com.muyu.common.system.domain.SysUser; +import com.muyu.common.system.remote.RemoteSaaSService; import com.muyu.common.system.remote.RemoteUserService; import lombok.extern.log4j.Log4j2; import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration; @@ -37,15 +39,15 @@ import java.util.Map; @AutoConfiguration(before = {MybatisPlusAutoConfiguration.class, MybatisAutoConfiguration.class}) public class ManyDataSource implements ApplicationRunner{ private List dataSourceInfoList(){ - RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class); - Result> tableDataInfoResult = remoteUserService.companyList(); + RemoteSaaSService remoteSaaSService = SpringUtils.getBean(RemoteSaaSService.class); + Result> tableDataInfoResult = remoteSaaSService.findDatabaseList(); if (tableDataInfoResult==null){ throw new SaaSException("saas远调数据源错误"); } - List data = tableDataInfoResult.getData(); + List data = tableDataInfoResult.getData(); if (tableDataInfoResult.getCode() ==Result.SUCCESS && data !=null){ List list = new ArrayList<>(); - for (SysUser row : data) { + for (Datasource row : data) { list.add( EntInfo.builder() .entCode(row.getDatabaseName()) diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/Datasource.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/Datasource.java new file mode 100644 index 0000000..cfda448 --- /dev/null +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/domain/Datasource.java @@ -0,0 +1,26 @@ +package com.muyu.cloud.common.saas.domain; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "datasource", autoResultMap = true) +public class Datasource { + + @TableId(value = "id",type = IdType.AUTO) + private Integer id; + + public String firmName; + + public String databaseName; + + + +} diff --git a/cloud-common/cloud-common-system/pom.xml b/cloud-common/cloud-common-system/pom.xml index ad4356f..22cd455 100644 --- a/cloud-common/cloud-common-system/pom.xml +++ b/cloud-common/cloud-common-system/pom.xml @@ -25,5 +25,8 @@ com.muyu cloud-common-core + + + diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Datasource.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Datasource.java new file mode 100644 index 0000000..9b54051 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Datasource.java @@ -0,0 +1,26 @@ +package com.muyu.common.system.domain; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "datasource", autoResultMap = true) +public class Datasource { + + @TableId(value = "id",type = IdType.AUTO) + private Integer id; + + public String firmName; + + public String databaseName; + + + +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteSaaSService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteSaaSService.java new file mode 100644 index 0000000..cac2681 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteSaaSService.java @@ -0,0 +1,29 @@ +package com.muyu.common.system.remote; + +import com.muyu.common.core.constant.SecurityConstants; +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.Datasource; +import com.muyu.common.system.domain.LoginUser; +import com.muyu.common.system.domain.SysUser; +import com.muyu.common.system.remote.factory.RemoteSaaSFallbackFactory; +import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 用户服务 + * + * @author muyu + */ +@FeignClient(contextId = "SaasService", value = ServiceNameConstants.SAAS_SERVICE, fallbackFactory = RemoteSaaSFallbackFactory.class) +public interface RemoteSaaSService { + + @GetMapping("/saas/findDatabaseList") + public Result> findDatabaseList(); + + + +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteSaaSFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteSaaSFallbackFactory.java new file mode 100644 index 0000000..886a151 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteSaaSFallbackFactory.java @@ -0,0 +1,33 @@ +package com.muyu.common.system.remote.factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.Datasource; +import com.muyu.common.system.domain.LoginUser; +import com.muyu.common.system.domain.SysUser; +import com.muyu.common.system.remote.RemoteSaaSService; +import com.muyu.common.system.remote.RemoteUserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 用户服务降级处理 + * + * @author muyu + */ +@Component +public class RemoteSaaSFallbackFactory implements FallbackFactory { + + @Override + public RemoteSaaSService create(Throwable cause) { + return new RemoteSaaSService() { + @Override + public Result> findDatabaseList() { + return Result.error("查询数据库失败:" + cause.getMessage()); + } + }; + } +} diff --git a/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index b9a11b8..6539412 100644 --- a/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-common/cloud-common-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.muyu.common.system.remote.factory.RemoteUserFallbackFactory com.muyu.common.system.remote.factory.RemoteLogFallbackFactory com.muyu.common.system.remote.factory.RemoteFileFallbackFactory +com.muyu.common.system.remote.factory.RemoteSaaSFallbackFactory diff --git a/cloud-modules/cloud-modules-car/pom.xml b/cloud-modules/cloud-modules-car/pom.xml index aecbd76..ea345a1 100644 --- a/cloud-modules/cloud-modules-car/pom.xml +++ b/cloud-modules/cloud-modules-car/pom.xml @@ -85,8 +85,6 @@ cloud-common-saas - - diff --git a/cloud-modules/pom.xml b/cloud-modules/pom.xml index c917d3a..607edae 100644 --- a/cloud-modules/pom.xml +++ b/cloud-modules/pom.xml @@ -15,7 +15,6 @@ cloud-modules-file cloud-modules-template cloud-modules-fence - cloud-modules-car cloud-modules-wechat cloud-modules-breakdown cloud-modules-warn