package com.sobey.cmop.mvc.service.basicdata; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.sobey.cmop.mvc.comm.BaseSevcie; import com.sobey.cmop.mvc.dao.ServerModelDao; import com.sobey.cmop.mvc.entity.ServerModel; import com.sobey.framework.utils.DynamicSpecifications; import com.sobey.framework.utils.SearchFilter; /** * 服务器型号ServerModel 相关的管理类. * * @author liukai * */ @Service @Transactional(readOnly = true) public class ServerModelService extends BaseSevcie { private static Logger logger = LoggerFactory.getLogger(ServerModelService.class); @Resource private ServerModelDao serverModelDao; public ServerModel getServerModel(Integer id) { return serverModelDao.findOne(id); } /** * 根据服务器型号名称获得对应的ServerModel * * @param name * @return */ public ServerModel findServerModelByName(String name) { return serverModelDao.findByName(name); } /** * 新增,保存ServerModel * * @param serverModel * @return */ @Transactional(readOnly = false) public ServerModel saveOrUpdate(ServerModel serverModel) { return serverModelDao.save(serverModel); } @Transactional(readOnly = false) public void delete(Integer id) { serverModelDao.delete(id); } /** * 服务器型号页面(ServerModel)的分页查询. * * @param searchParams * 页面传递过来的参数 * @param pageNumber * @param pageSize * @return */ public Page<ServerModel> getServerModelPageable(Map<String, Object> searchParams, int pageNumber, int pageSize) { PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, new Sort(Direction.DESC, "id")); Map<String, SearchFilter> filters = SearchFilter.parse(searchParams); Specification<ServerModel> spec = DynamicSpecifications.bySearchFilter(filters.values(), ServerModel.class); return serverModelDao.findAll(spec, pageRequest); } public List<ServerModel> getServerModelList() { return (List<ServerModel>) serverModelDao.findAll(); } /** * 新增服务器型号 * * @param company * 所属公司alias+名称 * @param name * 型号名称 * @param cpu * CPU个数 * @param memory * 内存槽数 * @param disk * 硬盘托架数 * @param pci * PCI插槽数 * @param port * 网卡口数 */ @Transactional(readOnly = false) public void saveServerModel(String company, String name, Integer cpu, Integer memory, Integer disk, Integer pci, Integer port) { String[] companys = StringUtils.split(company, "&"); String companyAlias = companys[0]; String companyName = companys[1]; ServerModel serverModel = new ServerModel(); serverModel.setCompany(companyName); serverModel.setCompanyAlias(companyAlias); serverModel.setName(name); serverModel.setCpu(cpu); serverModel.setMemory(memory); serverModel.setDisk(disk); serverModel.setPci(pci); serverModel.setPort(port); this.saveOrUpdate(serverModel); } /** * 修改服务器型号 * * @param id * id * @param company * 所属公司alias+名称 * @param name * 型号名称 * @param cpu * CPU个数 * @param memory * 内存槽数 * @param disk * 硬盘托架数 * @param pci * PCI插槽数 * @param port * 网卡口数 */ @Transactional(readOnly = false) public void updateServerModel(Integer id, String company, String name, Integer cpu, Integer memory, Integer disk, Integer pci, Integer port) { String[] companys = StringUtils.split(company, "&"); String companyAlias = companys[0]; String companyName = companys[1]; ServerModel serverModel = this.getServerModel(id); serverModel.setCompany(companyName); serverModel.setCompanyAlias(companyAlias); serverModel.setName(name); serverModel.setCpu(cpu); serverModel.setMemory(memory); serverModel.setDisk(disk); serverModel.setPci(pci); serverModel.setPort(port); this.saveOrUpdate(serverModel); } }