📄 verifyutil.java
字号:
/**
*
*/
package com.lily.dap.service.core;
import org.apache.commons.lang.StringUtils;
import com.lily.dap.dao.Dao;
import com.lily.dap.model.QueryCondition;
import com.lily.dap.model.QueryExpression;
import com.lily.dap.service.core.exception.DataContentRepeatException;
/**
* 数据校验工具类,实现与业务逻辑相关的数据校验方法
*
* @author zouxuemo
*
*/
public class VerifyUtil {
private Dao dao;
public VerifyUtil(Dao dao) {
super();
this.dao = dao;
}
/**
* 判断给定对象的指定字段是否重复,如果重复,抛出DataContentRepeatException异常
*
* @param clazz 要检查的对象
* @param repeatFiledName 判断是否重复字段
* @param repeatFiledValue 判断是否重复值
* @param msg 如果数据重复,抛出的异常中显示的错误信息,如果为null,则使用默认错误信息
*/
public void assertDataNotRepeat(Class clazz, String repeatFiledName, Object repeatFiledValue, String msg) {
assertDataNotRepeat(clazz, new String[]{repeatFiledName}, new Object[]{repeatFiledValue}, null, null, msg);
}
/**
* 判断给定对象的指定字段是否重复,如果重复,抛出DataContentRepeatException异常
*
* @param clazz
* @param repeatFiledName 判断是否重复字段
* @param repeatFiledValue 判断是否重复值
* @param filterFieldName 如果有些列需要过滤,可以在这里指定需要过滤的字段
* @param filterFieldValue 需要过滤的字段值
* @param msg 如果数据重复,抛出的异常中显示的错误信息,如果为null,则使用默认错误信息
*/
public void assertDataNotRepeat(Class clazz, String repeatFiledName, Object repeatFiledValue, String filterFieldName, Object filterFieldValue, String msg) {
assertDataNotRepeat(clazz, new String[]{repeatFiledName}, new Object[]{repeatFiledValue}, new String[]{filterFieldName}, new Object[]{filterFieldValue}, msg);
}
/**
* 判断给定对象的指定字段是否重复,如果重复,抛出DataContentRepeatException异常
*
* @param clazz 要检查的对象
* @param repeatFiledName 判断是否重复字段列表,可以是1-n个字段
* @param repeatFiledValue 判断是否重复值列表,对应到重复字段列表中的不允许重复值
* @param msg 如果数据重复,抛出的异常中显示的错误信息,如果为null,则使用默认错误信息
*/
public void assertDataNotRepeat(Class clazz, String[] repeatFiledName, Object[] repeatFiledValue, String msg) {
assertDataNotRepeat(clazz, repeatFiledName, repeatFiledValue, null, null, msg);
}
/**
* 判断给定对象的指定字段是否重复,如果重复,抛出DataContentRepeatException异常
*
* @param clazz 要检查的对象
* @param repeatFiledName 判断是否重复字段列表,可以是1-n个字段
* @param repeatFiledValue 判断是否重复值列表,对应到重复字段列表中的不允许重复值
* @param filterFieldName 如果有些列需要过滤,可以在这里指定需要过滤的字段列表,如果值为null,则表示不指定过滤字段
* @param filterFieldValue 需要过滤的字段值,对应到过滤字段列表中的过滤值
* @param msg 如果数据重复,抛出的异常中显示的错误信息,如果为null,则使用默认错误信息
*/
public void assertDataNotRepeat(Class clazz, String[] repeatFiledName, Object[] repeatFiledValue, String[] filterFieldName, Object[] filterFieldValue, String msg) {
QueryCondition queryCondition = new QueryCondition();
for (int i = 0; i < repeatFiledName.length; i++)
queryCondition.putCondition(repeatFiledName[i], repeatFiledValue[i]);
if (filterFieldName != null && filterFieldName.length > 0) {
for (int i = 0; i < filterFieldName.length; i++)
queryCondition.putCondition(filterFieldName[i], QueryExpression.OP_NE, filterFieldValue[i]);
}
if (dao.count(clazz, queryCondition) > 0) {
if (msg == null)
msg = clazz.getName() + "中的[" + StringUtils.join(repeatFiledName, ",") + "]字段数据重复,请重新输入数据";
throw new DataContentRepeatException(msg);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -