package com.norteksoft.mms.authority.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.norteksoft.mms.authority.entity.Permission;
import com.norteksoft.product.orm.Page;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
@Repository
public class PermissionDao extends HibernateDao<Permission, Long>{
public void getPermissions(Page<Permission> page,Long dataRuleId){
this.searchPageByHql(page, "from Permission p where p.dataRule.id=?", dataRuleId);
}
public List<Permission> getPermissionsByDataRule(Long dataRuleId){
return this.find("from Permission p where p.dataRule.id=?", dataRuleId);
}
public List<Permission> getAllPermissions(){
return this.find("from Permission p where p.companyId=?", ContextUtils.getCompanyId());
}
public List<Permission> getPermissionsByDataTableId(Long dataTableId){
return this.find("select p from Permission p join p.dataRule dr where dr.dataTableId=? and p.companyId=? order by priority desc",
dataTableId, ContextUtils.getCompanyId());
}
/**
* 根据数据规则id删除数据授权
* @param valueOf
*/
public void deletePermissionByDataRuleId(Long dataRuleId) {
this.batchExecute("delete Permission c where c.companyId=? and c.dataRule.id=? ", ContextUtils.getCompanyId(),dataRuleId);
}
public Permission getPermissions(Integer priority, Integer authority, Long dataRuleId) {
List<Permission> permissions=this.find("from Permission p where p.companyId=? and p.priority=? and p.authority=? and p.dataRule.id=? ",ContextUtils.getCompanyId(),priority,authority,dataRuleId);
if(permissions!=null&&permissions.size()>0){
return permissions.get(0);
}else{
return null;
}
}
}