Merge remote-tracking branch 'origin/dev.business' into dev
# Conflicts: # cloud-modules/saas/saas-server/src/main/java/com/muyu/server/controller/EnterpriseController.java # cloud-modules/saas/saas-server/src/main/java/com/muyu/server/service/impl/EnterpriseServiceImpl.javadev.business
commit
24b8fe4085
|
@ -41,10 +41,7 @@
|
|||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>cloud-common-saas</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringBoot Web -->
|
||||
<dependency>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ public class ManyDataSource implements ApplicationRunner{
|
|||
private InitDataSource initDataSource;
|
||||
|
||||
|
||||
private List<EntInfo> dataSourceInfoList(){
|
||||
public List<EntInfo> dataSourceInfoList(){
|
||||
RemoteSaaSService remoteSaaSService = SpringUtils.getBean(RemoteSaaSService.class);
|
||||
Result<List<Datasource>> tableDataInfoResult = initDataSource.initDatasource();
|
||||
if (tableDataInfoResult==null){
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
<artifactId>cloud-common-xxl</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue