package com.norteksoft.mms.authority.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.norteksoft.mms.authority.entity.Condition;
import com.norteksoft.mms.authority.entity.DataRule;
import com.norteksoft.mms.authority.enumeration.FieldOperator;
import com.norteksoft.mms.form.enumeration.DataType;
import com.norteksoft.product.orm.Page;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
import com.norteksoft.wf.base.enumeration.LogicOperator;
/**
* 数据规则条件
* @author Administrator
*
*/
@Repository
public class ConditionDao extends HibernateDao<Condition, Long>{
/**
* 根据规则ID删除条件
* @param valueOf
*/
public void deleteConditionByRuleId(Long dataRuleId) {
this.batchExecute("delete Condition c where c.companyId=? and c.dataRule.id=? ", ContextUtils.getCompanyId(),dataRuleId);
}
/**
* 根据规则id获得数据表规则条件
* @param conditionPage
* @param id
*/
public void getConditionPage(Page<Condition> conditionPage, Long id) {
this.searchPageByHql(conditionPage,"from Condition c where c.companyId=? and c.dataRule.id=? ",ContextUtils.getCompanyId(),id);
}
/**
* 根据规则id获得数据表规则条件
* @param conditionPage
* @param id
*/
public List<Condition> getConditionsByDataRuleId(Long id) {
return this.find("from Condition c where c.companyId=? and c.dataRule.id=? ",ContextUtils.getCompanyId(),id);
}
public Condition getCondition(String field, FieldOperator operator,
LogicOperator lgicOperator, DataType dataType, String conditionValue,
Long dataRuleId) {
List<Condition> conditions=this.find("from Condition c where c.companyId=? and c.field=? and c.operator=? and c.lgicOperator=? and c.dataType=? and c.conditionValue=? and c.dataRule.id=? ",ContextUtils.getCompanyId(),field,operator,lgicOperator,dataType,conditionValue,dataRuleId);
if(conditions!=null && conditions.size()>0){
return conditions.get(0);
}else{
return null;
}
}
}