package com.sobey.cmop.mvc.web; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.stereotype.Controller; 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.bind.annotation.ResponseBody; import com.google.common.collect.Maps; import com.sobey.cmop.mvc.comm.BaseController; import com.sobey.cmop.mvc.entity.ComputeItem; import com.sobey.cmop.mvc.entity.IpPool; import com.sobey.cmop.mvc.entity.NetworkEsgItem; import com.sobey.cmop.mvc.entity.ServerModel; import com.sobey.cmop.mvc.entity.Vlan; import com.sobey.cmop.mvc.entity.ToJson.ResourcesJson; /** * 页面AJAX操作相关的 Controller * * @author liukai * */ @Controller @RequestMapping(value = "/ajax") public class AjaxController extends BaseController { /** * Ajax请求校验部门名称是否唯一 * * @param oldName * @param name * @return */ @RequestMapping(value = "checkDepartmentName") @ResponseBody public String checkDepartmentName(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.departmentService.findDepartmentByName(name) == null ? "true" : "false"; } /** * Ajax请求校验服务器型号名称是否唯一 * * @param oldName * @param name * @return */ @RequestMapping(value = "checkServerModel") @ResponseBody public String checkServerModel(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.serverModelService.findServerModelByName(name) == null ? "true" : "false"; } /** * Ajax请求校验email是否唯一. * * @param oldEmail * @param email * @return */ @RequestMapping(value = "checkEmail") @ResponseBody public String checkEmail(@RequestParam(value = "oldEmail", required = false) String oldEmail, @RequestParam("email") String email) { return email.equals(oldEmail) || comm.accountService.findUserByEmail(email) == null ? "true" : "false"; } /** * Ajax请求校验GroupName是否唯一. * * @param oldName * @param name * @return */ @RequestMapping(value = "checkGroupName") @ResponseBody public String checkGroupName(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.accountService.findGroupByName(name) == null ? "true" : "false"; } /** * Ajax请求校验loginName是否唯一. * * @param oldLoginName * @param loginName * @return */ @RequestMapping(value = "checkLoginName") @ResponseBody public String checkLoginName(@RequestParam(value = "oldLoginName", required = false) String oldLoginName, @RequestParam("loginName") String loginName) { return loginName.equals(oldLoginName) || comm.accountService.findUserByLoginName(loginName) == null ? "true" : "false"; } /** * Ajax请求校验Location Name是否唯一. * * @param oldName * @param name * @return */ @RequestMapping(value = "checkLocation") @ResponseBody public String checkLocation(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.locationService.findLocationByName(name) == null ? "true" : "false"; } /** * Ajax请求校验Vlan Name是否唯一. * * @param oldName * @param name * @return */ @RequestMapping(value = "checkVlan") @ResponseBody public String checkVlan(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.vlanService.findVlanByName(name) == null ? "true" : "false"; } /** * Ajax请求获得服务器规格信息 * * @param id * @return */ @RequestMapping(value = "getServerModel") @ResponseBody public ServerModel getServerModel(@RequestParam("id") Integer id) { return comm.serverModelService.getServerModel(id); } /** * 根据条件返回Json格式的资源Resources List . * * @param serviceType * 服务类型 * @param serviceTagName * 服务标签 * @param ipAddress * IP地址 * @param serviceIdentifier * 资源标识符 * @return */ @RequestMapping(value = "getResourcesList", method = RequestMethod.POST) @ResponseBody public List<ResourcesJson> getResourcesList( @RequestParam(value = "serviceType", required = false) String serviceType, @RequestParam(value = "serviceTagName", required = false) String serviceTagName, @RequestParam(value = "ipAddress", required = false) String ipAddress, @RequestParam(value = "serviceIdentifier", required = false) String serviceIdentifier) { return comm.resourcesService.getResourcesJsonListByParamers(serviceType, serviceTagName, ipAddress, serviceIdentifier); } /** * Ajax请求校验服务标签名是否唯一 * * @param oldName * @param name * @return */ @RequestMapping(value = "checkServiceTagName") @ResponseBody public String checkServiceTagName(@RequestParam("oldName") String oldName, @RequestParam("name") String name) { return name.equals(oldName) || comm.serviceTagService.findServiceTagByNameAndUserId(name, getCurrentUserId()) == null ? "true" : "false"; } /** * * @return 当前用户创建的+公用的(user_id 为null) ESG列表. */ @RequestMapping(value = "getEsgList") @ResponseBody public List<NetworkEsgItem> getEsgList() { return comm.esgService.getESGList(); } /** * 获得当前用户创建的所有compute. * * @return */ @RequestMapping(value = "getComputeList") @ResponseBody public List<ComputeItem> getComputeList() { return comm.computeService.getComputeListByUserId(getCurrentUserId()); } /** * 根据IDC获取VLAN * * @param location * @return */ @RequestMapping(value = "getVlanByLocation") @ResponseBody public Map<Integer, String> getVlanByLocation(@RequestParam("location") Integer location) { Set<Vlan> vlans = comm.locationService.getLocation(location).getVlans(); Map<Integer, String> map = Maps.newHashMap(); for (Vlan vlan : vlans) { map.put(vlan.getId(), vlan.getName()); } return map; } @RequestMapping(value = "getVlanByLocationAlias") @ResponseBody public Map<String, String> getVlanByLocationAlias(@RequestParam("locationAlias") String locationAlias) { Set<Vlan> vlans = comm.locationService.findLocationByAlias(locationAlias).getVlans(); Map<String, String> map = Maps.newHashMap(); for (Vlan vlan : vlans) { map.put(vlan.getAlias(), "Vlan" + vlan.getName() + "(" + vlan.getDescription() + ")"); } return map; } /** * 根据IDC获取VLAN * * @param Location * @return */ @RequestMapping(value = "getIpPoolByVlan") @ResponseBody public List<IpPool> getIpPoolByVlan(@RequestParam("vlanAlias") String vlanAlias) { return comm.ipPoolService.findIpPoolByVlan(vlanAlias); } /** * 判断所选Server是否已被关联(一个物理机只能被一个PCS关联) * * @param Location * @return */ @RequestMapping(value = "checkServerIsUsed") @ResponseBody public String checkServerIsUsed(@RequestParam("serverAlias") String serverAlias) { if (comm.hostServerService.findByAlias(serverAlias).getIpPools().size() > 0) { return "used"; } return ""; } }