test:(修改了配置跟依赖,加动态数据源修改)

dev
zhang xu 2024-06-17 22:19:36 +08:00
parent 2d46bb9375
commit f1ddab1137
19 changed files with 156 additions and 34 deletions

View File

@ -1,6 +1,6 @@
package com.muyu.common.datasource.annotation; package com.muyu.common.datasource.annotation;
import com.muyu.common.datasource.annotation;
import com.baomidou.dynamic.datasource.annotation.DS;
import java.lang.annotation.*; import java.lang.annotation.*;

View File

@ -18,17 +18,12 @@
</properties> </properties>
<dependencies> <dependencies>
<!-- MuYu Common Core--> <!-- MuYu Common Core-->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId> <artifactId>muyu-common-core</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-networking-common</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -0,0 +1,33 @@
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.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassDescription:
* @JdkVersion: 17
* @Author: zhangxu
* @Created: 2024/6/10 20:40
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("etn_info")
public class EntInfo {
@TableId(type = IdType.AUTO)
private Long id;
private String entCode;
private String ip;
private Long port;
}

View File

@ -3,11 +3,12 @@ package com.muyu.common.system.remote;
import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.constant.SecurityConstants;
import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.EntInfo;
import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory; import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.datasources.EntInfo; //import com.muyu.domain.datasources.EntInfo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@ -1,11 +1,12 @@
package com.muyu.common.system.remote.factory; package com.muyu.common.system.remote.factory;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.system.domain.EntInfo;
import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.remote.RemoteUserService;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.domain.datasources.EntInfo; //import com.muyu.domain.datasources.EntInfo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
@ -36,6 +37,8 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
return Result.error("获取用户失败:{}", throwable.getMessage()); return Result.error("获取用户失败:{}", throwable.getMessage());
} }
@Override @Override
public Result<List<EntInfo>> list() { public Result<List<EntInfo>> list() {
return Result.error("获取失败"); return Result.error("获取失败");

View File

@ -14,9 +14,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableCustomConfig @EnableCustomConfig
@EnableCustomSwagger2 @EnableCustomSwagger2
@EnableMyFeignClients @EnableMyFeignClients
@SpringBootApplication() @SpringBootApplication
public class MuYuJobApplication { public class MuYuJobApplication {
public static void main (String[] args) { public static void main (String[] args) {
SpringApplication.run(MuYuJobApplication.class, args); SpringApplication.run(MuYuJobApplication.class, args);
} }
} }

View File

@ -53,6 +53,8 @@
<artifactId>spring-boot-starter-actuator</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency> </dependency>
<!-- Swagger UI --> <!-- Swagger UI -->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>

View File

@ -104,10 +104,16 @@
</dependency> </dependency>
<!-- MuYu Common DataSource --> <!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope --> <!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log --> <!-- MuYu Common Log -->
<dependency> <dependency>

View File

@ -7,6 +7,7 @@ package com.muyu.networking.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -23,10 +24,19 @@ import com.muyu.domain.datasources.Datasource;
import com.muyu.networking.mapper.EnterpriseMapper; import com.muyu.networking.mapper.EnterpriseMapper;
import com.muyu.networking.service.EnterpriseService; import com.muyu.networking.service.EnterpriseService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.IllegalFormatCodePointException; import java.util.IllegalFormatCodePointException;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -40,6 +50,7 @@ import java.util.UUID;
*/ */
@Service @Service
@DS("networking") @DS("networking")
@Log4j2
public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper,Enterprise> implements EnterpriseService public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper,Enterprise> implements EnterpriseService
{ {
@ -121,7 +132,13 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper,Enterpr
public int updateEnterprise(Enterprise enterprise) public int updateEnterprise(Enterprise enterprise)
{ {
enterprise.setUpdateTime(DateUtils.getNowDate()); enterprise.setUpdateTime(DateUtils.getNowDate());
return enterpriseMapper.updateEnterprise(enterprise); int i = enterpriseMapper.updateEnterprise(enterprise);
if (i>0){
initialize(enterprise);
}else {
log.info("修改失败");
}
return i;
} }
/** /**
@ -156,6 +173,58 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper,Enterpr
return 0; return 0;
} }
public void initialize(Enterprise enterprise)
{
String postUrl="jiangmu";
HashMap<String, String> hashMap = new HashMap<>();
String contactPhone = enterprise.getContactPhone();
String phone=contactPhone.substring(contactPhone.length()-4);
String entId ="ent_id"+enterprise.getId();
hashMap.put("entId",entId);
long port=3306+enterprise.getId();
hashMap.put("mysqlPort",String.valueOf(port));
//创建连接与设置连接参数
URL url = null;
try {
url = new URL(postUrl);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Charset","UTF-8");
//POST 请求JSON 数据,必须设置
httpConn.setRequestProperty("Content-Type","application/json");
//默认代开是ture
httpConn.setDoOutput(true);
//从HTTPUrLConnection 获取输入流
OutputStream outputStream = httpConn.getOutputStream();
outputStream.write(JSON.toJSONString(hashMap).getBytes());
outputStream.flush();
//发起Http调用
if (httpConn.getResponseCode()!= 200){
throw new RuntimeException("请求失败");
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
String s = bufferedReader.readLine();
log.info("从服务端返回结果{}",s);
httpConn.disconnect();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//public void DockerMySQLExample() throws IOException { //public void DockerMySQLExample() throws IOException {
// //配置docker 客户端配置 // //配置docker 客户端配置

View File

@ -19,12 +19,12 @@ spring:
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 122.152.211.1:8848 server-addr: 122.152.211.1:8848
namespace: networking
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
shared-configs: shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
namespace: networking
logging: logging:
level: level:

View File

@ -72,6 +72,13 @@
<artifactId>muyu-common-log</artifactId> <artifactId>muyu-common-log</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-ds.version}</version>
</dependency>
<!-- MuYu Common Swagger --> <!-- MuYu Common Swagger -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>

View File

@ -19,12 +19,12 @@ spring:
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 122.152.211.1:8848 server-addr: 122.152.211.1:8848
namespace: networking
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
shared-configs: shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
namespace: networking
logging: logging:
level: level:
com.muyu.system.mapper: DEBUG com.muyu.system.mapper: DEBUG

View File

@ -5,9 +5,9 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu</artifactId> <artifactId>muyu-vehicle</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<relativePath>../../../pom.xml</relativePath>
</parent> </parent>
<artifactId>muyu-vehicle-common</artifactId> <artifactId>muyu-vehicle-common</artifactId>

View File

@ -5,9 +5,9 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu</artifactId> <artifactId>muyu-vehicle</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<relativePath>../../../pom.xml</relativePath>
</parent> </parent>
<artifactId>muyu-vehicle-service</artifactId> <artifactId>muyu-vehicle-service</artifactId>
@ -76,16 +76,7 @@
</dependency> </dependency>
<!-- MuYu Common DataSource --> <!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log --> <!-- MuYu Common Log -->
<dependency> <dependency>
@ -104,6 +95,12 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-ds.version}</version>
</dependency>
</dependencies> </dependencies>

View File

@ -6,8 +6,9 @@ import com.alibaba.fastjson.JSON;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.SpringUtils; import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.system.domain.EntInfo;
import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.remote.RemoteUserService;
import com.muyu.domain.datasources.EntInfo;
import com.muyu.vehicle.myDatasource.domain.DataSourceInfo; import com.muyu.vehicle.myDatasource.domain.DataSourceInfo;
import com.muyu.vehicle.myDatasource.domain.EnterpriseInfo; import com.muyu.vehicle.myDatasource.domain.EnterpriseInfo;
import com.muyu.vehicle.myDatasource.factory.DruidDataSourceFactory; import com.muyu.vehicle.myDatasource.factory.DruidDataSourceFactory;

View File

@ -23,7 +23,7 @@ public class DataSourceAsp {
@Autowired @Autowired
private RemoteUserService remoteUserService; private RemoteUserService remoteUserService;
@Pointcut("execution(public * com.car.client.controller.*Controller.*(..))") @Pointcut("execution(public * com.muyu.vehicle.controller.*(..))")
public void pointcut() { public void pointcut() {
} }

View File

@ -12,7 +12,7 @@ public class DatasourceConstant {
public final static String USER_NAME = "root"; public final static String USER_NAME = "root";
public final static String PASSWORD = "sal75-z"; public final static String PASSWORD = "122.152.211.1";
} }

View File

@ -14,7 +14,9 @@ spring:
simple: simple:
prefetch: 1 # 每次只能获取一条,处理完成才能获取下一条 prefetch: 1 # 每次只能获取一条,处理完成才能获取下一条
publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange) publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange)
publisher-returns: true #确认消息已发送到队列(Queue) publisher-returns: true #确认消息已发送到队列(Queue)
main:
allow-circular-references: true
application: application:
# 应用名称 # 应用名称
name: muyu-vehicle name: muyu-vehicle

View File

@ -5,12 +5,16 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu</artifactId> <artifactId>muyu-modules</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<relativePath>../../pom.xml</relativePath>
</parent> </parent>
<artifactId>muyu-vehicle</artifactId> <artifactId>muyu-vehicle</artifactId>
<packaging>pom</packaging>
<modules>
<module>muyu-vehicle-common</module>
<module>muyu-vehicle-service</module>
</modules>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
@ -18,4 +22,5 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
</project> </project>