package com.sobey.cmop.mvc.web.esg;
import java.util.Map;
import javax.servlet.ServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.entity.NetworkEsgItem;
import com.sobey.framework.utils.Servlets;
/**
* 负责安全组模块ESG的管理
*
* @author liukai
*
*/
@Controller
@RequestMapping(value = "/esg")
public class ESGController extends BaseController {
private static final String REDIRECT_SUCCESS_URL = "redirect:/esg/";
/**
* ESG的分页
*
* @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.esgService.getNetworkEsgItemPageable(searchParams, pageNumber, pageSize));
return "esg/esgList";
}
/**
* 跳转到新增页面
*/
@RequestMapping(value = "/save", method = RequestMethod.GET)
public String createForm(Model model) {
return "esg/esgForm";
}
/**
* 新增
*
* @param description
* ESG说明
* @param protocols
* 协议数组
* @param portRanges
* 端口范围数组
* @param visitSources
* 访问源数组
* @param visitTargets
* 访问目的数组
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(@RequestParam(value = "description") String description,
@RequestParam(value = "protocols") String[] protocols,
@RequestParam(value = "portRanges") String[] portRanges,
@RequestParam(value = "visitSources") String[] visitSources,
@RequestParam(value = "visitTargets") String[] visitTargets, RedirectAttributes redirectAttributes) {
NetworkEsgItem networkEsgItem = comm.esgService.saveESG(description, protocols, portRanges, visitSources,
visitTargets);
redirectAttributes.addFlashAttribute("message", "创建 " + networkEsgItem.getIdentifier() + " 成功.");
return REDIRECT_SUCCESS_URL;
}
/**
* 跳转到修改页面
*/
@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
public String updateForm(@PathVariable("id") Integer id, Model model) {
model.addAttribute("esg", comm.esgService.getNetworkEsgItem(id));
return "esg/esgForm";
}
/**
* 修改
*
* @param id
* esgId
* @param description
* ESG说明
* @param protocols
* 协议数组
* @param portRanges
* 端口范围数组
* @param visitSources
* 访问源数组
* @param visitTargets
* 访问目的数组
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(@RequestParam(value = "id") Integer id,
@RequestParam(value = "description") String description,
@RequestParam(value = "protocols") String[] protocols,
@RequestParam(value = "portRanges") String[] portRanges,
@RequestParam(value = "visitSources") String[] visitSources,
@RequestParam(value = "visitTargets") String[] visitTargets, RedirectAttributes redirectAttributes) {
NetworkEsgItem networkEsgItem = comm.esgService.updateESG(id, description, protocols, portRanges, visitSources,
visitTargets);
redirectAttributes.addFlashAttribute("message", "修改 " + networkEsgItem.getIdentifier() + " 成功.");
return REDIRECT_SUCCESS_URL;
}
/**
* 删除ESG
*
* @param id
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/delete/{id}")
public String delete(@PathVariable("id") Integer id, RedirectAttributes redirectAttributes) {
comm.esgService.delete(id);
return REDIRECT_SUCCESS_URL;
}
}