package com.moral.api.config.mybatis; 
 | 
  
 | 
import com.baomidou.mybatisplus.annotation.DbType; 
 | 
import com.baomidou.mybatisplus.extension.parsers.DynamicTableNameParser; 
 | 
import com.baomidou.mybatisplus.extension.parsers.ITableNameHandler; 
 | 
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; 
 | 
import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler; 
 | 
import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor; 
 | 
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; 
 | 
import com.moral.api.entity.HistoryFiveMinutely; 
 | 
import com.moral.api.mapper.HistoryFiveMinutelyMapper; 
 | 
import com.moral.api.service.HistorySecondUavService; 
 | 
import com.moral.api.service.impl.HistorySecondUavServiceImpl; 
 | 
import com.moral.api.service.impl.OrganizationServiceImpl; 
 | 
import org.apache.ibatis.reflection.MetaObject; 
 | 
import org.apache.ibatis.session.SqlSessionFactory; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.context.annotation.Bean; 
 | 
import org.springframework.context.annotation.Configuration; 
 | 
  
 | 
import java.text.SimpleDateFormat; 
 | 
import java.util.*; 
 | 
  
 | 
  
 | 
@Configuration 
 | 
public class MybatisPlusConfig { 
 | 
  
 | 
    public static ThreadLocal<String> tableName = new ThreadLocal<>(); 
 | 
  
 | 
    @Bean 
 | 
    public MybatisPlusInterceptor mybatisPlusInterceptor() { 
 | 
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); 
 | 
  
 | 
        //分页插件 
 | 
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); 
 | 
  
 | 
        // 动态表名SQL解析器 
 | 
        DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor(); 
 | 
        HashMap<String, TableNameHandler> map = new HashMap<>(); 
 | 
        map.put("history_hourly", (sql, tableName) -> tableName+this.tableName.get()); 
 | 
        map.put("history_five_minutely", (sql, tableName) -> tableName+this.tableName.get()); 
 | 
  
 | 
        dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map); 
 | 
        interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor); 
 | 
  
 | 
        return interceptor; 
 | 
    } 
 | 
  
 | 
} 
 |