package com.nis.web.service.specific; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.beust.jcommander.internal.Lists; import com.nis.domain.Page; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.util.StringUtil; import com.nis.web.dao.specific.SpecificServiceCfgDao; import com.nis.web.service.BaseService; @Service public class SpecificServiceCfgService extends BaseService{ @Autowired private SpecificServiceCfgDao specificServiceCfgDao; /** * 根据id查询对象 * @param specServiceId * @return */ public SpecificServiceCfg getBySpecServiceId(Integer specServiceId) { return specificServiceCfgDao.getBySpecServiceId(specServiceId); } /** * 查询所有符合条件的顶层分页 * @param page * @param specificServiceCfg * @return */ public Page findTopPage(Page page, SpecificServiceCfg specificServiceCfg){ // 设置分页参数 specificServiceCfg.setPage(page); // 执行分页查询 List list = Lists.newArrayList(); list = specificServiceCfgDao.findTopPage(specificServiceCfg); SpecificServiceCfg ss = new SpecificServiceCfg(); ss.setSpecServiceId(0); for(SpecificServiceCfg ssc:list){ ssc.setParent(ss); } page.setList(list); return page; } /** * 查询所有符合条件的数据 * @param specificServiceCfg * @return */ public List findAllSpecificServiceCfg(SpecificServiceCfg specificServiceCfg, String orderBy) { return specificServiceCfgDao.findAllSpecificServiceCfg(specificServiceCfg,orderBy); } /** * 保存或修改 * @param specificServiceCfg */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveOrUpdate(SpecificServiceCfg specificServiceCfg, Integer oldId) { if(specificServiceCfg.getGroupId()==null){ specificServiceCfg.setGroupId(0); } if(oldId==null){//新增 specificServiceCfg.setIsValid(1); specificServiceCfg.setOpTime(new Date()); specificServiceCfgDao.insert(specificServiceCfg); }else{//修改 specificServiceCfg.setOpTime(new Date()); //修改id则将其子类的parent_id一并修改 if(oldId!=specificServiceCfg.getSpecServiceId()){ //找出所有子类 List list = specificServiceCfgDao.getChildrenById(oldId); SpecificServiceCfg se =new SpecificServiceCfg(); se.setSpecServiceId(specificServiceCfg.getSpecServiceId()); for(SpecificServiceCfg ss:list){ if(ss!=null){ ss.setParent(se); specificServiceCfgDao.update(ss,ss.getSpecServiceId()); } } } specificServiceCfgDao.update(specificServiceCfg,oldId); } } /** * 删除 * @param specificServiceCfg * @throws Exception */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void delete(String mulitId){ String[] ids = mulitId.split(","); for(String id:ids){ if (!id.equals("")) { SpecificServiceCfg specificServiceCfg = specificServiceCfgDao.getBySpecServiceId(Integer.valueOf(id)); List list = Lists.newArrayList(); //找出所有下级 if(specificServiceCfg!=null){ SpecificServiceCfg.sortList(list, specificServiceCfgDao.findAllSpecificServiceCfg(new SpecificServiceCfg(),""), specificServiceCfg.getSpecServiceId(), true); list.add(specificServiceCfg); for(SpecificServiceCfg ss:list){ ss.setIsValid(0); specificServiceCfgDao.delete(ss); } } } } } /** * 根据specServiceId查询所有下级 * @param specServiceId * @return */ public List getChildrenById(Integer specServiceId) { return specificServiceCfgDao.getChildrenById(specServiceId); } }