package com.gxx.record_app.base.dao; import org.apache.commons.lang3.StringUtils; import com.gxx.record_app.dto.MonitorDto; /** *
*
Title:
*
* none *
*
Description:交易监控查询SQL提供类
*
*

none *

*
* * @author Gxx * @version 1.0, 2017年06月22日 * @since record_app * */ public class TransMonitorSqlProvider { /** * 查询交易监控 * @param monitorDto * @return */ public String queryTransMonitor(MonitorDto monitorDto){ String sql = "SELECT * FROM TRANS_MONITOR WHERE 1=1"; //方法路径 if(StringUtils.isNotBlank(monitorDto.getMethodRoute())){ sql += " AND METHOD_ROUTE = '" + (monitorDto.getMethodRoute()) + "'"; } //方法类型 if(StringUtils.isNotBlank(monitorDto.getMethodType())){ sql += " AND METHOD_TYPE = '" + (monitorDto.getMethodType()) + "'"; } //外部系统 if(StringUtils.isNotBlank(monitorDto.getOuterSystem())){ sql += " AND OUTER_SYSTEM = '" + (monitorDto.getOuterSystem()) + "'"; } //是否异常发生 if(monitorDto.getIsException() >= 0){ sql += " AND IS_EXCEPTION = " + (monitorDto.getIsException()); } //开始时间 if(StringUtils.isNotBlank(monitorDto.getBeginTime())){ sql += " AND BEGIN_TIME >= '" + (monitorDto.getBeginTime()) + "'"; } //结束时间 if(StringUtils.isNotBlank(monitorDto.getEndTime())){ sql += " AND END_TIME <= '" + (monitorDto.getEndTime()) + "'"; } //最小耗时(毫秒)(>=) if(monitorDto.getBeginUsedTime() >= 0){ sql += " AND USED_TIME >= " + (monitorDto.getBeginUsedTime()); } //最大耗时(毫秒)(<=) if(monitorDto.getEndUsedTime() >= 0){ sql += " AND USED_TIME <= " + (monitorDto.getEndUsedTime()); } //机器ip if(StringUtils.isNotBlank(monitorDto.getIp())){ sql += " AND IP = '" + (monitorDto.getIp()) + "'"; } //备注字段1 if(StringUtils.isNotBlank(monitorDto.getResv1())){ sql += " AND RESV1 LIKE '%" + (monitorDto.getResv1()) + "%'"; } //备注字段2 if(StringUtils.isNotBlank(monitorDto.getResv2())){ sql += " AND RESV2 LIKE '%" + (monitorDto.getResv2()) + "%'"; } //备注字段3 if(StringUtils.isNotBlank(monitorDto.getResv3())){ sql += " AND RESV3 LIKE '%" + (monitorDto.getResv3()) + "%'"; } //id倒序 sql += " ORDER BY ID DESC"; //分页 if(monitorDto.getActivePage() > 0 && monitorDto.getPageSize() > 0){ sql += " LIMIT " + (monitorDto.getActivePage()-1)*monitorDto.getPageSize() + "," + monitorDto.getPageSize(); } return sql; } /** * 查询交易监控总数 * @param monitorDto * @return */ public String countTransMonitor(MonitorDto monitorDto){ String sql = "SELECT COUNT(1) FROM TRANS_MONITOR WHERE 1=1"; //方法路径 if(StringUtils.isNotBlank(monitorDto.getMethodRoute())){ sql += " AND METHOD_ROUTE = '" + (monitorDto.getMethodRoute()) + "'"; } //方法类型 if(StringUtils.isNotBlank(monitorDto.getMethodType())){ sql += " AND METHOD_TYPE = '" + (monitorDto.getMethodType()) + "'"; } //外部系统 if(StringUtils.isNotBlank(monitorDto.getOuterSystem())){ sql += " AND OUTER_SYSTEM = '" + (monitorDto.getOuterSystem()) + "'"; } //是否异常发生 if(monitorDto.getIsException() >= 0){ sql += " AND IS_EXCEPTION = " + (monitorDto.getIsException()); } //开始时间 if(StringUtils.isNotBlank(monitorDto.getBeginTime())){ sql += " AND BEGIN_TIME >= '" + (monitorDto.getBeginTime()) + "'"; } //结束时间 if(StringUtils.isNotBlank(monitorDto.getEndTime())){ sql += " AND END_TIME <= '" + (monitorDto.getEndTime()) + "'"; } //最小耗时(毫秒)(>=) if(monitorDto.getBeginUsedTime() >= 0){ sql += " AND USED_TIME >= " + (monitorDto.getBeginUsedTime()); } //最大耗时(毫秒)(<=) if(monitorDto.getEndUsedTime() >= 0){ sql += " AND USED_TIME <= " + (monitorDto.getEndUsedTime()); } //机器ip if(StringUtils.isNotBlank(monitorDto.getIp())){ sql += " AND IP = '" + (monitorDto.getIp()) + "'"; } //备注字段1 if(StringUtils.isNotBlank(monitorDto.getResv1())){ sql += " AND RESV1 LIKE '%" + (monitorDto.getResv1()) + "%'"; } //备注字段2 if(StringUtils.isNotBlank(monitorDto.getResv2())){ sql += " AND RESV2 LIKE '%" + (monitorDto.getResv2()) + "%'"; } //备注字段3 if(StringUtils.isNotBlank(monitorDto.getResv3())){ sql += " AND RESV3 LIKE '%" + (monitorDto.getResv3()) + "%'"; } return sql; } /** * 查询平均耗时 * @param monitorDto * @return */ public String queryAvgUsedTime(MonitorDto monitorDto){ String sql = "SELECT AVG(USED_TIME) FROM TRANS_MONITOR WHERE 1=1"; //方法路径 if(StringUtils.isNotBlank(monitorDto.getMethodRoute())){ sql += " AND METHOD_ROUTE = '" + (monitorDto.getMethodRoute()) + "'"; } //方法类型 if(StringUtils.isNotBlank(monitorDto.getMethodType())){ sql += " AND METHOD_TYPE = '" + (monitorDto.getMethodType()) + "'"; } //外部系统 if(StringUtils.isNotBlank(monitorDto.getOuterSystem())){ sql += " AND OUTER_SYSTEM = '" + (monitorDto.getOuterSystem()) + "'"; } //是否异常发生 if(monitorDto.getIsException() >= 0){ sql += " AND IS_EXCEPTION = " + (monitorDto.getIsException()); } //开始时间 if(StringUtils.isNotBlank(monitorDto.getBeginTime())){ sql += " AND BEGIN_TIME >= '" + (monitorDto.getBeginTime()) + "'"; } //结束时间 if(StringUtils.isNotBlank(monitorDto.getEndTime())){ sql += " AND END_TIME <= '" + (monitorDto.getEndTime()) + "'"; } //最小耗时(毫秒)(>=) if(monitorDto.getBeginUsedTime() >= 0){ sql += " AND USED_TIME >= " + (monitorDto.getBeginUsedTime()); } //最大耗时(毫秒)(<=) if(monitorDto.getEndUsedTime() >= 0){ sql += " AND USED_TIME <= " + (monitorDto.getEndUsedTime()); } //机器ip if(StringUtils.isNotBlank(monitorDto.getIp())){ sql += " AND IP = '" + (monitorDto.getIp()) + "'"; } //备注字段1 if(StringUtils.isNotBlank(monitorDto.getResv1())){ sql += " AND RESV1 LIKE '%" + (monitorDto.getResv1()) + "%'"; } //备注字段2 if(StringUtils.isNotBlank(monitorDto.getResv2())){ sql += " AND RESV2 LIKE '%" + (monitorDto.getResv2()) + "%'"; } //备注字段3 if(StringUtils.isNotBlank(monitorDto.getResv3())){ sql += " AND RESV3 LIKE '%" + (monitorDto.getResv3()) + "%'"; } return sql; } }