Package com.jeecms.cms.statistic

Source Code of com.jeecms.cms.statistic.CmsStatisticAct

package com.jeecms.cms.statistic;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jeecms.cms.entity.main.Channel;
import com.jeecms.cms.entity.main.CmsUser;
import com.jeecms.cms.manager.main.ChannelMng;
import com.jeecms.cms.manager.main.CmsUserMng;
import com.jeecms.cms.statistic.CmsStatistic.CmsStatisticModel;
import com.jeecms.cms.web.CmsUtils;
import com.jeecms.common.page.Pagination;
import com.jeecms.common.web.CookieUtils;
import com.jeecms.common.web.RequestUtils;

import static com.jeecms.cms.statistic.CmsStatistic.MEMBER;
import static com.jeecms.cms.statistic.CmsStatistic.CONTENT;
import static com.jeecms.cms.statistic.CmsStatistic.COMMENT;
import static com.jeecms.cms.statistic.CmsStatistic.GUESTBOOK;
import static com.jeecms.cms.statistic.CmsStatistic.PV;
import static com.jeecms.cms.statistic.CmsStatistic.UNIQUEIP;
import static com.jeecms.cms.statistic.CmsStatistic.UNIQUEVISITOR;
import static com.jeecms.cms.statistic.CmsStatistic.AVGVIEWS;
import static com.jeecms.cms.statistic.CmsStatistic.SITEID;
import static com.jeecms.cms.statistic.CmsStatistic.ISREPLYED;
import static com.jeecms.cms.statistic.CmsStatistic.USERID;
import static com.jeecms.cms.statistic.CmsStatistic.CHANNELID;
import static com.jeecms.cms.statistic.CmsStatistic.REFERER_WEBSITE;
import static com.jeecms.cms.statistic.CmsStatistic.REFERER_PAGE;
import static com.jeecms.cms.statistic.CmsStatistic.ACCESS_PAGE;
import static com.jeecms.cms.statistic.CmsStatistic.AREA;
import static com.jeecms.cms.statistic.CmsStatistic.REFERER_KEYWORD;
import static com.jeecms.common.page.SimplePage.cpn;

@Controller
public class CmsStatisticAct {
  @RequestMapping("/statistic_member/v_list.do")
  public String memberList(String queryModel, Integer year, Integer month,
      Integer day, ModelMap model) {
    CmsStatisticModel statisticModel = getStatisticModel(queryModel);
    List<CmsStatistic> list = cmsStatisticSvc.statisticByModel(MEMBER,
        statisticModel, year, month, day, null);
    putCommonData(statisticModel, list, year, month, day, model);
    return "statistic/member/list";
  }

  @RequestMapping("/statistic_content/v_list.do")
  public String contentList(HttpServletRequest request, String queryModel,
      Integer channelId, Integer year, Integer month, Integer day,
      ModelMap model) {
    String queryInputUsername = RequestUtils.getQueryParam(request,
        "queryInputUsername");
    Integer queryInputUserId = null;
    if (!StringUtils.isBlank(queryInputUsername)) {
      CmsUser u = cmsUserMng.findByUsername(queryInputUsername);
      if (u != null) {
        queryInputUserId = u.getId();
      } else {
        // 用户名不存在,清空。
        queryInputUsername = null;
      }
    }
    Map<String, Object> restrictions = new HashMap<String, Object>();
    Integer siteId = CmsUtils.getSiteId(request);
    restrictions.put(SITEID, siteId);
    restrictions.put(USERID, queryInputUserId);
    restrictions.put(CHANNELID, channelId);
    CmsStatisticModel statisticModel = getStatisticModel(queryModel);
    List<CmsStatistic> list = cmsStatisticSvc.statisticByModel(CONTENT,
        statisticModel, year, month, day, restrictions);
    List<Channel> topList = channelMng.getTopList(siteId, true);
    List<Channel> channelList = Channel.getListForSelect(topList, null,
        true);
    putCommonData(statisticModel, list, year, month, day, model);
    model.addAttribute("queryInputUsername", queryInputUsername);
    model.addAttribute("channelList", channelList);
    model.addAttribute("channelId", channelId);
    return "statistic/content/list";
  }

  @RequestMapping("/statistic_comment/v_list.do")
  public String commentList(HttpServletRequest request, String queryModel,
      Integer year, Integer month, Integer day, Boolean isReplyed,
      ModelMap model) {
    Map<String, Object> restrictions = new HashMap<String, Object>();
    Integer siteId = CmsUtils.getSiteId(request);
    restrictions.put(SITEID, siteId);
    restrictions.put(ISREPLYED, isReplyed);
    CmsStatisticModel statisticModel = getStatisticModel(queryModel);
    List<CmsStatistic> list = cmsStatisticSvc.statisticByModel(COMMENT,
        statisticModel, year, month, day, restrictions);
    putCommonData(statisticModel, list, year, month, day, model);
    model.addAttribute("isReplyed", isReplyed);
    return "statistic/comment/list";
  }

  @RequestMapping("/statistic_guestbook/v_list.do")
  public String guestbookList(HttpServletRequest request, String queryModel,
      Integer year, Integer month, Integer day, Boolean isReplyed,
      ModelMap model) {
    Map<String, Object> restrictions = new HashMap<String, Object>();
    Integer siteId = CmsUtils.getSiteId(request);
    restrictions.put(SITEID, siteId);
    restrictions.put(ISREPLYED, isReplyed);
    CmsStatisticModel statisticModel = getStatisticModel(queryModel);
    List<CmsStatistic> list = cmsStatisticSvc.statisticByModel(GUESTBOOK,
        statisticModel, year, month, day, restrictions);
    putCommonData(statisticModel, list, year, month, day, model);
    model.addAttribute("isReplyed", isReplyed);
    return "statistic/guestbook/list";
  }

  @RequestMapping("/flow_pv/v_list.do")
  public String pageViewList(HttpServletRequest request, ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    List<CmsStatistic> list = cmsStatisticSvc.flowStatistic(PV, siteId);
    model.addAttribute("list", list);
    return "statistic/pv/list";
  }

  @RequestMapping("/flow_uniqueIp/v_list.do")
  public String uniqueIpList(HttpServletRequest request, ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    List<CmsStatistic> list = cmsStatisticSvc.flowStatistic(UNIQUEIP,
        siteId);
    model.addAttribute("list", list);
    return "statistic/uniqueIp/list";
  }

  @RequestMapping("/flow_uniqueVisitor/v_list.do")
  public String uniqueVisitorList(HttpServletRequest request, ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    List<CmsStatistic> list = cmsStatisticSvc.flowStatistic(UNIQUEVISITOR,
        siteId);
    model.addAttribute("list", list);
    return "statistic/uniqueVisitor/list";
  }

  @RequestMapping("/flow_avgViews/v_list.do")
  public String avgViewsList(HttpServletRequest request, ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    List<CmsStatistic> list = cmsStatisticSvc.flowStatistic(AVGVIEWS,
        siteId);
    model.addAttribute("list", list);
    return "statistic/avgViews/list";
  }

  @SuppressWarnings("unchecked")
  @RequestMapping("/flow_refererWebSite/v_list.do")
  public String refererWebSite(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    Pagination pagination = cmsStatisticSvc.flowAnalysisPage(
        REFERER_WEBSITE, siteId, cpn(pageNo), CookieUtils
            .getPageSize(request));
    model.addAttribute("pagination", pagination);
    model.addAttribute("total", getTotal((List<CmsStatistic>) pagination
        .getList()));
    return "statistic/refererWebSite/list";
  }

  @SuppressWarnings("unchecked")
  @RequestMapping("/flow_refererPage/v_list.do")
  public String refererPage(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    Pagination pagination = cmsStatisticSvc.flowAnalysisPage(REFERER_PAGE,
        siteId, cpn(pageNo), CookieUtils.getPageSize(request));
    model.addAttribute("pagination", pagination);
    model.addAttribute("total", getTotal((List<CmsStatistic>) pagination
        .getList()));
    return "statistic/refererPage/list";
  }

  @SuppressWarnings("unchecked")
  @RequestMapping("/flow_accessPage/v_list.do")
  public String accessPage(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    Pagination pagination = cmsStatisticSvc.flowAnalysisPage(ACCESS_PAGE,
        siteId, cpn(pageNo), CookieUtils.getPageSize(request));
    model.addAttribute("pagination", pagination);
    model.addAttribute("total", getTotal((List<CmsStatistic>) pagination
        .getList()));
    return "statistic/accessPage/list";
  }

  @SuppressWarnings("unchecked")
  @RequestMapping("/flow_area/v_list.do")
  public String area(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    Pagination pagination = cmsStatisticSvc.flowAnalysisPage(AREA, siteId,
        cpn(pageNo), CookieUtils.getPageSize(request));
    model.addAttribute("pagination", pagination);
    model.addAttribute("total", getTotal((List<CmsStatistic>) pagination
        .getList()));
    return "statistic/area/list";
  }

  @SuppressWarnings("unchecked")
  @RequestMapping("/flow_refererKeyword/v_list.do")
  public String refererKeyword(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    Pagination pagination = cmsStatisticSvc.flowAnalysisPage(
        REFERER_KEYWORD, siteId, cpn(pageNo), CookieUtils
            .getPageSize(request));
    model.addAttribute("pagination", pagination);
    model.addAttribute("total", getTotal((List<CmsStatistic>) pagination
        .getList()));
    return "statistic/refererKeyword/list";
  }

  @RequestMapping("/statistic_flow/v_init.do")
  public String flowInitView(HttpServletRequest request, Integer pageNo,
      ModelMap model) {
    return "statistic/init";
  }

  @RequestMapping("/statistic_flow/o_init.do")
  public String flowInit(HttpServletRequest request, Date startDate,
      Date endDate, Integer pageNo, ModelMap model) {
    Integer siteId = CmsUtils.getSiteId(request);
    cmsStatisticSvc.flowInit(siteId, startDate, endDate);
    model.addAttribute("message", "global.success");
    return "statistic/init";
  }

  private CmsStatisticModel getStatisticModel(String queryModel) {
    if (!StringUtils.isBlank(queryModel)) {
      return CmsStatisticModel.valueOf(queryModel);
    }
    return CmsStatisticModel.year;
  }

  private void putCommonData(CmsStatisticModel statisticModel,
      List<CmsStatistic> list, Integer year, Integer month, Integer day,
      ModelMap model) {
    model.addAttribute("list", list);
    model.addAttribute("total", getTotal(list));
    model.addAttribute("statisticModel", statisticModel.name());
    model.addAttribute("year", year);
    model.addAttribute("month", month);
    model.addAttribute("day", day);
  }

  private Long getTotal(List<CmsStatistic> list) {
    return list.size() > 0 ? list.iterator().next().getTotal() : 0L;
  }

  @Autowired
  private ChannelMng channelMng;
  @Autowired
  private CmsUserMng cmsUserMng;
  @Autowired
  private CmsStatisticSvc cmsStatisticSvc;
}
TOP

Related Classes of com.jeecms.cms.statistic.CmsStatisticAct

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.