package com.sobey.cmop.mvc.web.apply.iaas;
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.NetworkDnsItem;
/**
* 负责DNS NetworkDnsItem 的管理
*
* @author liukai
*
*/
@Controller
@RequestMapping(value = "/apply/dns")
public class DNSController extends BaseController {
private static final String REDIRECT_SUCCESS_URL = "redirect:/apply/";
/**
* 跳转到新增页面
*/
@RequestMapping(value = "/save", method = RequestMethod.GET)
public String createForm(Model model) {
return "apply/dns/dnsForm";
}
/**
* 新增
*
* @param applyId
* 服务申请单ID
* @param domainNames
* 域名数组
* @param domainTypes
* 域名类型数组
* @param eipIds
* 关联EIP数组
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(@RequestParam(value = "applyId") Integer applyId,
@RequestParam(value = "domainNames") String[] domainNames,
@RequestParam(value = "domainTypes") String[] domainTypes, @RequestParam(value = "eipIds") String[] eipIds,
RedirectAttributes redirectAttributes) {
comm.dnsService.saveDNSToApply(applyId, domainNames, domainTypes, eipIds);
redirectAttributes.addFlashAttribute("message", "创建DNS域名映射成功.");
return REDIRECT_SUCCESS_URL;
}
/**
* 从服务申请表页面跳转到DNS域名映射的修改页面.
*/
@RequestMapping(value = "/update/{id}/applyId/{applyId}", method = RequestMethod.GET)
public String updateForm(@PathVariable("id") Integer id, @PathVariable("applyId") Integer applyId, Model model) {
model.addAttribute("dns", comm.dnsService.getNetworkDnsItem(id));
return "apply/dns/dnsUpateForm";
}
/**
* 修改DNS.完成后跳转到applyId的服务申请修改页面
*
* @param id
* @param applyId
* @param domainName
* @param domainType
* @param cnameDomain
* @param eipIds
* @param redirectAttributes
* @return
*/
@RequestMapping(value = "/update/{id}/applyId", method = RequestMethod.POST)
public String update(@PathVariable("id") Integer id, @RequestParam("applyId") Integer applyId,
@RequestParam(value = "domainName") String domainName,
@RequestParam(value = "domainType") Integer domainType,
@RequestParam(value = "cnameDomain", required = false) String cnameDomain,
@RequestParam(value = "eipIds", required = false) String[] eipIds,
RedirectAttributes redirectAttributes) {
NetworkDnsItem networkDnsItem = comm.dnsService.getNetworkDnsItem(id);
comm.dnsService.updateDNSToApply(networkDnsItem, domainName, domainType, cnameDomain, eipIds);
redirectAttributes.addFlashAttribute("message", "修改DNS " + networkDnsItem.getIdentifier() + " 成功");
return "redirect:/apply/update/" + applyId;
}
/**
* 删除DNS后,跳转到applyId的服务申请修改页面
*/
@RequestMapping(value = "/delete/{id}/applyId/{applyId}")
public String delete(@PathVariable("id") Integer id, @PathVariable("applyId") Integer applyId,
RedirectAttributes redirectAttributes) {
comm.dnsService.deleteNetworkDnsItem(id);
redirectAttributes.addFlashAttribute("message", "删除DNS成功");
return "redirect:/apply/update/" + applyId;
}
}