package cn.ksource.web.controller.wechat.ewyw.stats;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.DateUtil;
|
import cn.ksource.core.util.JsonUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.web.facade.customermanage.CustomerManageFacade;
|
import cn.ksource.web.facade.satis.SatisfactionFacade;
|
import cn.ksource.web.facade.tj.SatisfactionStatisFacade;
|
|
|
@SuppressWarnings({"rawtypes","unchecked"})
|
@Controller
|
@RequestMapping("/ewyw/stats/ewSatisStats")
|
public class EwSatisStatsController {
|
|
@Resource
|
private SatisfactionStatisFacade satisStatisFacade;
|
@Resource
|
private CustomerManageFacade customerFacade;
|
|
@Autowired
|
private SatisfactionFacade satisfactionFacade;
|
|
/**
|
* 驻场统计首页
|
* @author chenlong
|
* @param request
|
* @return
|
*/
|
@RequestMapping("/satisStatsIndex.html")
|
public String satisStatsIndex(HttpServletRequest request){
|
return "/business/wechat/ewyw/stats/ewSatisStats/satisStatsIndex";
|
}
|
|
|
/**
|
* 查询条件
|
* @author chenlong
|
* @param request
|
* @return
|
*/
|
@RequestMapping("/satisSearchIndex.html")
|
public String satisSearchIndex(Model model,HttpServletRequest request){
|
List<Map> customers = customerFacade.getCusList();
|
model.addAttribute("customers",customers);
|
return "/business/wechat/ewyw/stats/ewSatisStats/satisSearchIndex";
|
}
|
|
/**
|
* 获取快速查询日期
|
* @author chenlong
|
* @param request
|
* @param response
|
*/
|
@RequestMapping("/getFastSearchDate.html")
|
public void getFastSearchDate(HttpServletRequest request,HttpServletResponse response){
|
SimpleDateFormat df = new SimpleDateFormat("yyyyMM");
|
Calendar cal = Calendar.getInstance();
|
Map<String, String> dateMap = new HashMap<String, String>();
|
String searchType = request.getParameter("searchType");
|
if(searchType.equals("three_month")){
|
dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -2, "MONTH", 6);
|
}else if(searchType.equals("six_month")){
|
dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -5, "MONTH", 6);
|
}else if(searchType.equals("one_year")){
|
dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -1, "YEAR", 6);
|
}
|
WebUtil.write(response, JsonUtil.map2Json(dateMap));
|
}
|
|
@RequestMapping("/satisStatsJump.html")
|
public String satisStatsJump(HttpServletRequest request){
|
String statsType = request.getParameter("statsType");
|
if(statsType.equals("trend")){
|
return "forward:/ewyw/stats/ewSatisStats/satisTrendLine.html";
|
}else if(statsType.equals("cover")){
|
return "forward:/ewyw/stats/ewSatisStats/satisCoverLine.html";
|
}else if(statsType.equals("dctj")){
|
return "forward:/ewyw/stats/ewSatisStats/ewsatisReport.html";
|
}else if(statsType.equals("total")){
|
return "forward:/ewyw/stats/ewSatisStats/ewsatisTotalReport.html";
|
}
|
return "forward:/ewyw/stats/ewSatisStats/satisStatsIndex.html";
|
}
|
|
/**
|
* 满意度趋势线形图
|
* @author chenlong
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping("/satisTrendLine.html")
|
public String satisTrendLine(Model model,HttpServletRequest request){
|
String startDate = request.getParameter("startDate");
|
String endDate = request.getParameter("endDate");
|
String cusId = request.getParameter("cusId");
|
if(StringUtil.isBlank(startDate)){
|
Map dateMap = getInitDateMap();
|
startDate = ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", "");
|
endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", "");
|
}
|
Map chartMap = satisStatisFacade.satisTrendLine(cusId, startDate, endDate);
|
model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap));
|
return "/business/wechat/ewyw/stats/ewSatisStats/satisTrendLine";
|
}
|
|
/**
|
* 满意度覆盖率线形图
|
* @author chenlong
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping("/satisCoverLine.html")
|
public String satisCoverLine(Model model,HttpServletRequest request){
|
String startDate = request.getParameter("startDate");
|
String endDate = request.getParameter("endDate");
|
String cusId = request.getParameter("cusId");
|
if(StringUtil.isBlank(startDate)){
|
Map dateMap = getInitDateMap();
|
startDate = ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", "");
|
endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", "");
|
}
|
Map chartMap = satisStatisFacade.satisCoverLine(cusId, startDate, endDate);
|
model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap));
|
return "/business/wechat/ewyw/stats/ewSatisStats/satisCoverLine";
|
}
|
|
public Map getInitDateMap(){
|
SimpleDateFormat df = new SimpleDateFormat("yyyyMM");
|
Calendar cal = Calendar.getInstance();
|
Map<String, String> dateMap = new HashMap<String, String>();
|
dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -2, "MONTH", 6);
|
return dateMap;
|
}
|
|
/**
|
* 查询条件
|
* @author chenlong
|
* @param request
|
* @return
|
*/
|
@RequestMapping("/satisSearchReport.html")
|
public String satisSearchReport(Model model,HttpServletRequest request){
|
List<Map> customers = customerFacade.getCusList();
|
model.addAttribute("customers",customers);
|
return "/business/wechat/ewyw/stats/ewSatisStats/satisSearchReport";
|
}
|
|
@RequestMapping("ewsatisReport.html")
|
public String ewsatisReport(Model model,HttpServletRequest request,HttpServletResponse response){
|
String cusId = request.getParameter("cusId");
|
String beginTime = request.getParameter("beginDay");
|
String endTime = request.getParameter("endDay");
|
if(!StringUtil.isEmpty(cusId)){
|
Map report = satisStatisFacade.querySatisReport(cusId,beginTime,endTime);
|
model.addAttribute("report", report);
|
|
SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById();
|
model.addAttribute("cusName",cus.getShort_name());
|
model.addAttribute("beginTime",DateUtil.format("yyyy/MM", beginTime));
|
model.addAttribute("endTime",DateUtil.format("yyyy/MM", endTime));
|
}
|
return "/business/wechat/ewyw/stats/ewSatisStats/ewsatisReport";
|
}
|
|
@RequestMapping("ewsatisTotalReport.html")
|
public String ewsatisTotalReport(Model model,HttpServletRequest request,HttpServletResponse response){
|
String cusId = request.getParameter("cusId");
|
String beginTime = request.getParameter("beginDay");
|
String endTime = request.getParameter("endDay");
|
Map<String,String> params = new HashMap<String, String>();
|
params.put("customerId", cusId);
|
if(!StringUtil.isEmpty(beginTime)){
|
params.put("begin_month", beginTime.substring(0, beginTime.length()-2));
|
}
|
if(!StringUtil.isEmpty(endTime)){
|
params.put("end_month", endTime.substring(0, beginTime.length()-2));
|
}
|
if(!StringUtil.isEmpty(cusId)){
|
List<Map> report = satisfactionFacade.getTotalMonthSatisReport(params);
|
model.addAttribute("report", report);
|
|
SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById();
|
model.addAttribute("cusName",cus.getShort_name());
|
model.addAttribute("beginTime",DateUtil.format("yyyy/MM", beginTime));
|
model.addAttribute("endTime",DateUtil.format("yyyy/MM", endTime));
|
}
|
return "/business/wechat/ewyw/stats/ewSatisStats/ewsatisTotalReport";
|
}
|
}
|