package com.sohu.cache.web.controller;
import java.util.Date;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.sohu.cache.constant.ImportAppResult;
import com.sohu.cache.entity.AppDesc;
import com.sohu.cache.entity.AppUser;
import com.sohu.cache.stats.app.ImportAppCenter;
/**
* 已经存在Redis导入
*
* @author leifu
* @Date 2016-4-16
* @Time 下午2:31:14
*/
@Controller
@RequestMapping("/import/app")
public class ImportAppController extends BaseController {
@Resource(name = "importAppCenter")
private ImportAppCenter importAppCenter;
@RequestMapping(value = "/init")
public ModelAndView init(HttpServletRequest request, HttpServletResponse response, Model model) {
return new ModelAndView("import/init");
}
@RequestMapping(value = "/check")
public ModelAndView check(HttpServletRequest request, HttpServletResponse response, Model model) {
AppDesc appDesc = genAppDesc(request);
String appInstanceInfo = request.getParameter("appInstanceInfo");
ImportAppResult importAppResult = importAppCenter.check(appDesc, appInstanceInfo);
model.addAttribute("status", importAppResult.getStatus());
model.addAttribute("message", importAppResult.getMessage());
return new ModelAndView("");
}
@RequestMapping(value = "/add")
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response, Model model) {
AppDesc appDesc = genAppDesc(request);
String appInstanceInfo = request.getParameter("appInstanceInfo");
logger.warn("appDesc:" + appDesc);
logger.warn("appInstanceInfo: " + appInstanceInfo);
// 不需要对格式进行检验,check已经做过了。
boolean isSuccess = importAppCenter.importAppAndInstance(appDesc, appInstanceInfo);
logger.warn("import app result is {}", isSuccess);
model.addAttribute("status", isSuccess ? 1 : 0);
return new ModelAndView("");
}
/**
* 生成AppDesc
*
* @param request
* @return
*/
private AppDesc genAppDesc(HttpServletRequest request) {
// 当前用户
AppUser currentUser = getUserInfo(request);
// 当前时间
Date date = new Date();
// 组装Appdesc
AppDesc appDesc = new AppDesc();
appDesc.setName(request.getParameter("name"));
appDesc.setIntro(request.getParameter("intro"));
appDesc.setOfficer(request.getParameter("officer"));
appDesc.setType(NumberUtils.toInt(request.getParameter("type")));
appDesc.setIsTest(NumberUtils.toInt(request.getParameter("isTest")));
appDesc.setMemAlertValue(NumberUtils.toInt(request.getParameter("memAlertValue")));
appDesc.setPassword(request.getParameter("password"));
appDesc.setUserId(currentUser.getId());
appDesc.setStatus(2);
appDesc.setCreateTime(date);
appDesc.setPassedTime(date);
appDesc.setVerId(1);
return appDesc;
}
}