From 046c2f46877cb6621c4759076a9f2d301f58d223 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 8 Sep 2020 16:30:49 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E8=A1=A8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shard/annotation/IgnoreSharding.java | 16 ++ .../plugin/shard/impl/EnumShardingRule.java | 27 +++ .../shard/impl/ShardingRuleExcuter.java | 29 +++ .../plugin/shard/impl/ShardingSphere.java | 38 +++ .../shard/impl/ShardingTableExcuter.java | 33 +++ .../impl/rule/ShardingRuleDefaultService.java | 17 ++ .../shard/impl/rule/ShardingRuleService.java | 6 + .../shard/plugin/ShardingSpherePlugin.java | 227 ++++++++++++++++++ 8 files changed, 393 insertions(+) create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/annotation/IgnoreSharding.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/EnumShardingRule.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingSphere.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingTableExcuter.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleService.java create mode 100644 mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/annotation/IgnoreSharding.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/annotation/IgnoreSharding.java new file mode 100644 index 000000000..c8388fb10 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/annotation/IgnoreSharding.java @@ -0,0 +1,16 @@ +package com.iformall.plugin.shard.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 在mapper方法上面用 + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface IgnoreSharding { +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/EnumShardingRule.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/EnumShardingRule.java new file mode 100644 index 000000000..1d48fcf4e --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/EnumShardingRule.java @@ -0,0 +1,27 @@ +package com.iformall.plugin.shard.impl; + +public enum EnumShardingRule { + + HASH(1,"哈希值分表"); + + + private Integer code; + private String name; + + private EnumShardingRule(Integer code, String name) { + this.code = code; + this.name = name; + } + public Integer getCode() { + return code; + } + public void setCode(Integer code) { + this.code = code; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } +} 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 new file mode 100644 index 000000000..c6b24dd74 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingRuleExcuter.java @@ -0,0 +1,29 @@ +package com.iformall.plugin.shard.impl; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import com.alibaba.druid.util.StringUtils; +import com.iformall.plugin.shard.impl.rule.ShardingRuleDefaultService; +import com.iformall.plugin.shard.impl.rule.ShardingRuleService; + +public class ShardingRuleExcuter { + + private static Map serviceMap = null; + + private static Map getServiceMap() { + if (null == serviceMap) { + serviceMap = new ConcurrentHashMap(); + serviceMap.put(EnumShardingRule.HASH.getCode(), new ShardingRuleDefaultService()); + } + return serviceMap; + } + + 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."); + } + return index; + } +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingSphere.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingSphere.java new file mode 100644 index 000000000..b2a6ca318 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingSphere.java @@ -0,0 +1,38 @@ +package com.iformall.plugin.shard.impl; + +public class ShardingSphere { + + public static final String TABLE_SUFFIX = "_"; + /*表名,不用带下划线**/ + private String tableName; + /*分表列名**/ + private String column; + /*分表规则**/ + private Integer rule; + /*表数量**/ + private Integer count; + public String getTableName() { + return tableName; + } + public void setTableName(String tableName) { + this.tableName = tableName; + } + public String getColumn() { + return column; + } + public void setColumn(String column) { + this.column = column; + } + public Integer getRule() { + return rule; + } + public void setRule(Integer rule) { + this.rule = rule; + } + public Integer getCount() { + return count; + } + public void setCount(Integer count) { + this.count = count; + } +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingTableExcuter.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingTableExcuter.java new file mode 100644 index 000000000..7bc62b972 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/ShardingTableExcuter.java @@ -0,0 +1,33 @@ +package com.iformall.plugin.shard.impl; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class ShardingTableExcuter { + + private static Map tableMap = new ConcurrentHashMap(); + + public static Map setTableSharding(String table ,ShardingSphere ss) { + tableMap.put(table, ss); + return tableMap; + } + + public static ShardingSphere getShardingSphere(String table) { + return tableMap.get(table); + } + + public static boolean isShardingTable(String table) { + ShardingSphere ss = getShardingSphere(table); + if (null == ss) { + return false; + } + return true; + } + + public static boolean hasShardingConfig() { + if (null == tableMap || tableMap.size() <= 0) { + return false; + } + return true; + } +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java new file mode 100644 index 000000000..f4a3eec00 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java @@ -0,0 +1,17 @@ +package com.iformall.plugin.shard.impl.rule; + +public class ShardingRuleDefaultService implements ShardingRuleService { + + @Override + public String getTableIndex(Object value, int count) { + if (null == value || count <= 0 ) { + return null; + } + int hash = value.hashCode(); + if (hash < 0 ) { + hash = Math.abs(hash); + } + return String.valueOf(hash%count); + } + +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleService.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleService.java new file mode 100644 index 000000000..54291bd49 --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleService.java @@ -0,0 +1,6 @@ +package com.iformall.plugin.shard.impl.rule; + +public interface ShardingRuleService { + + public String getTableIndex(Object value,int count); +} diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java new file mode 100644 index 000000000..438f9916e --- /dev/null +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java @@ -0,0 +1,227 @@ +package com.iformall.plugin.shard.plugin; + +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.Parenthesis; +import net.sf.jsqlparser.expression.StringValue; +import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.conditional.OrExpression; +import net.sf.jsqlparser.expression.operators.relational.EqualsTo; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; +import net.sf.jsqlparser.expression.operators.relational.ItemsList; +import net.sf.jsqlparser.expression.operators.relational.MultiExpressionList; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.Statement; +import net.sf.jsqlparser.statement.create.table.ColDataType; +import net.sf.jsqlparser.statement.create.table.ColumnDefinition; +import net.sf.jsqlparser.statement.create.table.CreateTable; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.insert.Insert; +import net.sf.jsqlparser.statement.select.*; +import net.sf.jsqlparser.statement.update.Update; +import net.sf.jsqlparser.util.TablesNamesFinder; +import org.apache.ibatis.executor.statement.StatementHandler; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.ParameterMapping; +import org.apache.ibatis.mapping.SqlCommandType; +import org.apache.ibatis.plugin.*; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.reflection.SystemMetaObject; +import org.apache.ibatis.session.Configuration; +import org.apache.ibatis.session.ResultHandler; + +import com.iformall.plugin.shard.annotation.IgnoreSharding; +import com.iformall.plugin.shard.impl.ShardingRuleExcuter; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.impl.ShardingTableExcuter; + +import java.lang.reflect.Method; +import java.sql.Connection; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + *分表 + */ +@Intercepts({ + //@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}), + //@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}) + @Signature( method = "prepare", type = StatementHandler.class,args = {Connection.class, Integer.class}), + @Signature(method = "query", type = StatementHandler.class, args = {java.sql.Statement.class, ResultHandler.class}) +}) +public class ShardingSpherePlugin implements Interceptor { + + + public ShardingSpherePlugin(){ + } + + //属性参数信息 + private Properties properties; + private String dialect = "mysql"; + private List ShardingSpheres; + public String getDialect() { + return dialect; + } + public void setDialect(String dialect) { + this.dialect = dialect; + } + public List getShardingSpheres() { + return ShardingSpheres; + } + public void setShardingSpheres(List shardingSpheres) { + ShardingSpheres = shardingSpheres; + } + + /** + * 生成代理对象 + * + * @param target + * @return + */ + @Override + public Object plugin(Object target) { + if (target instanceof StatementHandler) { + return Plugin.wrap(target, this); + } else { + return target; + } + } + + /** + * 获取配置信息 + * {dialect=mysql, tenantInfo=org.xue.test.TenantInfoImpl, tenantIdColumn=tenant_id, parentTenantIdColumn=parent_tenant_id} + * @param properties + */ + @Override + public void setProperties(Properties properties) { + this.properties=properties; + this.dialect = this.properties.getProperty("dialect"); + if (null != this.ShardingSpheres) { + for (ShardingSphere ss : this.ShardingSpheres) { + ShardingTableExcuter.setTableSharding(ss.getTableName(), ss); + } + } + } + + private Method findMethod(Method[] methods, String methodName) { + for (Method method : methods) { + if (method.getName().equals(methodName)) { + return method; + } + } + + return null; + } + public Object intercept(Invocation invocation) throws Throwable { + if (!ShardingTableExcuter.hasShardingConfig()) { + return invocation.proceed(); + } + StatementHandler statementHandler = (StatementHandler) invocation.getTarget(); + MetaObject metaStatementHandler = SystemMetaObject.forObject(statementHandler); + MappedStatement ms = (MappedStatement) metaStatementHandler.getValue("delegate.mappedStatement"); + String id = ms.getId(); + String className = id.substring(0, id.lastIndexOf(".")); + String methodName = id.substring(id.lastIndexOf(".") + 1); + Class clazz = Class.forName(className); + Method method = findMethod(clazz.getDeclaredMethods(), methodName); + if (method != null) { + IgnoreSharding ignore = method.getAnnotation(IgnoreSharding.class); + if (null == ignore) { + //Configuration configuration = (Configuration) metaStatementHandler.getValue("delegate.configuration"); + Object parameterObject = metaStatementHandler.getValue("delegate.boundSql.parameterObject"); + BoundSql boundSql = statementHandler.getBoundSql(); + String newSQL = buildTable(boundSql,parameterObject); + metaStatementHandler.setValue("delegate.boundSql.sql", newSQL); + } + } + return invocation.proceed(); + } + + private String buildTable(BoundSql boundSql,Object parameterObject) throws JSQLParserException { + String oldSql = boundSql.getSql(); + Statement stmt = CCJSqlParserUtil.parse(oldSql); + if (stmt instanceof Insert) { + return buildInsert((Insert) stmt,oldSql,parameterObject); + } + + if (stmt instanceof Delete) { + return buildDelete((Delete) stmt,oldSql,parameterObject); + } + + if (stmt instanceof Update) { + return buildUpdate((Update) stmt,oldSql,parameterObject); + } + + if (stmt instanceof Select) { + return buildSelect((Select) stmt,oldSql,parameterObject); + } + + if (stmt instanceof CreateTable) { + return oldSql; + } + throw new RuntimeException("非法sql语句,请检查"+oldSql); + } + + private String buildInsert(Insert stmt,String oldSql,Object parameterObject) { + return buildTable(stmt.getTable(), oldSql, parameterObject); + } + + private String buildDelete(Delete stmt,String oldSql,Object parameterObject) { + return buildTable(stmt.getTable(), oldSql, parameterObject); + } + + private String buildUpdate(Update stmt,String oldSql,Object parameterObject) { + return buildListTables(stmt.getTables(), oldSql, parameterObject); + } + + private String buildSelect(Select stmt,String oldSql,Object parameterObject) { + TablesNamesFinder tablesNamesFinder = new TablesNamesFinder(); + List tableList = tablesNamesFinder.getTableList(stmt); + return buildByListTableNames(tableList, oldSql, parameterObject); + } + + private String buildByTableName(String table,String oldSql,Object parameterObject) { + if (!ShardingTableExcuter.isShardingTable(table)) { + return oldSql; + } + String newtable = getShareTable(table,parameterObject); + return oldSql.replaceAll(table, newtable); + } + + private String buildTable(Table table,String oldSql,Object parameterObject) { + return buildByTableName(table.getName(), oldSql, parameterObject); + } + + private String buildListTables(List tables,String oldSql,Object parameterObject) { + for (Table t : tables) { + oldSql = buildTable(t,oldSql,parameterObject); + } + return oldSql; + } + + private String buildByListTableNames(List tables,String oldSql,Object parameterObject) { + for (String t : tables) { + oldSql = buildByTableName(t,oldSql,parameterObject); + } + return oldSql; + } + + private String getShareTable(String table,Object parameterObject) { + ShardingSphere ss = ShardingTableExcuter.getShardingSphere(table); + return ss.getTableName()+ShardingSphere.TABLE_SUFFIX+ShardingRuleExcuter.getTableIndex(ss.getRule(), getValue(ss.getColumn(),parameterObject), ss.getCount()); + } + + private Object getValue(String column,Object parameterObject) { + if (parameterObject instanceof Map) { + return ((Map) parameterObject).get(column); + } + return parameterObject; + } + +} From 513371c9de8e8c21e4ea11fb36328ba7a3ffc1a9 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 8 Sep 2020 17:33:56 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/config/MyBatisConfiguration.java | 109 ++++++++++++++++ .../iformall/config/MyBatisConfiguration.java | 109 ++++++++++++++++ .../iformall/config/MyBatisConfiguration.java | 109 ++++++++++++++++ mallinkCallback/pom.xml | 6 +- .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ mallinkMQConsumer/pom.xml | 5 + .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ mallinkPosApi/pom.xml | 5 + .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ mallinkSchedule/pom.xml | 5 + .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ mallinkSysAdmin/pom.xml | 7 +- .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ mallinkWebSocketServer/pom.xml | 5 + .../iformall/config/MyBatisConfiguration.java | 119 ++++++++++++++++++ .../shard/impl/ShardingRuleExcuter.java | 2 +- 16 files changed, 1073 insertions(+), 3 deletions(-) create mode 100644 mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java create mode 100644 mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java create mode 100644 mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java create mode 100644 mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java create mode 100644 mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java create mode 100644 mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java 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; } From 243ba0c14cab5e2d3d8c3af4276af6ed90567233 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Tue, 8 Sep 2020 17:40:43 +0800 Subject: [PATCH 3/8] fix config --- mallinkAdmin/src/main/resources/application-dev.yml | 2 +- mallinkBApi/src/main/resources/application-dev.yml | 2 +- mallinkCApi/src/main/resources/application-dev.yml | 2 +- mallinkCallback/src/main/resources/application-dev.yml | 2 +- mallinkMQConsumer/src/main/resources/application-dev.yml | 2 +- mallinkPosApi/src/main/resources/application-dev.yml | 2 +- mallinkSchedule/src/main/resources/application-dev.yml | 2 +- mallinkSysAdmin/src/main/resources/application-dev.yml | 2 +- mallinkWebSocketServer/src/main/resources/application-dev.yml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index 0756d9947..69ba4d0ff 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true&allowMultiQueries=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true&allowMultiQueries=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkBApi/src/main/resources/application-dev.yml b/mallinkBApi/src/main/resources/application-dev.yml index 7c04ff8da..a0e4a0a0d 100644 --- a/mallinkBApi/src/main/resources/application-dev.yml +++ b/mallinkBApi/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkCApi/src/main/resources/application-dev.yml b/mallinkCApi/src/main/resources/application-dev.yml index f39f67791..c2d4c53db 100644 --- a/mallinkCApi/src/main/resources/application-dev.yml +++ b/mallinkCApi/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkCallback/src/main/resources/application-dev.yml b/mallinkCallback/src/main/resources/application-dev.yml index d5a8259d9..a4b534e06 100644 --- a/mallinkCallback/src/main/resources/application-dev.yml +++ b/mallinkCallback/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkMQConsumer/src/main/resources/application-dev.yml b/mallinkMQConsumer/src/main/resources/application-dev.yml index e477418f1..4de52cdb4 100644 --- a/mallinkMQConsumer/src/main/resources/application-dev.yml +++ b/mallinkMQConsumer/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkPosApi/src/main/resources/application-dev.yml b/mallinkPosApi/src/main/resources/application-dev.yml index cbc7f9d3e..c1ca28747 100644 --- a/mallinkPosApi/src/main/resources/application-dev.yml +++ b/mallinkPosApi/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkSchedule/src/main/resources/application-dev.yml b/mallinkSchedule/src/main/resources/application-dev.yml index 5e60ffc5a..eaab6dc5d 100644 --- a/mallinkSchedule/src/main/resources/application-dev.yml +++ b/mallinkSchedule/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkSysAdmin/src/main/resources/application-dev.yml b/mallinkSysAdmin/src/main/resources/application-dev.yml index 105e0fc3e..1a4ed0750 100644 --- a/mallinkSysAdmin/src/main/resources/application-dev.yml +++ b/mallinkSysAdmin/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource diff --git a/mallinkWebSocketServer/src/main/resources/application-dev.yml b/mallinkWebSocketServer/src/main/resources/application-dev.yml index 2cd7b85bc..cc42b1e14 100644 --- a/mallinkWebSocketServer/src/main/resources/application-dev.yml +++ b/mallinkWebSocketServer/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ spring: include: rabbitMQ # JDBC datasource: - url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true + url: jdbc:mysql://202.165.179.86:3306/mallink_share?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&useAffectedRows=true username: root password: fm2020test type: com.alibaba.druid.pool.DruidDataSource From 2cb1047c7a5d1f723a9c9a38d4457a3f86e020e9 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 9 Sep 2020 16:17:46 +0800 Subject: [PATCH 4/8] fix contract --- .../plugin/shard/plugin/ShardingSpherePlugin.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java index 438f9916e..d06fd59be 100644 --- a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java @@ -186,16 +186,16 @@ public class ShardingSpherePlugin implements Interceptor { return buildByListTableNames(tableList, oldSql, parameterObject); } + private String buildTable(Table table,String oldSql,Object parameterObject) { + return buildByTableName(table.getName(), oldSql, parameterObject); + } + private String buildByTableName(String table,String oldSql,Object parameterObject) { if (!ShardingTableExcuter.isShardingTable(table)) { return oldSql; } String newtable = getShareTable(table,parameterObject); - return oldSql.replaceAll(table, newtable); - } - - private String buildTable(Table table,String oldSql,Object parameterObject) { - return buildByTableName(table.getName(), oldSql, parameterObject); + return oldSql.replaceAll(table+" ", newtable+" ").replaceAll(table+".", newtable+"。"); } private String buildListTables(List
tables,String oldSql,Object parameterObject) { From 8edc5c1b56c03f5ed6f9b42fc9c28523a7acac35 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Thu, 10 Sep 2020 09:42:12 +0800 Subject: [PATCH 5/8] fix shard bug --- .../com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java index d06fd59be..6823395d0 100644 --- a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/plugin/ShardingSpherePlugin.java @@ -195,7 +195,7 @@ public class ShardingSpherePlugin implements Interceptor { return oldSql; } String newtable = getShareTable(table,parameterObject); - return oldSql.replaceAll(table+" ", newtable+" ").replaceAll(table+".", newtable+"。"); + return oldSql.replaceAll(table+" ", newtable+" ").replaceAll(table+".", newtable+"。").replaceAll(table+")", newtable+")"); } private String buildListTables(List
tables,String oldSql,Object parameterObject) { From d4751f8ec0bea4526ac7dc85709da61e7543b616 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Thu, 10 Sep 2020 14:27:28 +0800 Subject: [PATCH 6/8] fix --- mallinkAdmin/pom.xml | 5 - .../iformall/config/MyBatisConfiguration.java | 108 +-------------- mallinkBApi/pom.xml | 5 - .../iformall/config/MyBatisConfiguration.java | 102 +------------- mallinkCApi/pom.xml | 5 - .../iformall/config/MyBatisConfiguration.java | 102 +------------- mallinkCallback/pom.xml | 5 - .../iformall/config/MyBatisConfiguration.java | 107 +-------------- mallinkMQConsumer/pom.xml | 5 - .../iformall/config/MyBatisConfiguration.java | 102 +------------- mallinkPosApi/pom.xml | 7 +- .../iformall/config/MyBatisConfiguration.java | 102 +------------- mallinkSchedule/pom.xml | 7 +- .../iformall/config/MyBatisConfiguration.java | 107 +-------------- mallinkService/pom.xml | 6 +- .../config/BaseMyBatisConfiguration.java | 129 ++++++++++++++++++ mallinkSysAdmin/pom.xml | 6 - .../iformall/config/MyBatisConfiguration.java | 102 +------------- mallinkWebSocketServer/pom.xml | 7 +- .../iformall/config/MyBatisConfiguration.java | 102 +------------- 20 files changed, 155 insertions(+), 966 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java diff --git a/mallinkAdmin/pom.xml b/mallinkAdmin/pom.xml index d17aa1dd1..607df26a9 100644 --- a/mallinkAdmin/pom.xml +++ b/mallinkAdmin/pom.xml @@ -23,11 +23,6 @@ mallinkService 1.0 - - com.iformall - mybatis-multi-tenancy - 1.0 - commons-fileupload commons-fileupload diff --git a/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java index a87812aca..4840020d3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -3,21 +3,15 @@ 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 @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration{ @Bean @@ -34,105 +28,7 @@ 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; + return baseShardingSpherePlugin(); } @Bean diff --git a/mallinkBApi/pom.xml b/mallinkBApi/pom.xml index d35260501..9678c5914 100644 --- a/mallinkBApi/pom.xml +++ b/mallinkBApi/pom.xml @@ -17,11 +17,6 @@ mallinkService 1.0 - - com.iformall - mybatis-multi-tenancy - 1.0 - diff --git a/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java index 12d60d7fd..f17276366 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Properties; @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration{ @Bean public MultiTenancy multiTenancy() { @@ -29,104 +29,6 @@ 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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkCApi/pom.xml b/mallinkCApi/pom.xml index e3708dd5a..9c71414ee 100644 --- a/mallinkCApi/pom.xml +++ b/mallinkCApi/pom.xml @@ -17,11 +17,6 @@ mallinkService 1.0 - - com.iformall - mybatis-multi-tenancy - 1.0 - diff --git a/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java index 12d60d7fd..dbd3c59eb 100644 --- a/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Properties; @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @Bean public MultiTenancy multiTenancy() { @@ -29,104 +29,6 @@ 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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkCallback/pom.xml b/mallinkCallback/pom.xml index e220d94ec..4d8ffac74 100644 --- a/mallinkCallback/pom.xml +++ b/mallinkCallback/pom.xml @@ -23,11 +23,6 @@ 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 index 8d6b222da..98d9d2b0d 100644 --- a/mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkCallback/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -1,119 +1,16 @@ 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 { +public class MyBatisConfiguration extends BaseMyBatisConfiguration{ @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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkMQConsumer/pom.xml b/mallinkMQConsumer/pom.xml index 948c58903..4e5ae9f12 100644 --- a/mallinkMQConsumer/pom.xml +++ b/mallinkMQConsumer/pom.xml @@ -18,11 +18,6 @@ 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 index 8d6b222da..44594175c 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -12,108 +12,10 @@ import java.util.Properties; @EnableTransactionManagement @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkPosApi/pom.xml b/mallinkPosApi/pom.xml index 4de76d899..24efb4379 100644 --- a/mallinkPosApi/pom.xml +++ b/mallinkPosApi/pom.xml @@ -21,12 +21,7 @@ org.springframework.boot 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 index 8d6b222da..44594175c 100644 --- a/mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkPosApi/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -12,108 +12,10 @@ import java.util.Properties; @EnableTransactionManagement @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkSchedule/pom.xml b/mallinkSchedule/pom.xml index 74b0aa69a..0c8cdee1b 100644 --- a/mallinkSchedule/pom.xml +++ b/mallinkSchedule/pom.xml @@ -17,12 +17,7 @@ com.iformall 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 index 8d6b222da..d43f1ee9d 100644 --- a/mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkSchedule/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -1,119 +1,16 @@ 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 { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkService/pom.xml b/mallinkService/pom.xml index e0b95911d..29d293544 100644 --- a/mallinkService/pom.xml +++ b/mallinkService/pom.xml @@ -30,7 +30,11 @@ ons-client 1.8.4.Final - + + com.iformall + mybatis-multi-tenancy + 1.0 + diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java new file mode 100644 index 000000000..3d7a6db37 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -0,0 +1,129 @@ +package com.iformall.config; + +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import com.iformall.plugin.shard.impl.EnumShardingRule; +import com.iformall.plugin.shard.impl.ShardingSphere; +import com.iformall.plugin.shard.plugin.ShardingSpherePlugin; + +public class BaseMyBatisConfiguration { + + //分表配置 + protected ShardingSpherePlugin baseShardingSpherePlugin() { + 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 wxPosOrderSharding = new ShardingSphere(); + wxPosOrderSharding.setColumn("tenant_id"); + wxPosOrderSharding.setTableName("pos_order"); + wxPosOrderSharding.setCount(100); + wxPosOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPosOrderSharding); + + ShardingSphere wxPosPayOrderSharding = new ShardingSphere(); + wxPosPayOrderSharding.setColumn("tenant_id"); + wxPosPayOrderSharding.setTableName("pos_pay_order"); + wxPosPayOrderSharding.setCount(100); + wxPosPayOrderSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxPosPayOrderSharding); + + 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 ff6832e29..9544ca12d 100644 --- a/mallinkSysAdmin/pom.xml +++ b/mallinkSysAdmin/pom.xml @@ -40,12 +40,6 @@ 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 index 8d6b222da..44594175c 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -12,108 +12,10 @@ import java.util.Properties; @EnableTransactionManagement @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @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; + return baseShardingSpherePlugin(); } } diff --git a/mallinkWebSocketServer/pom.xml b/mallinkWebSocketServer/pom.xml index 14df8f84e..6b91cf9f3 100644 --- a/mallinkWebSocketServer/pom.xml +++ b/mallinkWebSocketServer/pom.xml @@ -25,12 +25,7 @@ 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 index 8d6b222da..ce76b65a1 100644 --- a/mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java +++ b/mallinkWebSocketServer/src/main/java/com/iformall/config/MyBatisConfiguration.java @@ -12,108 +12,10 @@ import java.util.Properties; @EnableTransactionManagement @Configuration -public class MyBatisConfiguration { +public class MyBatisConfiguration extends BaseMyBatisConfiguration { @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; + return baseShardingSpherePlugin(); } } From a0596153b171dd27ea113ae834d4daf1f2bcd35d Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Fri, 11 Sep 2020 11:17:49 +0800 Subject: [PATCH 7/8] fix shard --- .../config/BaseMyBatisConfiguration.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 3d7a6db37..f1b794027 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -19,6 +19,27 @@ public class BaseMyBatisConfiguration { List shardingList = new ArrayList(); shardingSpherePlugin.setShardingSpheres(shardingList); + ShardingSphere wxCouponrSharding = new ShardingSphere(); + wxCouponrSharding.setColumn("tenant_id"); + wxCouponrSharding.setTableName("wx_coupon"); + wxCouponrSharding.setCount(100); + wxCouponrSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponrSharding); + + ShardingSphere wxCouponrMerchantSharding = new ShardingSphere(); + wxCouponrMerchantSharding.setColumn("tenant_id"); + wxCouponrMerchantSharding.setTableName("wx_coupon_merchant"); + wxCouponrMerchantSharding.setCount(100); + wxCouponrMerchantSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponrMerchantSharding); + + ShardingSphere wxCouponrChannelSharding = new ShardingSphere(); + wxCouponrChannelSharding.setColumn("tenant_id"); + wxCouponrChannelSharding.setTableName("wx_coupon_channel"); + wxCouponrChannelSharding.setCount(100); + wxCouponrChannelSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponrChannelSharding); + ShardingSphere wxCUserSharding = new ShardingSphere(); wxCUserSharding.setColumn("tenant_id"); wxCUserSharding.setTableName("wx_c_user"); From 3b75d0b6bf218e683402d353426ed00395ee95ea Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 14 Oct 2020 14:39:33 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix=20=E5=88=86=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/rule/ShardingRuleDefaultService.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java index f4a3eec00..7ee89d573 100644 --- a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/shard/impl/rule/ShardingRuleDefaultService.java @@ -7,11 +7,26 @@ public class ShardingRuleDefaultService implements ShardingRuleService { if (null == value || count <= 0 ) { return null; } + int hash = 9999999; + //如果是整数,则直接变为Long,好查询 + if (value instanceof String) { + try { + Long lvalue = Long.parseLong((String)value); + hash = getHashCode(lvalue); + }catch(Exception e) { + hash = getHashCode(value); + } + }else { + hash = getHashCode(value); + } + return String.valueOf(hash%count); + } + + private int getHashCode(Object value) { int hash = value.hashCode(); if (hash < 0 ) { hash = Math.abs(hash); } - return String.valueOf(hash%count); + return hash; } - }