springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java
New file @@ -0,0 +1,63 @@ package com.panzhihua.service_grid.config; import com.baomidou.mybatisplus.core.toolkit.PluginUtils; import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import org.apache.ibatis.executor.Executor; 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.plugin.Intercepts; import org.apache.ibatis.plugin.Signature; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Map; @Intercepts({ @Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class}) }) public class MybatisHmkInterceptor implements InnerInterceptor { @Override public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { String sql=boundSql.getSql(); if(parameter instanceof Long){ if(sql.contains("community_id = ?")&&(long)parameter==10086){ sql=sql.replace("community_id = ?","community_id in (?)"); parameter="30,31"; boundSql.setAdditionalParameter("communityId",parameter); PluginUtils.mpBoundSql(boundSql).sql(sql); } } if(parameter instanceof Map){ List<ParameterMapping> parameterMappingList=new ArrayList<>(); if(sql.contains("community_id = ?")&&((Map<?, ?>) parameter).containsValue(10086L)){ List<ParameterMapping> parameterMappings=boundSql.getParameterMappings(); parameterMappings.forEach(parameterMapping -> { if (parameterMapping.getProperty().equals("communityId")){ ParameterMapping parameterMapping1=new ParameterMapping.Builder(ms.getConfiguration(),"communityId",Object.class).build(); parameterMappingList.add(parameterMapping1); } else { parameterMappingList.add(parameterMapping); } }); sql=sql.replace("community_id = ?","community_id in (?)"); ((Map<?,?>) parameter).replaceAll((k,v)->{ if(v.toString().equals("10086")){ boundSql.setAdditionalParameter(k.toString(),"30,31"); } return v; }); PluginUtils.mpBoundSql(boundSql).parameterMappings(parameterMappingList); PluginUtils.mpBoundSql(boundSql).sql(sql); } } InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql); } } springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisPlusConfig.java
@@ -26,6 +26,7 @@ public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); interceptor.addInnerInterceptor(new MybatisHmkInterceptor()); return interceptor; } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisHmkInterceptor.java
New file @@ -0,0 +1,63 @@ package com.panzhihua.service_dangjian.config; import com.baomidou.mybatisplus.core.toolkit.PluginUtils; import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import org.apache.ibatis.executor.Executor; 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.plugin.Intercepts; import org.apache.ibatis.plugin.Signature; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Map; @Intercepts({ @Signature(type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class}) }) public class MybatisHmkInterceptor implements InnerInterceptor { @Override public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { String sql=boundSql.getSql(); if(parameter instanceof Long){ if(sql.contains("community_id = ?")&&(long)parameter==10086){ sql=sql.replace("community_id = ?","community_id in (?)"); parameter="30,31"; boundSql.setAdditionalParameter("communityId",parameter); PluginUtils.mpBoundSql(boundSql).sql(sql); } } if(parameter instanceof Map){ List<ParameterMapping> parameterMappingList=new ArrayList<>(); if(sql.contains("community_id = ?")&&((Map<?, ?>) parameter).containsValue(10086L)){ List<ParameterMapping> parameterMappings=boundSql.getParameterMappings(); parameterMappings.forEach(parameterMapping -> { if (parameterMapping.getProperty().equals("communityId")){ ParameterMapping parameterMapping1=new ParameterMapping.Builder(ms.getConfiguration(),"communityId",Object.class).build(); parameterMappingList.add(parameterMapping1); } else { parameterMappingList.add(parameterMapping); } }); sql=sql.replace("community_id = ?","community_id in (?)"); ((Map<?,?>) parameter).replaceAll((k,v)->{ if(v.toString().equals("10086")){ boundSql.setAdditionalParameter(k.toString(),"30,31"); } return v; }); PluginUtils.mpBoundSql(boundSql).parameterMappings(parameterMappingList); PluginUtils.mpBoundSql(boundSql).sql(sql); } } InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql); } } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisPlusConfig.java
@@ -24,6 +24,7 @@ public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); interceptor.addInnerInterceptor(new MybatisHmkInterceptor()); return interceptor; }