ylx 7 years ago
parent
commit
478d09d01f
1 changed files with 190 additions and 31 deletions
  1. 190 31
      ccb_fund_trusteeship/src/main/java/com/fuzamei/utils/ValidationUtil.java

+ 190 - 31
ccb_fund_trusteeship/src/main/java/com/fuzamei/utils/ValidationUtil.java

@@ -17,8 +17,9 @@ import com.alibaba.fastjson.JSON;
 /**
  * 
  * @author ylx
- * @describe 针对hibernate-validator的实体类进行数据校验的工具类
- * @describe 针对该项目中其它各类数据校验的工具类
+ * @describe: 针对hibernate-validator的实体类进行数据校验的工具类
+ * @describe: 针对该项目中其它各类数据校验的工具类
+ * @Date: 2017-12-26
  */
 public class ValidationUtil {
 
@@ -57,8 +58,12 @@ public class ValidationUtil {
 	}
 
 	/**
-	 * @Title: range
-	 * @Description: TODO(针对传入的参数进行校验范围------>Int类型)
+	 * @Title: checkRangeOfInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的范围,超出范围的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
 	 * @return boolean
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
@@ -98,23 +103,60 @@ public class ValidationUtil {
 		return true;
 	}
 
+	/**
+	 * @Title: checkMinOfInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最小值,小于最小值的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static boolean checkMinOfInt(final Object obj, int min) {
 		return checkRangeOfInt(obj, min, Integer.MAX_VALUE);
 	}
 
+	/**
+	 * @Title: checkMaxOfInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最大值,大于最大值的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static boolean checkMaxOfInt(final Object obj, int max) {
 		return checkRangeOfInt(obj, Integer.MIN_VALUE, max);
 	}
 	
+	/**
+	 * @Title: checkOfInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			针对整个Integer范围内的数据校验(也就是能被解析成Integer的String还是Integer就能校验成功返回true)
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static boolean checkOfInt(final Object obj) {
 		return checkRangeOfInt(obj, Integer.MIN_VALUE, Integer.MAX_VALUE);
 	}
 	
 
 	/**
-	 * @Title: range
-	 * @Description: TODO(针对传入的参数进行校验--->Long类型)
-	 * @return void
+	 * @Title: checkRangeOfLong
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的范围,超出范围的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -139,7 +181,7 @@ public class ValidationUtil {
 			}
 			Long num = null;
 			try {
-				num = Long.class.cast(obj);
+				num=Long.parseLong(""+obj);
 			} catch (Exception e1) {
 				throw new RuntimeException("数字解析异常");
 			}
@@ -152,22 +194,59 @@ public class ValidationUtil {
 		}
 		return true;
 	}
-
+	
+	/**
+	 * @Title: checkMinOfLong
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最小值,小于最小值的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static boolean checkMinOfLong(final Object obj, long min) {
 		return checkRangeOfLong(obj, min, Long.MAX_VALUE);
 	}
 
+	/**
+	 * @Title: checkMaxOfLong
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最大值,大于最大值的也会报异常.
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static boolean checkMaxOfLong(final Object obj, long max) {
 		return checkRangeOfLong(obj, Long.MIN_VALUE, max);
 	}
 	
-	public static boolean checkOfLong(final Object obj, long max) {
+	/**
+	 * @Title: checkOfLong
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			这个针对Long范围内类型数据的校验
+	 * 			如果一切都解析正常,返回一个true的布尔类型
+	 * @Usage: 适用于数据判断的校验
+	 * @return boolean
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
+	public static boolean checkOfLong(final Object obj) {
 		return checkRangeOfLong(obj, Long.MIN_VALUE, Long.MAX_VALUE);
 	}
 
 	/**
-	 * @Title: range
-	 * @Description: TODO(针对传入的参数进行校验--->Int类型,校验和赋值同时进行,同时返回真实的int数值)
+	 * @Title: checkRangeAndAssignInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的范围,超出范围的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
 	 * @return int
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
@@ -207,21 +286,58 @@ public class ValidationUtil {
 		}
 	}
 
+	/**
+	 * @Title: checkMinAndAssignInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最小值,小于最小值的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return int
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static int checkMinAndAssignInt(final Object obj, int min) {
 		return checkRangeAndAssignInt(obj,min,Integer.MAX_VALUE);
 	}
 	
+	/**
+	 * @Title: checkMaxAndAssignInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最大值,大于最大值的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return int
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static int checkMaxAndAssignInt(final Object obj, int max) {
 		return checkRangeAndAssignInt(obj,Integer.MIN_VALUE,max);
 	}
 	
+	/**
+	 * @Title: checkAndAssignInt
+	 * @Description: 针对传入的参数进行校验--->Integer类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			这个针对Integer范围内类型数据的校验和赋值
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return int
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static int checkAndAssignInt(final Object obj) {
 		return checkRangeAndAssignInt(obj,Integer.MIN_VALUE,Integer.MAX_VALUE);
 	}
 	
 	/**
 	 * @Title: range
-	 * @Description: TODO(针对传入的参数进行校验--->Long类型,校验和赋值同时进行,同时返回真实的long数值)
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的范围,超出范围的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
 	 * @return long
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
@@ -247,7 +363,7 @@ public class ValidationUtil {
 			}
 			Long num = null;
 			try {
-				num = Long.class.cast(obj);
+				num=Long.parseLong(""+obj);
 			} catch (Exception e1) {
 				throw new RuntimeException("数字解析异常");
 			}
@@ -261,21 +377,56 @@ public class ValidationUtil {
 		}
 	}
 	
+	/**
+	 * @Title: range
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最小值,小于最小值的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return long
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static long checkMinAndAssignLong(final Object obj, long min) {
 		return checkRangeAndAssignLong(obj,min,Long.MAX_VALUE);
 	}
 	
+	/**
+	 * @Title: range
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			而且还要限定数值的最大值,大于最大值的也会报异常.
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return long
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static long checkMaxAndAssignLong(final Object obj, long max) {
 		return checkRangeAndAssignLong(obj,Long.MIN_VALUE,max);
 	}
 	
+	/**
+	 * @Title: range
+	 * @Description: 针对传入的参数进行校验--->Long类型
+	 * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
+	 * 			这个针对Long范围内类型数据的校验和赋值
+	 * 			如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
+	 * @Usage: 适用于数据判断的校验和赋值同时进行
+	 * @return long
+	 * @author ylx
+	 * @date 2017年12月26日 下午3:48:40
+	 */
 	public static long checkAndAssignLong(final Object obj) {
 		return checkRangeAndAssignLong(obj,Long.MIN_VALUE,Long.MAX_VALUE);
 	}
 	/**
 	 * @Title: range
+	 * @Target: 针对空(null)
 	 * @Description: TODO(针对传入的参数进行非空(null)校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
-	 * @return long
+	 * @Attention: 保证传入的数据是字符串,且不能为空(null),否则报异常,正常就返回一个正常的String类型的参数
+	 * @return String
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -298,9 +449,11 @@ public class ValidationUtil {
 	}
 	
 	/**
-	 * @Title: range
+	 * @Title: checkEmptyAndAssignString
+	 * @Target: 针对空(null)和空字符串("")
 	 * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
-	 * @return long
+	 * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串(""),否则报异常,正常就返回一个正常的String类型的参数
+	 * @return String
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -326,9 +479,11 @@ public class ValidationUtil {
 	}
 	
 	/**
-	 * @Title: range
+	 * @Title: checkBlankAndAssignString
+	 * @target: 针对空(null)和空字符串("")和空内容的字符串("   ")
 	 * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串("   ")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
-	 * @return long
+	 * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串("")和空内容的字符串("   "),否则报异常,正常就返回一个正常的String类型的参数
+	 * @return String
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -355,9 +510,10 @@ public class ValidationUtil {
 	
 	
 	/**
-	 * @Title: range
-	 * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串("   ")校验并返回string数据类型,只要是null,""或"  "全部返回null,不会抛出异常,除非无法强转为String,其它情况正常转String)
-	 * @return long
+	 * @Title: checkBlankStringAndAssignNullIfIsBlank
+	 * @Description: TODO(针对传入的Object类型参数进行非空(null)和空字符串("")和空内容的字符串("   ")校验并返回string数据类型,只要是null,""或"  "全部返回null,不会抛出异常,除非无法强转为String,其它情况正常转String)
+	 * @Attention: 默认返回null
+	 * @return String
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -377,9 +533,10 @@ public class ValidationUtil {
 	}
 	
 	/**
-	 * @Title: range
+	 * @Title: checkBlankStringAndAssignEmptyIfIsBlank
 	 * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串("   ")校验并返回string数据类型,只要是null,""或"  "全部返回""空串,不会抛出异常,除非无法强转为String,其它情况正常转String)
-	 * @return long
+	 * @Attention: 默认返回""
+	 * @return String
 	 * @author ylx
 	 * @date 2017年12月26日 下午3:48:40
 	 */
@@ -401,7 +558,8 @@ public class ValidationUtil {
 	/**
 	 * 
 	* @Title: checkAndAssignDefaultInt
-	* @Description: TODO(如果校验的Object不能转换Int则抛出异常,如果是null,空字符串或者是长空串,统一返回默认的值)
+	* @Description: TODO(如果校验的Object不能转换Integer则抛出异常,如果是null,空字符串或者是长空串,统一返回用户指定的默认值defaultInt)
+	* @Attention: obj为null,空字符串""或者是长空串"   "都不会抛异常,而是直接返回默认值
 	* @return int    返回类型
 	* @author ylx
 	* @date 2017年12月27日 下午1:51:43
@@ -429,7 +587,7 @@ public class ValidationUtil {
 			try {
 				num = Integer.class.cast(obj);
 			} catch (Exception e1) {
-				throw new RuntimeException("数字解析异常");
+				throw new RuntimeException("Integer强转异常");
 			}
 			return num;
 		}
@@ -439,8 +597,9 @@ public class ValidationUtil {
 	/**
 	 * 
 	* @Title: checkAndAssignDefaultLong
-	* @Description: TODO(如果校验的Object不能转换Long则抛出异常,如果是null,空字符串或者是长空串,统一返回默认的值)
-	* @Attention: 这里要特别注意以下,如果前端传过来的数据是小于Integer.MAX_VALUE的话,必须要加L来将数据强制转化为Long类型,不然解析失败
+	* @Description: TODO(如果校验的Object不能转换Long则抛出异常,如果是null,空字符串或者是长空串,统一返回用户指定的默认值defaultLong)
+	* @Attention: obj为null,空字符串""或者是长空串"   "都不会抛异常,而是直接返回默认值
+	* @Solved: 这里要特别注意下,Long.class.cast(obj)当obj是Integer时会出现异常,包装类不能像基本类型一样强转,所以这里改成num=Long.parseLong(""+obj);
 	* @return long    返回类型
 	* @author ylx
 	* @date 2017年12月27日 下午1:51:43
@@ -468,14 +627,14 @@ public class ValidationUtil {
 			try {
 				num=Long.parseLong(""+obj);
 			} catch (Exception e1) {
-				throw new RuntimeException("数字解析异常");
+				throw new RuntimeException("Long解析异常");
 			}
 			return num;
 		}
 	}
 	
 
-	public static void main(String[] args) {
+	/*public static void main(String[] args) {
 		String json="{'KEY1':'12','KEY2':23,'KEY3':null}";
 		Map parseObject = JSON.parseObject(json, Map.class);
 		Object obj=20000000;
@@ -484,6 +643,6 @@ public class ValidationUtil {
 //		Long.class.cast(obj
 //		Long cast = Long.class.cast(1L);
 //		System.out.println(checkAndAssignDefaultLong);
-	}
+	}*/
 
 }