From 06cffe29986c2f603f3b09557302e7cbdc5d87cb Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 25 Apr 2017 10:02:42 +0800 Subject: [PATCH] update --- .../com/lyms/platform/common/utils/IpUtils.java | 30 ++++++ .../operate/web/controller/LisController.java | 15 +++ .../platform/operate/web/facade/LisFacade.java | 18 ++++ .../web/inteceptor/MybatisSqlInterceptor.java | 119 +++++++++++++++++++++ .../src/main/resources/config.properties | 4 + .../src/main/resources/mybatis.xml | 21 ++++ .../resources/spring/applicationContext-dal.xml | 1 + 7 files changed, 208 insertions(+) create mode 100644 platform-common/src/main/java/com/lyms/platform/common/utils/IpUtils.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java create mode 100644 platform-operate-api/src/main/resources/mybatis.xml diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/IpUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/IpUtils.java new file mode 100644 index 0000000..159376a --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/IpUtils.java @@ -0,0 +1,30 @@ +package com.lyms.platform.common.utils; + +import org.apache.commons.collections.CollectionUtils; + +import java.util.HashSet; +import java.util.Set; + +/** + * ip 白名单验证 + * Created by Administrator on 2017-04-21. + */ +public class IpUtils { + + private static Set ipSet = new HashSet<>(); + + static + { + String ips = PropertiesUtils.getPropertyValue("app_server_ip_white"); + if (StringUtils.isNotEmpty(ips)) + { + CollectionUtils.addAll(ipSet, ips.split(",")); + } + } + + public static boolean isWhite(String ip) { + return ipSet.contains(ip); + } + + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java index ed4f75b..03eb45b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/LisController.java @@ -129,6 +129,7 @@ public class LisController extends BaseController { /** * 获取lis和ris报告的接口 + * 包含这个孕妇在整个区域的lis、ris数据 * @param vcCardNo 就诊卡号 * @param sortType 排序类型(1,根据日期分类;2,根据检查项目分类) * @return @@ -142,4 +143,18 @@ public class LisController extends BaseController { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return lisFacade.getLisAndRisData(vcCardNo,sortType,loginState.getId()); } + + + /** + * 返回小程序查询个人的lis报告 + * 该接口由app服务器端调用 + * @param patientId 院内系统的孕妇的建档id + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getAppLis") + @ResponseBody + public BaseResponse getLisAndRisData(@RequestParam("patientId") String patientId, + HttpServletRequest request) { + return lisFacade.getAppLis(patientId,request); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java index 30e8492..a1ebb40 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/LisFacade.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; +import javax.servlet.http.HttpServletRequest; import java.util.*; /** @@ -385,4 +386,21 @@ public class LisFacade { } return result; } + + /** + * 返回小程序查询个人的lis报告 + * 该接口由app服务器端调用 + * @param patientId + * @param request + * @return + */ + public BaseResponse getAppLis(String patientId, HttpServletRequest request) { + + System.out.println(request.getRemoteAddr()); + System.out.println(request.getRemoteHost()); + System.out.println(request.getRemotePort()); + System.out.println(request.getRequestURI()); + System.out.println(request.getRequestURL()); + return null; + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java new file mode 100644 index 0000000..017ecec --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/inteceptor/MybatisSqlInterceptor.java @@ -0,0 +1,119 @@ +package com.lyms.platform.operate.web.inteceptor; + + +import java.text.DateFormat; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Properties; + +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.plugin.Interceptor; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Plugin; +import org.apache.ibatis.plugin.Signature; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.session.Configuration; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.apache.ibatis.type.TypeHandlerRegistry; + +/** + * Created by Administrator on 2017-04-24. + */ +@Intercepts({ + @Signature(type = Executor.class, method = "update", args = { MappedStatement.class, Object.class }) }) +public class MybatisSqlInterceptor implements Interceptor { + + private Properties properties; + + public Object intercept(Invocation invocation) throws Throwable { + MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; + Object parameter = null; + if (invocation.getArgs().length > 1) { + parameter = invocation.getArgs()[1]; + } + String sqlId = mappedStatement.getId(); + BoundSql boundSql = mappedStatement.getBoundSql(parameter); + Configuration configuration = mappedStatement.getConfiguration(); + Object returnValue = null; + long start = System.currentTimeMillis(); + returnValue = invocation.proceed(); + long end = System.currentTimeMillis(); + long time = (end - start); + if (time > 1) { + String sql = getSql(configuration, boundSql, sqlId, time); + System.err.println(sql); + } + return returnValue; + } + + public static String getSql(Configuration configuration, BoundSql boundSql, String sqlId, long time) { + String sql = showSql(configuration, boundSql); + StringBuilder str = new StringBuilder(100); + str.append(sqlId); + str.append(":"); + str.append(sql); + str.append(":"); + str.append(time); + str.append("ms"); + return str.toString(); + } + + private static String getParameterValue(Object obj) { + String value = null; + if (obj instanceof String) { + value = "'" + obj.toString() + "'"; + } else if (obj instanceof Date) { + DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.CHINA); + value = "'" + formatter.format(new Date()) + "'"; + } else { + if (obj != null) { + value = obj.toString(); + } else { + value = ""; + } + + } + return value; + } + + public static String showSql(Configuration configuration, BoundSql boundSql) { + Object parameterObject = boundSql.getParameterObject(); + List parameterMappings = boundSql.getParameterMappings(); + String sql = boundSql.getSql().replaceAll("[\\s]+", " "); + if (parameterMappings.size() > 0 && parameterObject != null) { + TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); + if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { + sql = sql.replaceFirst("\\?", getParameterValue(parameterObject)); + + } else { + MetaObject metaObject = configuration.newMetaObject(parameterObject); + for (ParameterMapping parameterMapping : parameterMappings) { + String propertyName = parameterMapping.getProperty(); + if (metaObject.hasGetter(propertyName)) { + Object obj = metaObject.getValue(propertyName); + sql = sql.replaceFirst("\\?", getParameterValue(obj)); + } else if (boundSql.hasAdditionalParameter(propertyName)) { + Object obj = boundSql.getAdditionalParameter(propertyName); + sql = sql.replaceFirst("\\?", getParameterValue(obj)); + } + } + } + } + System.out.println("========"+sql); + return sql; + } + + public Object plugin(Object target) { + return Plugin.wrap(target, this); + } + + public void setProperties(Properties properties0) { + this.properties = properties0; + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index 9d1100e..1ee3ec1 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -27,6 +27,10 @@ postser_url=http://devmmsapi.qinhuangdao.healthbaby.com.cn:18019/initdata/reser #区域统计地址 area_count_url=119.90.57.26:1522 +#app服务器端的ip白名单多个用逗号隔开 127.0.0.1,192.168.1.1 +app_server_ip_white= + + #数据源相关配置 jdbc.0.driver=oracle.jdbc.driver.OracleDriver jdbc.0.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl diff --git a/platform-operate-api/src/main/resources/mybatis.xml b/platform-operate-api/src/main/resources/mybatis.xml new file mode 100644 index 0000000..526a807 --- /dev/null +++ b/platform-operate-api/src/main/resources/mybatis.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-dal.xml b/platform-operate-api/src/main/resources/spring/applicationContext-dal.xml index 73c250a..017613c 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-dal.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-dal.xml @@ -32,6 +32,7 @@ + classpath*:mainOrm/master/*.xml -- 1.8.3.1