From e9d5fb4b01c383fa5b01bf5e730d4e3da73f266e Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期四, 30 十二月 2021 11:27:15 +0800 Subject: [PATCH] 12/30 河门口大屏特殊修改 --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java | 73 +----------------------------------- 1 files changed, 2 insertions(+), 71 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java index 4738024..9749d52 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java @@ -1,91 +1,22 @@ package com.panzhihua.service_grid.config; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 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.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; -import org.apache.ibatis.mapping.ParameterMapping; import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; -import java.lang.reflect.Field; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; 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); + if(sql.contains("community_id = 10086")){ + sql=sql.replace("community_id = 10086","community_id in (30,31)"); PluginUtils.mpBoundSql(boundSql).sql(sql); - } - } - if(parameter instanceof Map){ - if(sql.contains("community_id = ?")){ - List<ParameterMapping> parameterMappingList=new ArrayList<>(); - if(((Map<?, ?>) parameter).containsValue(10086L)){ - List<ParameterMapping> parameterMappings=boundSql.getParameterMappings(); - parameterMappings.forEach(parameterMapping -> { - if (parameterMapping.getProperty().equals("communityId")){ - ParameterMapping parameterMapping1=new ParameterMapping.Builder(ms.getConfiguration(),parameterMapping.getProperty(),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().contains("10086")){ - boundSql.setAdditionalParameter(k.toString(),"30','31"); - } - return v; - }); - PluginUtils.mpBoundSql(boundSql).parameterMappings(parameterMappingList); - PluginUtils.mpBoundSql(boundSql).sql(sql); - } - else{ - if(((Map<?, ?>) parameter).containsKey("arg0")){ - Map<?, ?> param= (Map<?, ?>) parameter; - String finalSql = sql; - if(!param.isEmpty()){ - param.forEach((k, v)->{ - List<ParameterMapping> parameterMappingList1=new ArrayList<>(); - try { - Field field= v.getClass().getDeclaredField("communityId"); - if(field!=null){ - field.setAccessible(true); - if((long)field.get(v)==10086L){ - String sql1= finalSql.replace("community_id = ?","community_id in (30,31)"); - if(!CollectionUtils.isEmpty(boundSql.getParameterMappings())){ - boundSql.getParameterMappings().forEach(parameterMapping -> { - if(!parameterMapping.getProperty().contains("communityId")){ - parameterMappingList1.add(parameterMapping); - } - }); - PluginUtils.mpBoundSql(boundSql).parameterMappings(parameterMappingList1); - } - PluginUtils.mpBoundSql(boundSql).sql(sql1); - } - } - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (NoSuchFieldException e) { - } - }); - } - - } - } - } } InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql); } -- Gitblit v1.7.1