package com.norteksoft.mms.authority.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.norteksoft.mms.authority.dao.DataRuleDao; import com.norteksoft.mms.authority.dao.RuleTypeDao; import com.norteksoft.mms.authority.entity.DataRule; import com.norteksoft.mms.authority.entity.RuleType; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.ContextUtils; @Service @Transactional public class RuleTypeManager { @Autowired private RuleTypeDao ruleTypeDao; @Autowired private DataRuleDao dataRuleDao; public RuleType getRuleType(Long id){ return ruleTypeDao.get(id); } public void saveRuleType(RuleType ruleType){ ruleTypeDao.save(ruleType); } public String deleteRuleType(Long id){ List<DataRule> rules = dataRuleDao.getDataRulesByRuleType(id); List<RuleType> childrenTypes = getRuleTypeByParnetId(id); if(rules.size()>0){ //要删除的规则类别下包含数据规则,不能删除 return "NOT_DELETE_HAS_DATA"; }else if(childrenTypes.size()>0){ //要删除的规则类别下包含子规则类别,不能删除 return "NOT_DELETE_HAS_TYPE"; }else{ ruleTypeDao.delete(id); return "OK"; } } public void deleteRuleType(RuleType ruleType){ ruleTypeDao.delete(ruleType); } public Page<RuleType> list(Page<RuleType>page){ return ruleTypeDao.list(page); } public List<RuleType> listAll(){ return ruleTypeDao.getAllRuleType(); } public List<RuleType> getRuleTypeByParnetId(Long parentId) { String hql = "from RuleType r where r.companyId=? and r.parent!=null and r.parent.id=?"; return ruleTypeDao.find(hql, ContextUtils.getCompanyId(),parentId); } public String validateCode(String code, Long id) { List<RuleType> types = ruleTypeDao.getRuleTypeByCode(code,id); if(types.size()>0){ return "false"; } return "true"; } public List<RuleType> getRootRuleTypeByCompany() { return ruleTypeDao.getRootRuleTypeByCompany(); } public List<RuleType> getTypsByParentId(Long parentId) { return ruleTypeDao.getTypsByParentId(parentId); } }