/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.visit.manager.web; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; import com.ewcms.web.util.JSONUtil; import com.ewcms.web.util.Struts2Util; import com.ewcms.web.vo.TreeNode; import com.opensymphony.xwork2.ActionSupport; /** * * @author wu_zhijun * */ public class VisitTreeAction extends ActionSupport { private static final long serialVersionUID = 146162923400817102L; private static final String ICON_CLS_VISIT = "icon-visit-analysis"; private static final String ICON_CLS_NOTE = "icon-channel-note"; private Integer id = 0; private static Map<String, String> oneTreeMap = new TreeMap<String, String>(); private static Map<String, String> twoTreeMap = new TreeMap<String, String>(); private static Map<String, String> threeTreeMap = new TreeMap<String, String>(); private static Map<String, String> fourTreeMap = new TreeMap<String, String>(); private static Map<String, String> fiveTreeMap = new TreeMap<String, String>(); private static Map<String, String> sixTreeMap = new TreeMap<String, String>(); private static Map<String, String> sevenTreeMap = new TreeMap<String, String>(); static{ oneTreeMap.put("0综合报告", "summary"); oneTreeMap.put("1全站点击率", "site"); oneTreeMap.put("2访问记录", "lastVisit"); oneTreeMap.put("3时段分布", "hour"); oneTreeMap.put("4入口分析", "entrance"); oneTreeMap.put("5出口分析", "exit"); oneTreeMap.put("6被访主机分析", "host"); oneTreeMap.put("7区域分布", "country"); oneTreeMap.put("8在线情况", "online"); twoTreeMap.put("0栏目点击排行", "channel"); twoTreeMap.put("1文章点击排行", "article"); twoTreeMap.put("5URL点击排行", "url"); threeTreeMap.put("0访问深度", "depth"); threeTreeMap.put("1访问频率", "frequency"); threeTreeMap.put("2回头率", "visitor"); threeTreeMap.put("3停留时间", "stickTime"); fourTreeMap.put("0来源组成", "source"); fourTreeMap.put("1搜索引擎", "search"); fourTreeMap.put("2来源网站", "webSite"); fiveTreeMap.put("0操作系统", "os"); fiveTreeMap.put("1浏览器", "browser"); fiveTreeMap.put("2语言", "language"); fiveTreeMap.put("3屏幕分辨率", "screen"); fiveTreeMap.put("4屏幕色深", "colorDepth"); fiveTreeMap.put("5是否支持Apple", "javaEnabled"); fiveTreeMap.put("6Flash版本", "flashVersion"); fiveTreeMap.put("7是否允许Cookies", "cookieEnabled"); sixTreeMap.put("0人员发布统计", "staffReleased"); sixTreeMap.put("1栏目发布统计", "channelReleased"); sixTreeMap.put("2机构发布统计", "organReleased"); sevenTreeMap.put("0政民互动统计", "interactive"); sevenTreeMap.put("1网上咨询统计", "advisory"); //sevenTreeMap.put("2留言审核统计", "audit"); } public void tree() { try { TreeNode rootNode = new TreeNode(); rootNode.setId((id++).toString()); rootNode.setText("统计分析"); rootNode.setState("open"); rootNode.setIconCls("icon-channel-site"); List<TreeNode> twoNodes = new ArrayList<TreeNode>(); TreeNode twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("总体情况"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); List<TreeNode> threeNodes = getThreeNode(oneTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("访问量排行"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(twoTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("忠诚度分析"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(threeTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("点击量来源"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(fourTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("客户端情况"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(fiveTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("发布统计"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(sixTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); twoNode = new TreeNode(); twoNode.setId((id++).toString()); twoNode.setText("互动统计"); twoNode.setState("open"); twoNode.setIconCls(ICON_CLS_NOTE); threeNodes = getThreeNode(sevenTreeMap.entrySet().iterator()); twoNode.setChildren(threeNodes); twoNodes.add(twoNode); rootNode.setChildren(twoNodes); Struts2Util.renderJson(JSONUtil.toJSON(new TreeNode[]{rootNode})); } catch (Exception e) { } } private List<TreeNode> getThreeNode(Iterator<Entry<String, String>> it){ List<TreeNode> threeNodes = new ArrayList<TreeNode>(); TreeNode threeNode; while (it.hasNext()){ Entry<String, String> entry = it.next(); threeNode = new TreeNode(); threeNode.setId((id++).toString()); threeNode.setText(entry.getKey().substring(1)); threeNode.setState("open"); threeNode.setIconCls(ICON_CLS_VISIT); Map<String, String> attributes = new HashMap<String, String>(); attributes.put("url", entry.getValue()); threeNode.setAttributes(attributes); threeNodes.add(threeNode); } return threeNodes; } }