Commit 70763988 by lili

Merge branch 'master' of http://begitlab.chubanyun.me/rays/pcloud-common-parent into mergeuat

parents 4c8c37fc e2c40352
...@@ -100,6 +100,8 @@ public interface BaseDao<T> { ...@@ -100,6 +100,8 @@ public interface BaseDao<T> {
PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId, String countSqlId); PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId, String countSqlId);
<C> PageBeanNew<C> listPageNew(PageParam pageParam, Map<String, Object> paramMap, String sqlId, String countSqlId);
/** /**
* 根据条件查询 listBy: <br/> * 根据条件查询 listBy: <br/>
* *
......
...@@ -214,6 +214,23 @@ public abstract class BaseDaoImpl<T extends BaseEntity> implements BaseDao<T> { ...@@ -214,6 +214,23 @@ public abstract class BaseDaoImpl<T extends BaseEntity> implements BaseDao<T> {
return new PageBean(pageParam.getPageNum(), pageParam.getNumPerPage(), count.intValue(), list); return new PageBean(pageParam.getPageNum(), pageParam.getNumPerPage(), count.intValue(), list);
} }
public <C> PageBeanNew<C> listPageNew(PageParam pageParam, Map<String, Object> paramMap, String sqlId,
String countSqlId) {
if (paramMap == null)
paramMap = new HashMap<String, Object>();
// 获取分页数据集 , 注切勿换成 sessionTemplate 对象
List<C> list = getSqlSession().selectList(getStatement(sqlId), paramMap,
new RowBounds(pageParam.getPageNum() * pageParam.getNumPerPage(), pageParam.getNumPerPage()));
// 统计总记录数
Object countObject = getSqlSession().selectOne(getStatement(countSqlId), paramMap);
Long count = Long.valueOf(countObject.toString());
return new PageBeanNew<C>(pageParam.getPageNum(), pageParam.getNumPerPage(), count.intValue(), list);
}
public PageBean listSimplePage(PageParam pageParam, Map<String, Object> paramMap, String sqlId) { public PageBean listSimplePage(PageParam pageParam, Map<String, Object> paramMap, String sqlId) {
if (paramMap == null) if (paramMap == null)
......
...@@ -3,6 +3,11 @@ ...@@ -3,6 +3,11 @@
*/ */
package com.pcloud.common.utils.nginx; package com.pcloud.common.utils.nginx;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -10,8 +15,7 @@ import org.apache.commons.lang.StringUtils; ...@@ -10,8 +15,7 @@ import org.apache.commons.lang.StringUtils;
/** /**
* @描述:Nginx工具类 * @描述:Nginx工具类
* @作者:songx * @作者:songx
* @创建时间:2016年12月3日,下午6:06:07 * @创建时间:2016年12月3日,下午6:06:07 @版本:1.0
* @版本:1.0
*/ */
public class NginxUtils { public class NginxUtils {
...@@ -20,6 +24,7 @@ public class NginxUtils { ...@@ -20,6 +24,7 @@ public class NginxUtils {
* 址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等 * 址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等
* 反向代理软件就不能获取到客户端的真实IP地址了。 * 反向代理软件就不能获取到客户端的真实IP地址了。
* 但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。 * 但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。
*
* @param request * @param request
* @return * @return
*/ */
...@@ -43,6 +48,7 @@ public class NginxUtils { ...@@ -43,6 +48,7 @@ public class NginxUtils {
/** /**
* 获得浏览器请求头中的User-Agent * 获得浏览器请求头中的User-Agent
*
* @param request * @param request
* @return * @return
*/ */
...@@ -51,4 +57,48 @@ public class NginxUtils { ...@@ -51,4 +57,48 @@ public class NginxUtils {
return userAgent; return userAgent;
} }
/**
* 获取本机IP
*
* @return
* @throws UnknownHostException
*/
public static String getLocalAddress() {
try {
InetAddress candidateAddress = null;
// 遍历所有的网络接口
for (Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces(); ifaces
.hasMoreElements();) {
NetworkInterface iface = (NetworkInterface) ifaces.nextElement();
// 在所有的接口下再遍历IP
for (Enumeration<InetAddress> inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements();) {
InetAddress inetAddr = (InetAddress) inetAddrs.nextElement();
if (!inetAddr.isLoopbackAddress()) {// 排除loopback类型地址
if (inetAddr.isSiteLocalAddress()) {
// 如果是site-local地址,就是它了
return inetAddr.getHostAddress();
} else if (candidateAddress == null) {
// site-local类型的地址未被发现,先记录候选地址
candidateAddress = inetAddr;
}
}
}
}
if (candidateAddress != null) {
return candidateAddress.getHostAddress();
}
// 如果没有发现 non-loopback地址.只能用最次选的方案
InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
if (jdkSuppliedAddress == null) {
throw new UnknownHostException("The JDK InetAddress.getLocalHost() method unexpectedly returned null.");
}
return jdkSuppliedAddress.getHostAddress();
} catch (Exception e) {
UnknownHostException unknownHostException = new UnknownHostException(
"Failed to determine LAN address: " + e);
unknownHostException.initCause(e);
return null;
}
}
} }
...@@ -69,6 +69,9 @@ public class StringComparator implements Comparator<String> { ...@@ -69,6 +69,9 @@ public class StringComparator implements Comparator<String> {
return hexStr1.compareTo(hexStr2); return hexStr1.compareTo(hexStr2);
} }
} }
if(str1.length() < str2.length()){
return -1;
}
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment