diff --git a/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java index 2c2e4bd9e..a87812aca 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -3,10 +3,16 @@ package com.iformall.config; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.iformall.plugin.MultiTenancy; +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; @EnableTransactionManagement @@ -25,6 +31,109 @@ public class MyBatisConfiguration { multiTenancy.setProperties(properties); return multiTenancy; } + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } @Bean public PaginationInterceptor paginationInterceptor() { diff --git a/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java index d3baf02c6..12d60d7fd 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -1,9 +1,15 @@ package com.iformall.config; import com.iformall.plugin.MultiTenancy; +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; @Configuration @@ -20,4 +26,107 @@ public class MyBatisConfiguration { multiTenancy.setProperties(properties); return multiTenancy; } + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } } diff --git a/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java index d3baf02c6..12d60d7fd 100644 --- a/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -1,9 +1,15 @@ package com.iformall.config; import com.iformall.plugin.MultiTenancy; +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; @Configuration @@ -20,4 +26,107 @@ public class MyBatisConfiguration { multiTenancy.setProperties(properties); return multiTenancy; } + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } } diff --git a/mallinkCallback/pom.xml b/mallinkCallback/pom.xml index f0d9c7642..e220d94ec 100644 --- a/mallinkCallback/pom.xml +++ b/mallinkCallback/pom.xml @@ -23,7 +23,11 @@ mallinkService 1.0 - + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mallinkMQConsumer/pom.xml b/mallinkMQConsumer/pom.xml index 4e5ae9f12..948c58903 100644 --- a/mallinkMQConsumer/pom.xml +++ b/mallinkMQConsumer/pom.xml @@ -18,6 +18,11 @@ mallinkService 1.0 + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mallinkPosApi/pom.xml b/mallinkPosApi/pom.xml index db014c7f1..4de76d899 100644 --- a/mallinkPosApi/pom.xml +++ b/mallinkPosApi/pom.xml @@ -22,6 +22,11 @@ spring-boot-starter-test test + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mallinkSchedule/pom.xml b/mallinkSchedule/pom.xml index 298206a96..74b0aa69a 100644 --- a/mallinkSchedule/pom.xml +++ b/mallinkSchedule/pom.xml @@ -18,6 +18,11 @@ mallinkService 1.0 + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mallinkSysAdmin/pom.xml b/mallinkSysAdmin/pom.xml index c9d60a5d0..ff6832e29 100644 --- a/mallinkSysAdmin/pom.xml +++ b/mallinkSysAdmin/pom.xml @@ -40,7 +40,12 @@ kaptcha 0.0.9 - + + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mallinkWebSocketServer/pom.xml b/mallinkWebSocketServer/pom.xml index 942092684..14df8f84e 100644 --- a/mallinkWebSocketServer/pom.xml +++ b/mallinkWebSocketServer/pom.xml @@ -26,6 +26,11 @@ org.springframework.boot spring-boot-starter-reactor-netty + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java new file mode 100644 index 000000000..8d6b222da --- /dev/null +++ b/mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -0,0 +1,119 @@ +package com.iformall.config; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +@EnableTransactionManagement +@Configuration +public class MyBatisConfiguration { + + @Bean + public ShardingSpherePlugin shardingSpherePlugin() { + ShardingSpherePlugin shardingSpherePlugin = new ShardingSpherePlugin(); + Properties properties = new Properties(); + properties.setProperty("dialect", "mysql"); + shardingSpherePlugin.setProperties(properties); + List shardingList = new ArrayList(); + shardingSpherePlugin.setShardingSpheres(shardingList); + + ShardingSphere wxCUserSharding = new ShardingSphere(); + wxCUserSharding.setColumn("tenant_id"); + wxCUserSharding.setTableName("wx_c_user"); + wxCUserSharding.setCount(100); + wxCUserSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserSharding); + + ShardingSphere basicInfoSharding = new ShardingSphere(); + basicInfoSharding.setColumn("final_tenant_id"); + basicInfoSharding.setTableName("wx_c_user_basic_info"); + basicInfoSharding.setCount(100); + basicInfoSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(basicInfoSharding); + + ShardingSphere wxOrderSharding = new ShardingSphere(); + wxOrderSharding.setColumn("tenant_id"); + wxOrderSharding.setTableName("wx_order"); + wxOrderSharding.setCount(100); + wxOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderSharding); + + ShardingSphere wxPayOrderSharding = new ShardingSphere(); + wxPayOrderSharding.setColumn("tenant_id"); + wxPayOrderSharding.setTableName("wx_pay_order"); + wxPayOrderSharding.setCount(100); + wxPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPayOrderSharding); + + ShardingSphere wxCouponOrderSharding = new ShardingSphere(); + wxCouponOrderSharding.setColumn("tenant_id"); + wxCouponOrderSharding.setTableName("wx_coupon_order"); + wxCouponOrderSharding.setCount(100); + wxCouponOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponOrderSharding); + + ShardingSphere wxOrderGroupSharding = new ShardingSphere(); + wxOrderGroupSharding.setColumn("tenant_id"); + wxOrderGroupSharding.setTableName("wx_order_group"); + wxOrderGroupSharding.setCount(100); + wxOrderGroupSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderGroupSharding); + + ShardingSphere wxOrderPressSharding = new ShardingSphere(); + wxOrderPressSharding.setColumn("tenant_id"); + wxOrderPressSharding.setTableName("wx_order_press"); + wxOrderPressSharding.setCount(100); + wxOrderPressSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxOrderPressSharding); + + ShardingSphere wxScoreHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_score_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxScoreHistorySharding); + + ShardingSphere wxCreditHistorySharding = new ShardingSphere(); + wxScoreHistorySharding.setColumn("tenant_id"); + wxScoreHistorySharding.setTableName("wx_credit_history"); + wxScoreHistorySharding.setCount(100); + wxScoreHistorySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCreditHistorySharding); + + ShardingSphere wxCarCmdLogSharding = new ShardingSphere(); + wxCarCmdLogSharding.setColumn("tenant_id"); + wxCarCmdLogSharding.setTableName("wx_car_cmd_log"); + wxCarCmdLogSharding.setCount(100); + wxCarCmdLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCarCmdLogSharding); + + ShardingSphere wxMerchantSubsidySharding = new ShardingSphere(); + wxMerchantSubsidySharding.setColumn("tenant_id"); + wxMerchantSubsidySharding.setTableName("wx_merchant_subsidy"); + wxMerchantSubsidySharding.setCount(100); + wxMerchantSubsidySharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxMerchantSubsidySharding); + + ShardingSphere wxProfitSharingOrderSharding = new ShardingSphere(); + wxProfitSharingOrderSharding.setColumn("tenant_id"); + wxProfitSharingOrderSharding.setTableName("wx_profit_sharing_order"); + wxProfitSharingOrderSharding.setCount(100); + wxProfitSharingOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxProfitSharingOrderSharding); + + ShardingSphere wxCouponActionLogSharding = new ShardingSphere(); + wxCouponActionLogSharding.setColumn("tenant_id"); + wxCouponActionLogSharding.setTableName("wx_coupon_action_log"); + wxCouponActionLogSharding.setCount(100); + wxCouponActionLogSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponActionLogSharding); + + return shardingSpherePlugin; + } +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java index c6b24dd74..fa5987a2f 100644 --- a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java @@ -22,7 +22,7 @@ public class ShardingRuleExcuter { public static String getTableIndex(Integer rule,Object value,int tableCount) { String index = getServiceMap().get(rule).getTableIndex(value, tableCount); if (StringUtils.isEmpty(index)) { - throw new RuntimeException("Sharding Rule["+rule+"] not support."); + throw new RuntimeException("Sharding Rule["+rule+"] not support. column value:"+value+" tableCount:"+tableCount) ; } return index; }