Переглянути джерело

Merge remote-tracking branch 'origin/ScrmStores' into ScrmStores

yjwang 2 тижнів тому
батько
коміт
45b831f9dd

+ 15 - 1
fs-framework/src/main/java/com/fs/framework/config/DataSourceConfig.java

@@ -39,13 +39,27 @@ public class DataSourceConfig {
         return new DruidDataSource();
     }
 
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.sop.druid.read")
+    public DataSource sopSlaveDataSource() {
+        return new DruidDataSource();
+    }
+
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.mysql.druid.slave")
+    public DataSource masterSlaveDataSource() {
+        return new DruidDataSource();
+    }
+
     @Bean
     @Primary
-    public DynamicDataSource dataSource(@Qualifier("clickhouseDataSource") DataSource clickhouseDataSource,@Qualifier("masterDataSource") DataSource masterDataSource, @Qualifier("sopDataSource") DataSource sopDataSource) {
+    public DynamicDataSource dataSource(@Qualifier("clickhouseDataSource") DataSource clickhouseDataSource, @Qualifier("masterDataSource") DataSource masterDataSource, @Qualifier("sopDataSource") DataSource sopDataSource, @Qualifier("masterSlaveDataSource") DataSource masterSlaveDataSource, @Qualifier("sopSlaveDataSource") DataSource sopSlaveDataSource) {
         Map<Object, Object> targetDataSources = new HashMap<>();
         targetDataSources.put(DataSourceType.MASTER, masterDataSource);
         targetDataSources.put(DataSourceType.SOP.name(), sopDataSource);
         targetDataSources.put(DataSourceType.CLICKHOUSE.name(), clickhouseDataSource);
+        targetDataSources.put(DataSourceType.SLAVE.name(), masterSlaveDataSource);
+        targetDataSources.put(DataSourceType.SopREAD.name(), sopSlaveDataSource);
         return new DynamicDataSource(masterDataSource, targetDataSources);
     }
 

+ 15 - 1
fs-qw-task/src/main/java/com/fs/framework/config/DataSourceConfig.java

@@ -34,13 +34,27 @@ public class DataSourceConfig {
         return new DruidDataSource();
     }
 
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.sop.druid.read")
+    public DataSource sopSlaveDataSource() {
+        return new DruidDataSource();
+    }
+
+    @Bean
+    @ConfigurationProperties(prefix = "spring.datasource.mysql.druid.slave")
+    public DataSource masterSlaveDataSource() {
+        return new DruidDataSource();
+    }
+
 
 
     @Bean
     @Primary
-    public DynamicDataSource dataSource(@Qualifier("masterDataSource") DataSource masterDataSource, @Qualifier("sopDataSource") DataSource sopDataSource) {
+    public DynamicDataSource dataSource(@Qualifier("masterDataSource") DataSource masterDataSource, @Qualifier("sopDataSource") DataSource sopDataSource, @Qualifier("masterSlaveDataSource") DataSource masterSlaveDataSource, @Qualifier("sopSlaveDataSource") DataSource sopSlaveDataSource) {
         Map<Object, Object> targetDataSources = new HashMap<>();
         targetDataSources.put(DataSourceType.SOP.name(), sopDataSource);
+        targetDataSources.put(DataSourceType.SLAVE.name(), masterSlaveDataSource);
+        targetDataSources.put(DataSourceType.SopREAD.name(), sopSlaveDataSource);
         return new DynamicDataSource(masterDataSource, targetDataSources);
     }
 

+ 1 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -459,6 +459,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
 
     List<QwExternalContactVOTime> selectQwExternalContactListVOByUserIds(@Param("ids") List<String> ids);
 
+    @DataSource(DataSourceType.SLAVE)
     List<GroupUserExternalVo> selectByGroupUser(@Param("ids") List<String> ids);
 
     @Select("select is_repeat from qw_external_contact where user_id=${userId} limit 1")

+ 3 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwGroupChatMapper.java

@@ -1,5 +1,7 @@
 package com.fs.qw.mapper;
 
+import com.fs.common.annotation.DataSource;
+import com.fs.common.enums.DataSourceType;
 import com.fs.qw.domain.QwGroupChat;
 import com.fs.qw.param.QwGroupChatParam;
 import com.fs.qw.vo.QwGroupChatOptionsVO;
@@ -120,6 +122,7 @@ public interface QwGroupChatMapper
     @Select("select chat_id,name from qw_group_chat where corp_id = #{corpId} and find_in_set(owner,#{qwUserIds})")
     List<QwGroupChatOptionsVO> listAllByQwUserList(@Param("qwUserIds") String qwUserIds, @Param("corpId") String corpId);
 
+    @DataSource(DataSourceType.SLAVE)
     List<QwGroupChat> selectQwGroupChatByChatIds(@Param("ids") String[] ids);
 
     /**

+ 3 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwGroupChatUserMapper.java

@@ -1,5 +1,7 @@
 package com.fs.qw.mapper;
 
+import com.fs.common.annotation.DataSource;
+import com.fs.common.enums.DataSourceType;
 import com.fs.qw.domain.QwGroupChatUser;
 import com.fs.qw.param.QwGroupChatUserDataType;
 import com.fs.qw.vo.QwGroupChatUserVO;
@@ -145,7 +147,7 @@ public interface QwGroupChatUserMapper
     @Delete("delete from qw_group_chat_user where chat_id=#{chatId} and corp_id=#{corpId}")
     public int deleteQwGroupChatUserByIdAndCompanyId(@Param("chatId") String chatId,@Param("corpId") String corpId);
 
-
+    @DataSource(DataSourceType.SLAVE)
     List<QwGroupChatUser> selectQwGroupChatUserByChatIds(@Param("ids") String[] ids);
 
     List<QwGroupChatUser> selectUserIsChat(@Param("externalUserId") String externalUserId);

+ 1 - 1
fs-service/src/main/java/com/fs/sop/mapper/QwSopLogsMapper.java

@@ -321,7 +321,7 @@ public interface QwSopLogsMapper extends BaseMapper<QwSopLogs> {
     @DataSource(DataSourceType.SOP)
     List<QwSopLogs> selectIpadByCorpId(@Param("corpId") String corpId, @Param("now") LocalDateTime now);
 
-    @DataSource(DataSourceType.SOP)
+    @DataSource(DataSourceType.SopREAD)
     List<QwSopLogs> selectByQwUserId(@Param("id") Long id);
 
     @Select("select * from qw_sop_logs where send_type=8 and send_status=3 and  create_time <= DATE_SUB(NOW(), INTERVAL 2 HOUR) ")

+ 1 - 1
fs-service/src/main/java/com/fs/sop/mapper/SopUserLogsMapper.java

@@ -53,7 +53,7 @@ public interface SopUserLogsMapper {
 //    @DataSource(DataSourceType.SOP)
 //    int updateSopUserLogsDistinctByList(@Param("data") SopUserLogsArray userLogsArray);
 
-    @DataSource(DataSourceType.SOP)
+    @DataSource(DataSourceType.SopREAD)
     public List<SopUserLogsVo> selectSopUserLogsListByTime(@Param("sopIds") List<String> sopidList);
 
     @DataSource(DataSourceType.SOP)

+ 3 - 0
fs-service/src/main/java/com/fs/statis/mapper/ConsumptionBalanceMapper.java

@@ -1,5 +1,7 @@
 package com.fs.statis.mapper;
 
+import com.fs.common.annotation.DataSource;
+import com.fs.common.enums.DataSourceType;
 import com.fs.statis.dto.*;
 import org.apache.ibatis.annotations.Param;
 
@@ -105,6 +107,7 @@ public interface ConsumptionBalanceMapper {
      * @param param 请求参数
      * @return TOP10
      */
+    @DataSource(DataSourceType.SLAVE)
     List<CourseStatsDTO> watchCourseTopTen(AnalysisPreviewQueryDTO param);
 
     /**

+ 10 - 4
fs-service/src/main/resources/application-druid-yjb.yml

@@ -37,10 +37,10 @@ spring:
                 # 从库数据源
                 slave:
                     # 从数据源开关/默认关闭
-                    enabled: false
-                    url:
-                    username:
-                    password:
+                    enabled: true
+                    url: jdbc:mysql://10.206.0.12:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                    username: root
+                    password: Ylrz_1q2w3e4r5t6y
                 # 初始连接数
                 initialSize: 5
                 # 最小连接池数量
@@ -89,6 +89,12 @@ spring:
                     url: jdbc:mysql://10.206.0.9:3306/fs_his_sop?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                     username: root
                     password: Ylrz_1q2w3e4r5t6y
+                read:
+                  # 从数据源开关/默认关闭
+                  enabled: true
+                  url: jdbc:mysql://10.206.0.12:3306/fs_his?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                  username: root
+                  password: Ylrz_1q2w3e4r5t6y
                 # 初始连接数
                 initialSize: 5
                 # 最小连接池数量