package cn.ksource.web.controller.wechat.uwyw.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.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; 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.tj.QuestionStatisFacade; @Controller @RequestMapping("/uwyw/stats/uQuestionStats") public class UQuestionStatsController { @Resource private QuestionStatisFacade questionStatisFacade; /** * 问题统计首页 * @author chenlong * @param request * @return */ @RequestMapping("/questionStatsIndex.html") public String questionStatsIndex(HttpServletRequest request){ return "/business/wechat/uwyw/stats/uQuestionStats/questionStatsIndex"; } /** * 查询条件 * @author chenlong * @param request * @return */ @RequestMapping("/questionSearchIndex.html") public String questionSearchIndex(Model model,HttpServletRequest request){ return "/business/wechat/uwyw/stats/uQuestionStats/questionSearchIndex"; } /** * 获取快速查询日期 * @author chenlong * @param request * @param response */ @RequestMapping("/getFastSearchDate.html") public void getFastSearchDate(HttpServletRequest request,HttpServletResponse response){ SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); Calendar cal = Calendar.getInstance(); Map dateMap = new HashMap(); String searchType = request.getParameter("searchType"); if(searchType.equals("one_week")){ dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -6, "DAY", 8); }else if(searchType.equals("one_month")){ dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -1, "MONTH", 8); }else if(searchType.equals("three_month")){ dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -2, "MONTH", 8); }else if(searchType.equals("six_month")){ dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -5, "MONTH", 8); }else if(searchType.equals("one_year")){ dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -1, "YEAR", 8); } WebUtil.write(response, JsonUtil.map2Json(dateMap)); } @RequestMapping("/questionStatsJump.html") public String questionStatsJump(HttpServletRequest request){ String statsType = request.getParameter("statsType"); if(statsType.equals("source")){ return "forward:/uwyw/stats/uQuestionStats/questionSourcePie.html"; }else if(statsType.equals("close")){ return "forward:/uwyw/stats/uQuestionStats/questionCloseCol.html"; }else if(statsType.equals("priority")){ return "forward:/uwyw/stats/uQuestionStats/questionPriPie.html"; }else if(statsType.equals("influence")){ return "forward:/uwyw/stats/uQuestionStats/questionInfluenceCol.html"; } return "forward:/uwyw/stats/uQuestionStats/questionStatsIndex.html"; } /** * 问题来源饼状图 * @author chenlong * @param model * @param request * @return */ @RequestMapping("/questionSourcePie.html") public String questionSourcePie(Model model,HttpServletRequest request){ String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); if(StringUtil.isBlank(startDate)){ Map dateMap = getInitDateMap(); startDate =ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", ""); endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", ""); } String cusId = WebUtil.getUserWywCusId(request); Map chartMap = questionStatisFacade.questionSourcePie("day",cusId,startDate,endDate); model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap)); return "/business/wechat/uwyw/stats/uQuestionStats/questionSourcePie"; } /** * 问题关闭方式柱状图 * @author chenlong * @param model * @param request * @return */ @RequestMapping("/questionCloseCol.html") public String questionCloseCol(Model model,HttpServletRequest request){ String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); if(StringUtil.isBlank(startDate)){ Map dateMap = getInitDateMap(); startDate =ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", ""); endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", ""); } String cusId = WebUtil.getUserWywCusId(request); Map chartMap = questionStatisFacade.questionCloseCol("day",cusId,startDate,endDate); model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap)); return "/business/wechat/uwyw/stats/uQuestionStats/questionCloseCol"; } /** * 问题优先级饼图 * @author chenlong * @param model * @param request * @return */ @RequestMapping("/questionPriPie.html") public String questionPriPie(Model model,HttpServletRequest request){ String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); if(StringUtil.isBlank(startDate)){ Map dateMap = getInitDateMap(); startDate =ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", ""); endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", ""); } String cusId = WebUtil.getUserWywCusId(request); Map chartMap = questionStatisFacade.questionPriPie("day",cusId,startDate,endDate); model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap)); return "/business/wechat/uwyw/stats/uQuestionStats/questionPriPie"; } /** * 问题影响度柱状图 * @author chenlong * @param model * @param request * @return */ @RequestMapping("/questionInfluenceCol.html") public String questionInfluenceCol(Model model,HttpServletRequest request){ String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); if(StringUtil.isBlank(startDate)){ Map dateMap = getInitDateMap(); startDate =ConvertUtil.obj2Str(dateMap.get("startDate")).replace("-", ""); endDate = ConvertUtil.obj2Str(dateMap.get("endDate")).replace("-", ""); } String cusId = WebUtil.getUserWywCusId(request); Map chartMap = questionStatisFacade.questionInfluenceCol("day",cusId,startDate,endDate); model.addAttribute("chartJsonStr",JsonUtil.map2Json(chartMap)); return "/business/wechat/uwyw/stats/uQuestionStats/questionInfluenceCol"; } public Map getInitDateMap(){ Calendar cal = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); Map dateMap = new HashMap(); dateMap = DateUtil.getRecentDate(df.format(cal.getTime()), -6, "DAY", 8); return dateMap; } @RequestMapping("/questionStatsReportJump.html") public String questionStatsReportJump(HttpServletRequest request){ String statsType = request.getParameter("statsType"); if(statsType.equals("dcl")){ return "forward:/uwyw/stats/uQuestionStats/uquestionDclStatis.html"; }else if(statsType.equals("detail")){ return "forward:/uwyw/stats/uQuestionStats/uquestionDetailStatis.html"; }else if(statsType.equals("deal")){ return "forward:/uwyw/stats/uQuestionStats/uquestionDealStatis.html"; }else if(statsType.equals("state")){ return "forward:/uwyw/stats/uQuestionStats/uquestionStatusStatis.html"; } return "forward:/uwyw/stats/uQuestionStats/questionStatsIndex.html"; } /** * 查询条件 * @param request * @return */ @RequestMapping("/questionSearchReport.html") public String questionSearchReport(Model model,HttpServletRequest request){ return "/business/wechat/uwyw/stats/uQuestionStats/questionSearchReport"; } /** * 跳转到事件达成率信息页面 */ @RequestMapping("uquestionDclStatis.html") public ModelAndView uquestionDclStatis(HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView("/business/wechat/uwyw/stats/uQuestionStats/uquestionDclStatis"); String cusId = WebUtil.getUserWywCusId(request); String beginTime = request.getParameter("beginTime"); String endTime = request.getParameter("endTime"); String subCustomerId = request.getParameter("sub_customer_id"); if(!StringUtil.isEmpty(cusId)){ List reports = questionStatisFacade.queryQuestiontDclStatis(cusId,subCustomerId,beginTime,endTime); modelAndView.addObject("reports", reports); SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById(); modelAndView.addObject("beginTime",DateUtil.format("yyyy/MM/dd", request.getParameter("beginTime"))); modelAndView.addObject("endTime",DateUtil.format("yyyy/MM/dd", request.getParameter("endTime"))); modelAndView.addObject("cusName",cus.getShort_name()); } return modelAndView; } @RequestMapping("uquestionDetailStatis.html") public String uquestionDetailStatis(Model model,HttpServletRequest request,HttpServletResponse response){ String cusId = WebUtil.getUserWywCusId(request); String beginDay = request.getParameter("beginDay"); String endDay = request.getParameter("endDay"); if(!StringUtil.isEmpty(beginDay)){ Map report = questionStatisFacade.queryDetailReport(cusId,beginDay,endDay); model.addAttribute("report", report); SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById(); model.addAttribute("beginTime",DateUtil.format("yyyy/MM/dd", request.getParameter("beginDay"))); model.addAttribute("endTime",DateUtil.format("yyyy/MM/dd", request.getParameter("endDay"))); model.addAttribute("cusName",cus.getShort_name()); } return "/business/wechat/uwyw/stats/uQuestionStats/uquestionDetailStatis"; } @RequestMapping("uquestionDealStatis.html") public String uquestionDealStatis(Model model,HttpServletRequest request,HttpServletResponse response){ String cusId = WebUtil.getUserWywCusId(request); String beginDay = request.getParameter("beginDay"); String endDay = request.getParameter("endDay"); if(!StringUtil.isEmpty(beginDay)){ Map report = questionStatisFacade.queryDealStatuReport(cusId,beginDay,endDay); model.addAttribute("report", report); SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById(); model.addAttribute("beginTime",DateUtil.format("yyyy/MM/dd", request.getParameter("beginDay"))); model.addAttribute("endTime",DateUtil.format("yyyy/MM/dd", request.getParameter("endDay"))); model.addAttribute("cusName",cus.getShort_name()); } return "/business/wechat/uwyw/stats/uQuestionStats/uquestionDealStatis"; } @RequestMapping("uquestionStatusStatis.html") public String uquestionStatusStatis(Model model,HttpServletRequest request,HttpServletResponse response){ String cusId = WebUtil.getUserWywCusId(request); String beginDay = request.getParameter("beginDay"); String endDay = request.getParameter("endDay"); if(!StringUtil.isEmpty(beginDay)){ Map report = questionStatisFacade.queryStatusReport(cusId,beginDay,endDay); model.addAttribute("report", report); SC_PARTNER_CUSTOMER_INFO cus = new SC_PARTNER_CUSTOMER_INFO(cusId).getInstanceById(); model.addAttribute("beginTime",DateUtil.format("yyyy/MM/dd", request.getParameter("beginDay"))); model.addAttribute("endTime",DateUtil.format("yyyy/MM/dd", request.getParameter("endDay"))); model.addAttribute("cusName",cus.getShort_name()); } return "/business/wechat/uwyw/stats/uQuestionStats/uquestionStatusStatis"; } }