diff --git a/outbridge/pom.xml b/outbridge/pom.xml new file mode 100644 index 00000000..7455e4bf --- /dev/null +++ b/outbridge/pom.xml @@ -0,0 +1,142 @@ + + + 4.0.0 + + com.sdm + SDM + 1.0-SNAPSHOT + + outbridge + 0.0.1-SNAPSHOT + outbridge + outbridge + + 17 + UTF-8 + UTF-8 + 3.3.5 + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + 4.1.4 + provided + + + org.springframework.cloud + spring-cloud-loadbalancer + 4.1.4 + provided + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-validation + + + + commons-net + commons-net + 3.11.1 + + + org.projectlombok + lombok + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + + + + org.aspectj + aspectjrt + + + com.auth0 + java-jwt + 4.4.0 + + + + + jakarta.servlet + jakarta.servlet-api + 5.0.0 + provided + + + + + com.sdm + common + 0.0.1-SNAPSHOT + + + * + * + + + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 17 + 17 + UTF-8 + + + + + + + + + + + + + + + + + + + diff --git a/common/src/main/java/com/sdm/common/config/CommonConfig.java b/outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java similarity index 93% rename from common/src/main/java/com/sdm/common/config/CommonConfig.java rename to outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java index 003ce1a2..fe7d40cc 100644 --- a/common/src/main/java/com/sdm/common/config/CommonConfig.java +++ b/outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java @@ -1,5 +1,4 @@ -// common模块:com.xxx.common.config.CommonConfig -package com.sdm.common.config; +package com.sdm.outbridge.config; //// common模块:com.xxx.common.config.CommonConfig import org.springframework.boot.env.YamlPropertySourceLoader; import org.springframework.context.annotation.Configuration; diff --git a/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java b/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java new file mode 100644 index 00000000..25fb93be --- /dev/null +++ b/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java @@ -0,0 +1,79 @@ +package com.sdm.outbridge.config; + +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +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.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; + +import javax.sql.DataSource; +import java.io.IOException; + +/** + * 第二个数据源的MyBatis-Plus配置 + * 扫描专属的Mapper包,使用独立的数据源 + */ +@Configuration +// 扫描第二个数据源的Mapper包,指定专属的sqlSessionFactory +@MapperScan( + basePackages = "com.sdm.outbridge.dao", + sqlSessionFactoryRef = "secondSqlSessionFactory" +) +public class SecondMybatisPlusConfig { + + /** + * 初始化第二个数据源 + */ + @Bean(name = "secondDataSource") + @ConfigurationProperties(prefix = "spring.datasource.second") // 对应yml中的second数据源配置 + public DataSource secondDataSource() { + return DataSourceBuilder.create().build(); + } + + /** + * 第二个数据源的事务管理器 + * 非Primary,因为原有动态数据源已标记为Primary + */ + @Bean(name = "secondTransactionManager") + public DataSourceTransactionManager secondTransactionManager( + @Qualifier("secondDataSource") DataSource dataSource) { + return new DataSourceTransactionManager(dataSource); + } + + /** + * 第二个数据源的SqlSessionFactory + */ + @Bean(name = "secondSqlSessionFactory") + public MybatisSqlSessionFactoryBean secondSqlSessionFactory( + @Qualifier("secondDataSource") DataSource dataSource) throws IOException { + MybatisSqlSessionFactoryBean fb = new MybatisSqlSessionFactoryBean(); + // 设置第二个数据源的Mapper.xml路径(建议独立存放,避免冲突) + fb.setMapperLocations(new PathMatchingResourcePatternResolver() + .getResources("classpath*:mapper/second/*.xml")); + // 绑定第二个数据源 + fb.setDataSource(dataSource); + // 开启下划线转驼峰(和原有配置保持一致) + MybatisConfiguration configuration = new MybatisConfiguration(); + configuration.setMapUnderscoreToCamelCase(true); + fb.setConfiguration(configuration); + // 如需分页插件,可在此添加(和原有配置一致) + // fb.setPlugins(new MybatisPlusInterceptor(new PaginationInnerInterceptor(DbType.MYSQL))); + return fb; + } + + /** + * 第二个数据源的SqlSessionTemplate(可选,MyBatis-Plus可自动适配,建议添加) + */ + @Bean(name = "secondSqlSessionTemplate") + public SqlSessionTemplate secondSqlSessionTemplate( + @Qualifier("secondSqlSessionFactory") MybatisSqlSessionFactoryBean sqlSessionFactory) throws Exception { + return new SqlSessionTemplate(sqlSessionFactory.getObject()); + } + +} \ No newline at end of file diff --git a/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java b/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java new file mode 100644 index 00000000..df064f0c --- /dev/null +++ b/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java @@ -0,0 +1,13 @@ +package com.sdm.outbridge.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.sdm.outbridge.entity.ViewLyricconfig; + +/** + * + * @author author + * @since 2025-11-05 + */ +public interface ViewLyricConfigMapper extends BaseMapper { + +} diff --git a/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java b/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java new file mode 100644 index 00000000..682c09a4 --- /dev/null +++ b/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java @@ -0,0 +1,50 @@ +package com.sdm.outbridge.entity; + + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 测试查询视图 + *

+ * + * @author author + * @since 2025-12-01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("view_lyricconfig") +@Schema(description = "测试查询视图") +public class ViewLyricconfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "自增主键") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @Schema(description = "占位符英文名称") + @TableField("keyEnName") + private String keyEnName; + + @Schema(description = "占位符中文名称") + @TableField("keyCnName") + private String keyCnName; + + @Schema(description = "创建时间") + @TableField(value = "createTime", fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonIgnore + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java b/outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java similarity index 70% rename from common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java index 8826f8d3..03024151 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; public class HkCloudSignObject { diff --git a/common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java b/outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java similarity index 96% rename from common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java index 28d7e5b4..1d47be76 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java similarity index 93% rename from common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java index c7bfc161..557328d9 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; public class LyricAttachmentInfo { diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java similarity index 96% rename from common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java index 37cab5dd..29fbd348 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java similarity index 95% rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java index 3f61c8ec..27773c40 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; public class LyricProjectBaseInfo { public String project_num; diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java similarity index 95% rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java index e27b2055..59430099 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java similarity index 93% rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java index fef782bc..5fc2fbfa 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java @@ -1,4 +1,4 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java similarity index 98% rename from common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java index d71439aa..d9d2e21a 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java +++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java @@ -1,6 +1,5 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.mode; -import io.netty.channel.ChannelHandler; import io.swagger.v3.oas.annotations.media.Schema; public class LyricTodoEntity { diff --git a/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java b/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java new file mode 100644 index 00000000..bd6cb01c --- /dev/null +++ b/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java @@ -0,0 +1,11 @@ +package com.sdm.outbridge.service.impl.lyric; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sdm.outbridge.dao.ViewLyricConfigMapper; +import com.sdm.outbridge.entity.ViewLyricconfig; +import com.sdm.outbridge.service.lyric.IViewLyricConfigService; +import org.springframework.stereotype.Service; + +@Service +public class ViewLyricConfigServiceImpl extends ServiceImpl implements IViewLyricConfigService { +} diff --git a/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java new file mode 100644 index 00000000..b3adec96 --- /dev/null +++ b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java @@ -0,0 +1,8 @@ +package com.sdm.outbridge.service.lyric; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.sdm.outbridge.entity.ViewLyricconfig; + +/* 这个接口只是测试的 */ +public interface IViewLyricConfigService extends IService { +} diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java similarity index 99% rename from common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java rename to outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java index 82e3ea15..1ad91926 100644 --- a/common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java +++ b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java @@ -1,12 +1,12 @@ -package com.sdm.common.service.lyric; +package com.sdm.outbridge.service.lyric; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONWriter; -import com.fasterxml.jackson.databind.ser.SerializerFactory; import com.sdm.common.common.SdmResponse; import com.sdm.common.utils.HttpUtil; +import com.sdm.outbridge.mode.HkUploadFileReq; import lombok.extern.slf4j.Slf4j; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; diff --git a/common/src/main/resources/common.yml b/outbridge/src/main/resources/common.yml similarity index 81% rename from common/src/main/resources/common.yml rename to outbridge/src/main/resources/common.yml index 47dc1d96..35536468 100644 --- a/common/src/main/resources/common.yml +++ b/outbridge/src/main/resources/common.yml @@ -1,3 +1,13 @@ +spring: + application: + name: pbs + datasource: + second: + username: root + password: mysql + jdbc-url: jdbc:mysql://192.168.65.161:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai + driver-class-name: com.mysql.cj.jdbc.Driver + # 测试开发环境 #appKey : 380ad3deb578424c9ca5178383f732c1 #appSecret : 805c316f35024b8b9566ca67b4991c42 diff --git a/pbs/pom.xml b/pbs/pom.xml index f0d02196..bd84be5a 100644 --- a/pbs/pom.xml +++ b/pbs/pom.xml @@ -30,6 +30,19 @@ + + + com.sdm + outbridge + 0.0.1-SNAPSHOT + + + * + * + + + + org.springframework.boot spring-boot-starter diff --git a/pbs/src/main/java/com/sdm/pbs/PbsApplication.java b/pbs/src/main/java/com/sdm/pbs/PbsApplication.java index ad80d7b7..34415183 100644 --- a/pbs/src/main/java/com/sdm/pbs/PbsApplication.java +++ b/pbs/src/main/java/com/sdm/pbs/PbsApplication.java @@ -6,7 +6,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableScheduling; -@SpringBootApplication(scanBasePackages = {"com.sdm.pbs","com.sdm.common"}) +@SpringBootApplication(scanBasePackages = {"com.sdm.pbs","com.sdm.common","com.sdm.outbridge"}) @EnableDiscoveryClient @EnableScheduling @EnableFeignClients(basePackages = "com.sdm.common.feign") diff --git a/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java new file mode 100644 index 00000000..3fff7797 --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java @@ -0,0 +1,43 @@ +package com.sdm.pbs.controller; + +import com.alibaba.fastjson2.JSONObject; +import com.sdm.common.common.SdmResponse; +import com.sdm.outbridge.entity.ViewLyricconfig; +import com.sdm.outbridge.service.lyric.IViewLyricConfigService; +import com.sdm.pbs.model.entity.SimulationCommandPlaceholder; +import com.sdm.pbs.service.ISimulationCommandPlaceholderService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Slf4j +@RestController +@RequestMapping("/sec") +@Tag(name = "测试外部模块系统交互", description = "测试外部模块系统交互") +public class TestSecondDbController { + + @Autowired + private ISimulationCommandPlaceholderService simulationCommandPlaceholderService; + + @Autowired + private IViewLyricConfigService viewLyricConfigService; + + + @GetMapping("/testSec") + @Operation(summary = "测试多数据源") + public SdmResponse testSec() { + // 查询主数据源 + List placeholders = simulationCommandPlaceholderService.lambdaQuery().list(); + // 查询从数据源 + List seconds = viewLyricConfigService.lambdaQuery().list(); + System.out.println(JSONObject.toJSONString(placeholders)); + System.out.println(JSONObject.toJSONString(seconds)); + return SdmResponse.success(JSONObject.toJSONString(seconds)); + } + + +} diff --git a/pom.xml b/pom.xml index 177ad680..f008c093 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ system common flowable + outbridge