package cn.me.fdfs.action; import cn.me.fdfs.service.MonitorService; import cn.me.fdfs.service.WarningService; import cn.me.fdfs.vo.*; import com.jcraft.jsch.JSchException; import com.mysql.jdbc.StringUtils; import org.csource.common.MyException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Created with IntelliJ IDEA. * User: wanglt * Date: 12-8-27 * Time: 下午10:02 * To change this template use File | Settings | File Templates. */ @Controller @RequestMapping("/warning") public class WarningAction { @Autowired private WarningService warningService; @Autowired private MonitorService monitorService; @RequestMapping("/warningValue") public ModelAndView warningValue(String wdIpAddr, PageInfo pageInfo) throws IOException, MyException { ModelAndView mv = new ModelAndView("warning/warningValue.jsp"); WarningData wd = new WarningData(); wd.setWdIpAddr(wdIpAddr); List<WarningData> warningDataLists = warningService.findWarning(wd, pageInfo); for (WarningData warningDataList : warningDataLists) { List<Storage> storage = monitorService.listStorageTop(warningDataList.getWdIpAddr()); if(!storage.isEmpty()) warningDataList.setWdGroupName(storage.get(0).getGroupName()); } mv.addObject("warningValues", warningDataLists); mv.addObject("wdIpAddr", wdIpAddr); mv.addObject("pageInfoList", pageInfo); return mv; } @RequestMapping("/warningEdit") public ModelAndView warningEdit(String id) throws IOException, MyException { ModelAndView mv = new ModelAndView("warning/warningEdit.jsp"); if (!StringUtils.isNullOrEmpty(id)) { WarningData wd = warningService.findById(id); mv.addObject("id", wd.getId()); mv.addObject("wdIpAddr", wd.getWdIpAddr()); mv.addObject("wdFreeMB", wd.getWdFreeMB()); mv.addObject("wdCpu", wd.getWdCpu()); mv.addObject("wdMem", wd.getWdMem()); } return mv; } @ResponseBody @RequestMapping("/saveWarning") public Message saveWarning(String warningdataid, String ips, String wdFreeMB, String wdCpu, String wdMem) throws IOException, MyException,JSchException { Message message = null; String result = "操作成功"; message = new Message(); List<Group> groupList = monitorService.listGroupInfo(); for (Group group : groupList) { for (Storage storage : group.getStorageList()) { if (storage.getIpAddr().equals(ips)) { if (storage.getCurStatus().equals("ACTIVE")) { /* if(Float.parseFloat(storage.getCpu())<Float.parseFloat(wdCpu)){ message.setStatusCode("300"); message.setMessage("cup预警值小于当前cpu使用率"); return message; }else if(storage.getMem()<Float.parseFloat(wdMem)){ message.setStatusCode("300"); message.setMessage("内存预警值小于当前内存使用率"); return message; }else */ if (storage.getFreeMB() < Long.decode(wdFreeMB)*1024) { message.setStatusCode("300"); message.setMessage("容量预警值大于当前可用容量"); return message; } } else { message.setStatusCode("300"); message.setMessage("服务器已停止工作"); return message; } } } } WarningData wd = new WarningData(); if (!StringUtils.isNullOrEmpty(warningdataid)) { wd.setId(warningdataid); } wd.setWdIpAddr(ips); wd.setWdCpu(wdCpu); wd.setWdFreeMB(Long.decode(wdFreeMB)); wd.setWdMem(Float.parseFloat(wdMem)); warningService.updateWarning(wd); // message=new Message("200",result,"warningValue","warningValue","closeCurrent",""); message.setStatusCode("200"); message.setMessage(result); return message; } @ResponseBody @RequestMapping("/delWarning") public Message delWarning(String ids) throws IOException, MyException { Message message = null; String[] id = ids.split(","); for (String i : id) { warningService.delWarning(i); } //Message message =new Message("200","删除成功","warningValue","warningValue","",""); message = new Message(); message.setStatusCode("200"); message.setMessage("操作成功"); return message; } @ResponseBody @RequestMapping("/selectIp") public List<Message> selectIp() throws IOException, MyException, JSchException { List<Message> ips = new ArrayList<Message>(); List<Group> groupList = monitorService.listGroupInfo(); for (Group group : groupList) { List<Storage> storageList = group.getStorageList(); for (Storage storage : storageList) { if ((warningService.findByIp(storage.getIpAddr())).isEmpty()) { ips.add(new Message(storage.getIpAddr())); } } } return ips; } @RequestMapping("/warUserList") public ModelAndView warUserList(String wusername, PageInfo pageInfo) throws IOException, MyException { ModelAndView mv = new ModelAndView("warning/warUserList.jsp"); WarningUser wu = new WarningUser(); wu.setName(wusername); List<WarningUser> warningUserList = warningService.findWarUser(wu, pageInfo); mv.addObject("warUserLists", warningUserList); mv.addObject("wusername", wusername); mv.addObject("pageInfoList", pageInfo); return mv; } @RequestMapping("/warUserAdd") public ModelAndView warUserAdd(String id) throws IOException, MyException { ModelAndView mv = new ModelAndView("warning/warUserAdd.jsp"); if (!StringUtils.isNullOrEmpty(id)) { WarningUser wu = warningService.findUserId(id); mv.addObject("id", wu.getId()); mv.addObject("name", wu.getName()); mv.addObject("phone", wu.getPhone()); mv.addObject("email", wu.getEmail()); } return mv; } @ResponseBody @RequestMapping("/delWarUser") public Message delWarUser(String ids) throws IOException, MyException { Message message = null; String[] id = ids.split(","); for (String i : id) { warningService.delWarUser(i); } //Message message =new Message("200","删除成功","warUserList","warUserList","",""); message = new Message(); message.setStatusCode("200"); message.setMessage("操作成功"); return message; } @ResponseBody @RequestMapping("/saveWarUser") public Message saveWarUser(String wuid, String wuname, String wuphone, String wuemail) throws IOException, MyException { Message message = null; String result = "操作成功"; WarningUser wu = new WarningUser(); if (wuphone.length() > 11) { result="操作失败"; message = new Message(); message.setStatusCode("304"); message.setMessage("电话号较长"); } else { if (!StringUtils.isNullOrEmpty(wuid)) { wu.setId(wuid); } else { } wu.setName(wuname); wu.setPhone(wuphone); wu.setEmail(wuemail); warningService.updateWarUser(wu); // Message message =new Message("200",result,"warUserList","warUserList","closeCurrent",""); message = new Message(); message.setStatusCode("200"); message.setMessage("操作成功"); } return message; } }