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 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 dateMap = new HashMap(); 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 dateMap = new HashMap(); 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 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 params = new HashMap(); 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 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"; } }