commit 05077da71b570dabbb1e1ac632feafad3d181b4d
Author: review512jwy@163.com <“review512jwy@163.com”>
Date: Thu Apr 9 20:21:30 2026 +0800
初始化
diff --git a/buildics-oviphone-back-common/.gitignore b/buildics-oviphone-back-common/.gitignore
new file mode 100644
index 0000000..aa23915
--- /dev/null
+++ b/buildics-oviphone-back-common/.gitignore
@@ -0,0 +1,15 @@
+/target/
+/logs/
+/.idea/
+*.iml
+*.bak
+*.log
+/.settings/
+*.project
+*.classpath
+*.factorypath
+*.springBeans
+/.apt_generated/
+/.externalToolBuilders/
+/bin/
+application-*.properties
diff --git a/buildics-oviphone-back-common/pom.xml b/buildics-oviphone-back-common/pom.xml
new file mode 100644
index 0000000..c3f0c48
--- /dev/null
+++ b/buildics-oviphone-back-common/pom.xml
@@ -0,0 +1,35 @@
+
+
+ 4.0.0
+
+ com.techsor
+ buildics-oviphone-back
+ 0.0.1-SNAPSHOT
+
+ buildics-oviphone-back-common
+ buildics-oviphone-back-common
+ http://maven.apache.org
+
+ UTF-8
+
+
+
+ junit
+ junit
+ test
+
+
+
+ com.techsor
+ buildics-oviphone-back-dao
+ 0.0.1-SNAPSHOT
+
+
+ com.techsor
+ buildics-oviphone-back-util
+ 0.0.1-SNAPSHOT
+
+
+
+
diff --git a/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/Constants.java b/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/Constants.java
new file mode 100644
index 0000000..15dadb7
--- /dev/null
+++ b/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/Constants.java
@@ -0,0 +1,22 @@
+package com.buildics.oviphone.back.common;
+/**
+* @author Mr.Jiang
+* @time 2022年5月20日 下午2:01:41
+*/
+public class Constants {
+
+ //这个很重要,不要随便动
+ public static final String DES_SALT = "ci3b512jwy199511";
+
+ public static final String APP_NAME = "buildics_oviphone_back:";
+
+ //用户ID,登录名,企业ID,token
+ public static final String ACCESS_TOKEN_FORMAT = APP_NAME + "RequestHeader:AccessToken:{0}:{1}:{2}:{3}";
+
+ public static final String CAPTCHA_VERIFICATION = APP_NAME + "CAPTCHA:VERIFICATION:";
+
+ public static final String DATASOURCE_PREFIX = "dataSourceForCompany_";
+
+ public static final String THIRD_DB_PREFIX = "data_center_buildics_";
+
+}
diff --git a/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/config/DataSourceAdminConfig.java b/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/config/DataSourceAdminConfig.java
new file mode 100644
index 0000000..c868855
--- /dev/null
+++ b/buildics-oviphone-back-common/src/main/java/com/buildics/oviphone/back/common/config/DataSourceAdminConfig.java
@@ -0,0 +1,167 @@
+package com.buildics.oviphone.back.common.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import com.buildics.oviphone.back.common.Constants;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+public class DataSourceAdminConfig {
+
+ private static Logger logger = LoggerFactory.getLogger(DataSourceAdminConfig.class);
+
+ @Value("${spring.datasource.admin.name}")
+ private String name;
+
+ @Value("${spring.datasource.admin.url}")
+ private String url;
+
+ @Value("${spring.datasource.admin.username}")
+ private String username;
+
+ @Value("${spring.datasource.admin.password}")
+ private String password;
+
+ @Value("${spring.datasource.admin.driverClassName}")
+ private String driverClassName;
+
+ @Value("${spring.datasource.admin.type}")
+ private String type;
+
+ @Value("${dynamic.jdbc.url}")
+ private String dynamicJdbcUrl;
+
+
+ private final static String THIRD_DB_PREFIX = Constants.THIRD_DB_PREFIX;
+
+ private final static String DATASOURCE_PREFIX = Constants.DATASOURCE_PREFIX;
+
+
+ @Primary
+ @Bean
+ public DataSource adminDatasource() {
+ DruidDataSource datasource = DataSourceBuilder.create()
+ .url(url)
+ .username(username)
+ .password(password).driverClassName(driverClassName)
+ .type(DruidDataSource.class)
+ .build();
+
+ return datasource;
+ }
+
+ @Bean
+ public JdbcTemplate jdbcTemplate(DataSource adminDatasource) {
+ return new JdbcTemplate(adminDatasource);
+ }
+
+// @Bean
+// @ConfigurationProperties(prefix = "mybatis.configuration")
+// public org.apache.ibatis.session.Configuration globalConfiguration() {
+// return new org.apache.ibatis.session.Configuration();
+// }
+
+ @Bean
+ public SqlSessionFactory sqlSessionFactory(@Qualifier("dynamicDataSource") DataSource dynamicDataSource) throws Exception {
+// SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+// sessionFactory.setDataSource(dynamicDataSource); // 设置为动态数据源
+// sessionFactory.setConfiguration(globalConfiguration());//驼峰设置mybatis.configuration.map-underscore-to-camel-case不生效处理
+// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mappers/**/*.xml")); // 设置Mapper XML文件的位置
+// return sessionFactory.getObject();
+
+ // 使用 MybatisSqlSessionFactoryBean 而不是 SqlSessionFactoryBean
+ MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
+ sessionFactory.setDataSource(dynamicDataSource);
+ // 注意:MyBatis-Plus 的配置需要使用其专有的 Configuration
+ // 确保com.baomidou.mybatisplus.core.MybatisConfiguration
+ sessionFactory.setConfiguration(mybatisConfiguration());
+ sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
+ .getResources("classpath*:mappers/**/*.xml"));
+ return sessionFactory.getObject();
+ }
+
+ // 修改 Configuration 的 Bean
+ @Bean
+ public MybatisConfiguration mybatisConfiguration() {
+ MybatisConfiguration configuration = new com.baomidou.mybatisplus.core.MybatisConfiguration();
+ // 开启驼峰命名
+ configuration.setMapUnderscoreToCamelCase(true);
+ return configuration;
+ }
+
+ @Bean
+ public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
+ return new SqlSessionTemplate(sqlSessionFactory);
+ }
+
+
+ @Bean
+ public DataSource dynamicDataSource(JdbcTemplate jdbcTemplate, DataSource adminDatasource) {
+ DynamicRouteDataSource dynamicDataSource = new DynamicRouteDataSource();
+ Map