package com.sobey.cmop.mvc.web.basicdata;
import java.util.Map;
import javax.servlet.ServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.sobey.cmop.mvc.comm.BaseController;
import com.sobey.cmop.mvc.service.onecmdb.OneCmdbService;
import com.sobey.framework.utils.Servlets;
/**
* ServerModelController负责服务器型号的管理
*
* @author liukai
*
*/
@Controller
@RequestMapping(value = "/basicdata/serverModel")
public class ServerModelController extends BaseController {
private static final String REDIRECT_SUCCESS_URL = "redirect:/basicdata/serverModel/";
/**
* 分页查询
*
* @param pageNumber
* @param pageSize
* @param model
* @param request
* @return
*/
@RequestMapping(value = { "list", "" })
public String list(@RequestParam(value = "page", defaultValue = "1") int pageNumber,
@RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize, Model model,
ServletRequest request) {
Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, REQUEST_PREFIX);
model.addAttribute("page", comm.serverModelService.getServerModelPageable(searchParams, pageNumber, pageSize));
// 将搜索条件编码成字符串,分页的URL
model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, REQUEST_PREFIX));
return "basicdata/serverModel/serverModelList";
}
/**
* 跳转至新增页面
*
* @param model
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.GET)
public String createForm(Model model) {
return "basicdata/serverModel/serverModelForm";
}
/**
* 新增
*
* @param serverModel
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
@RequestParam(value = "company") String company, @RequestParam(value = "name") String name,
@RequestParam(value = "cpu") Integer cpu, @RequestParam(value = "memory") Integer memory,
@RequestParam(value = "disk") Integer disk, @RequestParam(value = "pci") Integer pci,
@RequestParam(value = "port") Integer port, RedirectAttributes redirectAttributes) {
comm.serverModelService.saveServerModel(company, name, cpu, memory, disk, pci, port);
redirectAttributes.addFlashAttribute("message", "创建服务器型号成功");
return REDIRECT_SUCCESS_URL;
}
/**
* 跳转至更新页面
*
* @param id
* @param model
* @return
*/
@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
public String updateForm(@PathVariable("id") Integer id, Model model) {
model.addAttribute("serverModel", comm.serverModelService.getServerModel(id));
return "basicdata/serverModel/serverModelForm";
}
/**
* 更新
*
* @param serverModel
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(@RequestParam(value = "id") Integer id, @RequestParam(value = "company") String company,
@RequestParam(value = "name") String name, @RequestParam(value = "cpu") Integer cpu,
@RequestParam(value = "memory") Integer memory, @RequestParam(value = "disk") Integer disk,
@RequestParam(value = "pci") Integer pci, @RequestParam(value = "port") Integer port,
RedirectAttributes redirectAttributes) {
comm.serverModelService.updateServerModel(id, company, name, cpu, memory, disk, pci, port);
redirectAttributes.addFlashAttribute("message", "修改服务器型号成功");
return REDIRECT_SUCCESS_URL;
}
/**
* 删除
*
* @param id
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "delete/{id}")
public String delete(@PathVariable("id") Integer id, RedirectAttributes redirectAttributes) {
comm.serverModelService.delete(id);
redirectAttributes.addFlashAttribute("message", "删除服务器型号成功");
return REDIRECT_SUCCESS_URL;
}
/**
* 获得oneCMDB中的Company.
*
* @return
*/
@ModelAttribute("companyMap")
public Map<String, String> getCompanyFromOnecmdb() {
return OneCmdbService.findCiByText("Company", "");
}
}