diff --git a/cloud-auth/pom.xml b/cloud-auth/pom.xml
index c38fc2b..86f3f7a 100644
--- a/cloud-auth/pom.xml
+++ b/cloud-auth/pom.xml
@@ -41,10 +41,7 @@
spring-cloud-starter-alibaba-sentinel
-
- com.muyu
- cloud-common-saas
-
+
diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java
index 665a504..25b2462 100644
--- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java
+++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java
@@ -1,6 +1,7 @@
package com.muyu.auth.service;
+import com.muyu.cloud.common.many.datasource.ManyDataSource;
import com.muyu.common.core.constant.CacheConstants;
import com.muyu.common.core.constant.Constants;
import com.muyu.common.core.constant.SecurityConstants;
@@ -41,6 +42,8 @@ public class SysLoginService {
@Autowired
private RedisService redisService;
+
+
/**
* 登录
*/
@@ -92,6 +95,8 @@ public class SysLoginService {
}
passwordService.validate(user, password);
recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
+
+
return userInfo;
}
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 f1e6ffd..995a64c 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
@@ -40,7 +40,7 @@ public class ManyDataSource implements ApplicationRunner{
private InitDataSource initDataSource;
- private List dataSourceInfoList(){
+ public List dataSourceInfoList(){
RemoteSaaSService remoteSaaSService = SpringUtils.getBean(RemoteSaaSService.class);
Result> tableDataInfoResult = initDataSource.initDatasource();
if (tableDataInfoResult==null){
diff --git a/cloud-modules/cloud-modules-system/pom.xml b/cloud-modules/cloud-modules-system/pom.xml
index 4d83d4d..67c6a32 100644
--- a/cloud-modules/cloud-modules-system/pom.xml
+++ b/cloud-modules/cloud-modules-system/pom.xml
@@ -78,6 +78,7 @@
cloud-common-xxl
+
diff --git a/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/controller/EnterpriseController.java b/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/controller/EnterpriseController.java
index fbe366d..2ad4761 100644
--- a/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/controller/EnterpriseController.java
+++ b/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/controller/EnterpriseController.java
@@ -6,6 +6,7 @@ import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.domain.Enterprise;
import com.muyu.common.system.domain.Business;
+import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.remote.RemoteUserService;
import com.muyu.common.util.PageUtils;
import com.muyu.server.controller.form.DeleteEnterpriseByIds;
@@ -27,6 +28,7 @@ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -46,8 +48,7 @@ public class EnterpriseController {
@Autowired
private EnterpriseService enterpriseService;
- @Autowired
- private RemoteUserService remoteUserService;
+
/**
@@ -73,61 +74,20 @@ public class EnterpriseController {
/**
* 新增企业信息
- * @param form
+ * @param enterprise
* @return
*/
@PostMapping("/insert")
@Operation(summary = "新增企业信息",description = "新增企业信息")
- public Result insert(@RequestBody @Valid InsertEnterprise form){
- Enterprise enterprise = new Enterprise();
+ public Result insert(@RequestBody @Valid Enterprise enterprise){
- enterprise.setEnterpriseName(form.getEnterpriseName());
- enterprise.setEnterpriseCarCount(form.getEnterpriseCarCount());
- enterprise.setEnterpriseFenceCount(form.getEnterpriseFenceCount());
+
+// enterprise.setEnterpriseName(form.getEnterpriseName());
+// enterprise.setEnterpriseCarCount(form.getEnterpriseCarCount());
+// enterprise.setEnterpriseFenceCount(form.getEnterpriseFenceCount());
int rows = enterpriseService.insert(enterprise);
- if (rows == 0){
- return Result.error("新增失败");
- }
- Business business = new Business();
- business.setFirmName(form.getEnterpriseName());
- business.setDatabaseName(form.getEnterpriseDatabaseName());
- remoteUserService.settlementEnterpriseInfo(business, SecurityConstants.INNER);
-
- String createDatabaseUrl="jdbc:mysql://"+ DatasourceContent.IP+":"+DatasourceContent.PORT+"?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
- String createDatabaseSql = "CREATE DATABASE IF NOT EXISTS " + form.getEnterpriseDatabaseName() + ";";
- try (Connection adminConn = DriverManager.getConnection(createDatabaseUrl, DatasourceContent.USER_NAME, DatasourceContent.PASSWORD);
- Statement stmt = adminConn.createStatement()) {
-
- boolean success = stmt.execute(createDatabaseSql);
- if (success) {
- log.info("数据库 {} 创建失败", form.getEnterpriseDatabaseName());
-
- } else {
- log.warn("数据库 {} 创建成功", form.getEnterpriseDatabaseName());
-
- // 切换到新的数据库连接
- Connection connection = null;
- try {
- String url = "jdbc:mysql://47.101.53.251:3306/" + form.getEnterpriseDatabaseName() + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
- String user = "root";
- String pwd = "Lw030106";
- String driverClassName = "com.mysql.cj.jdbc.Driver";
- Class.forName(driverClassName);
- connection = DriverManager.getConnection(url, user, pwd);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- ClassPathResource rc = new ClassPathResource("static/saas.sql");
- EncodedResource er = new EncodedResource(rc, "utf-8");
- ScriptUtils.executeSqlScript(connection, er);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- log.error("连接数据库时发生错误或创建数据库失败", e);
- }
return Result.success(rows);
}
diff --git a/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/service/impl/EnterpriseServiceImpl.java b/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/service/impl/EnterpriseServiceImpl.java
index b4e7b4e..ea92448 100644
--- a/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/service/impl/EnterpriseServiceImpl.java
+++ b/cloud-modules/saas/saas-server/src/main/java/com/muyu/server/service/impl/EnterpriseServiceImpl.java
@@ -1,10 +1,20 @@
package com.muyu.server.service.impl;
import cn.hutool.core.map.MapUtil;
+import com.alibaba.druid.pool.DruidDataSource;
import com.muyu.cache.EnterpriseCacheService;
+import com.muyu.cloud.common.many.datasource.ManyDataSource;
import com.muyu.cloud.common.many.datasource.constents.DatasourceContent;
+import com.muyu.cloud.common.many.datasource.domain.model.DataSourceInfo;
+import com.muyu.cloud.common.many.datasource.factory.DruidDataSourceFactory;
+import com.muyu.cloud.common.many.datasource.init.InitDataSource;
+import com.muyu.cloud.common.many.datasource.role.DynamicDataSource;
+import com.muyu.cloud.common.saas.domain.Datasource;
+import com.muyu.cloud.common.saas.domain.model.EntInfo;
+import com.muyu.cloud.common.saas.exception.SaaSException;
import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.domain.Result;
+import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.domain.Enterprise;
import com.muyu.common.system.domain.Business;
import com.muyu.common.system.domain.SysUser;
@@ -14,6 +24,7 @@ import com.muyu.server.mapper.EnterpriseMapper;
import com.muyu.server.service.EnterpriseService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.jdbc.datasource.init.ScriptUtils;
@@ -42,6 +53,9 @@ public class EnterpriseServiceImpl implements EnterpriseService {
@Autowired
private RemoteUserService remoteUserService;
+ @Autowired
+ private ManyDataSource manyDataSource;
+
/**
* 分页查询企业运营信息
@@ -111,6 +125,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
ClassPathResource rc = new ClassPathResource("saas.sql");
EncodedResource er = new EncodedResource(rc, "utf-8");
ScriptUtils.executeSqlScript(connection1, er);
+
} catch (SQLException e) {
throw new RuntimeException("无法执行SQL脚本", e);
}
@@ -118,13 +133,26 @@ public class EnterpriseServiceImpl implements EnterpriseService {
throw new RuntimeException("链接不到数据源驱动", e);
}
-
}
} catch (SQLException e) {
e.printStackTrace();
log.error("连接数据库时发生错误或创建数据库失败", e);
}
+
+
+
+ DruidDataSourceFactory druidDataSourceFactory = SpringUtils.getBean(DruidDataSourceFactory.class);
+ DynamicDataSource dynamicDataSource = SpringUtils.getBean(DynamicDataSource.class);
+ for (EntInfo entInfo : manyDataSource.dataSourceInfoList()) {
+ DataSourceInfo dataSourceInfo = DataSourceInfo.hostAndPortBuild(
+ entInfo.getEntCode(), entInfo.getIp(), entInfo.getPort()
+ );
+ DruidDataSource druidDataSource = druidDataSourceFactory.create(dataSourceInfo);
+ dynamicDataSource.put(dataSourceInfo.getKey(), druidDataSource);
+ log.info("存储数据连接池为:key:{}",dataSourceInfo.getKey());
+ }
+ log.info("企业信息插入成功");
return rows;
}