//package com.gkhy.hazmat.common.config;
|
//
|
//import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
|
//import com.gkhy.hazmat.common.utils.StringUtils;
|
//
|
//import java.util.HashMap;
|
//import java.util.Map;
|
//
|
///**
|
// * 自定义动态表名处理器,基于id的方式进行分表
|
// */
|
//public class IdTableNameHandler implements TableNameHandler {
|
// private static final Map<String,Integer> CONFIG_TABLE_INFO_MAP=new HashMap<>();
|
//
|
// static {
|
// CONFIG_TABLE_INFO_MAP.put("hz_hazmat",20);
|
// CONFIG_TABLE_INFO_MAP.put("hz_hazmat_flow",20);
|
// CONFIG_TABLE_INFO_MAP.put("hz_product",20);
|
// CONFIG_TABLE_INFO_MAP.put("hz_product_flow",20);
|
// }
|
//
|
// private static final ThreadLocal<Long> ID_DATA=new ThreadLocal<>();
|
// @Override
|
// public String dynamicTableName(String sql, String tableName) {
|
// if(StringUtils.isBlank(tableName)||!CONFIG_TABLE_INFO_MAP.containsKey(tableName)){
|
// return tableName;
|
// }
|
// //分表个数
|
// int tableSize=CONFIG_TABLE_INFO_MAP.get(tableName);
|
// //当前分表的id
|
// Long currentId=getCurrentId();
|
// if(currentId==null){
|
// throw new RuntimeException("请设置分表id值");
|
// }
|
// int tableIndex= (int) (currentId%tableSize);
|
//
|
// //清理当前id
|
// // removeCurrentId();
|
//
|
// return tableName+"_"+tableIndex;
|
// }
|
//
|
// /**
|
// * 获取当前分表id
|
// * @param id
|
// */
|
// public static void setCurrentId(Long id){
|
// ID_DATA.set(id);
|
// }
|
//
|
// public static Long getCurrentId(){
|
// return ID_DATA.get();
|
// }
|
//
|
// public static void removeCurrentId(){
|
// ID_DATA.remove();
|
// }
|
//
|
//}
|