⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 verifyutil.java

📁 基于java的组号查询模块
💻 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 + -