diff --git a/src/main/java/com/nis/domain/dashboard/NtcRadiusReport.java b/src/main/java/com/nis/domain/dashboard/NtcRadiusReport.java index 0cd839f36..cb836f0b7 100644 --- a/src/main/java/com/nis/domain/dashboard/NtcRadiusReport.java +++ b/src/main/java/com/nis/domain/dashboard/NtcRadiusReport.java @@ -1,27 +1,29 @@ package com.nis.domain.dashboard; -import java.io.Serializable; - import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.google.gson.annotations.SerializedName; +import com.nis.util.excel.ExcelField; import com.wordnik.swagger.annotations.ApiModelProperty; -public class NtcRadiusReport implements Serializable{ - - private static final long serialVersionUID = 7635016645942704971L; - @JsonInclude(value = Include.NON_NULL) - @ApiModelProperty(value = "接入IP", required = true) +public class NtcRadiusReport { + + // @JsonInclude(value = Include.NON_NULL) + // @ApiModelProperty(value = "接入IP", required = true) + @ExcelField(title = "ip_address_control", sort = 2) protected String nasIp; - @JsonInclude(value = Include.NON_NULL) - @ApiModelProperty(value = "用户名", required = true) + // @JsonInclude(value = Include.NON_NULL) + // @ApiModelProperty(value = "用户名", required = true) + @ExcelField(title = "account", sort = 1) protected String account; - @JsonInclude(value = Include.NON_NULL) - @ApiModelProperty(value = "次数", required = true) + // @JsonInclude(value = Include.NON_NULL) + // @ApiModelProperty(value = "次数", required = true) + @ExcelField(title = "visits", sort = 3) protected Long num; - @JsonInclude(value = Include.NON_NULL) - @ApiModelProperty(value = "统计时间", required = true) + // @JsonInclude(value = Include.NON_NULL) + // @ApiModelProperty(value = "统计时间", required = true) + @ExcelField(title = "stat_time", sort = 4) protected String reportTime; /** @@ -67,6 +69,16 @@ public class NtcRadiusReport implements Serializable{ return reportTime; } + @Override + public String toString() { + return "NtcRadiusReport [nasIp=" + nasIp + ", account=" + account + ", num=" + num + ", reportTime=" + + reportTime + ", searchBusinessType=" + searchBusinessType + ", searchFoundStartTime=" + + searchFoundStartTime + ", searchFoundEndTime=" + searchFoundEndTime + + ", searchReportStartTimeCluster=" + searchReportStartTimeCluster + ", searchReportEndTimeCluster=" + + searchReportEndTimeCluster + ", searchNasIp=" + searchNasIp + ", searchAccount=" + searchAccount + + ", groupType=" + groupType + "]"; + } + public void setReportTime(String reportTime) { this.reportTime = reportTime; } @@ -74,11 +86,11 @@ public class NtcRadiusReport implements Serializable{ public String getSearchBusinessType() { return searchBusinessType; } - @JsonIgnore + public void setSearchBusinessType(String searchBusinessType) { this.searchBusinessType = searchBusinessType; } - @JsonIgnore + public String getSearchFoundStartTime() { return searchFoundStartTime; } @@ -86,7 +98,7 @@ public class NtcRadiusReport implements Serializable{ public void setSearchFoundStartTime(String searchFoundStartTime) { this.searchFoundStartTime = searchFoundStartTime; } - @JsonIgnore + public String getSearchFoundEndTime() { return searchFoundEndTime; } @@ -95,16 +107,14 @@ public class NtcRadiusReport implements Serializable{ this.searchFoundEndTime = searchFoundEndTime; } - @JsonIgnore public Long getSearchReportStartTimeCluster() { return searchReportStartTimeCluster; } - public void setSearchReportStartTimeCluster( - Long searchReportStartTimeCluster) { + public void setSearchReportStartTimeCluster(Long searchReportStartTimeCluster) { this.searchReportStartTimeCluster = searchReportStartTimeCluster; } - @JsonIgnore + public Long getSearchReportEndTimeCluster() { return searchReportEndTimeCluster; } @@ -112,7 +122,7 @@ public class NtcRadiusReport implements Serializable{ public void setSearchReportEndTimeCluster(Long searchReportEndTimeCluster) { this.searchReportEndTimeCluster = searchReportEndTimeCluster; } - @JsonIgnore + public String getSearchNasIp() { return searchNasIp; } @@ -120,7 +130,7 @@ public class NtcRadiusReport implements Serializable{ public void setSearchNasIp(String searchNasIp) { this.searchNasIp = searchNasIp; } - @JsonIgnore + public String getSearchAccount() { return searchAccount; } @@ -128,11 +138,11 @@ public class NtcRadiusReport implements Serializable{ public void setSearchAccount(String searchAccount) { this.searchAccount = searchAccount; } - @JsonIgnore + public String getGroupType() { return groupType; } - + public void setGroupType(String groupType) { this.groupType = groupType; } diff --git a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsReportController.java b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsReportController.java index 9d38654be..fcdf92466 100644 --- a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsReportController.java +++ b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsReportController.java @@ -6,13 +6,16 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -23,20 +26,30 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; +import com.nis.domain.Page; +import com.nis.domain.PageLog; +import com.nis.domain.SysUser; import com.nis.domain.dashboard.NtcRadiusReport; +import com.nis.domain.log.BaseLogEntity; +import com.nis.domain.maat.LogRecvData; +import com.nis.domain.report.NtcAsnRecord; +import com.nis.domain.report.NtcIpRangeReport; import com.nis.util.Constants; import com.nis.util.DateUtils; import com.nis.util.StringUtil; import com.nis.util.httpclient.HttpClientUtil; import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; -@Controller +import net.sf.json.JSONObject; + +@Controller @RequestMapping("${adminPath}/traffic") public class TrafficStatisticsReportController extends BaseController { - - + /** * 用户行为查询 + * * @param bean * @param model * @param request @@ -44,140 +57,382 @@ public class TrafficStatisticsReportController extends BaseController { * @return */ @RequestMapping("userBehavior") - public String list(@ModelAttribute("log") NtcRadiusReport bean,Model model, HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) { + public String list(@ModelAttribute("log") NtcRadiusReport bean, Model model, HttpServletRequest request, + HttpServletResponse response, RedirectAttributes redirectAttributes) { Map fromJsonList = new HashMap(); Map userJsonList = new HashMap(); Map ipJsonList = new HashMap(); String searchBusinessType = bean.getSearchBusinessType(); - if("2".endsWith(searchBusinessType)) { + if ("2".endsWith(searchBusinessType)) { model.addAttribute("searchBusinessType", 2);// 用户查询 } - if("3".endsWith(searchBusinessType)) { + if ("3".endsWith(searchBusinessType)) { model.addAttribute("searchBusinessType", 3);// IP查询 } - String url = Constants.DASHBOARD_URL+Constants.NTC_RADIUS_REPORT; + String url = Constants.DASHBOARD_URL + Constants.NTC_RADIUS_REPORT; String statTime = bean.getSearchFoundStartTime(); String endTime = bean.getSearchFoundEndTime(); String account = bean.getAccount(); String nasIp = bean.getNasIp(); - String destUrl = url+ "?searchBusinessType=1"; - String userUrl = url+ "?searchBusinessType=2"; - String ipUrl =url + "?searchBusinessType=3"; + String destUrl = url + "?searchBusinessType=1"; + String userUrl = url + "?searchBusinessType=2"; + String ipUrl = url + "?searchBusinessType=3"; List list = new ArrayList(); List userList = new ArrayList(); List ipList = new ArrayList(); try { - if(StringUtil.isBlank(statTime)&&StringUtil.isBlank(endTime)) { + if (StringUtil.isBlank(statTime) && StringUtil.isBlank(endTime)) { // 设置默认时间为1小时 -// statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天 -// endTime=DateUtils.getDateTime(); - - Calendar cal = Calendar. getInstance (); + // statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天 + // endTime=DateUtils.getDateTime(); + + Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); - endTime = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime());//获取到完整的时间 - cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); - statTime = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime()); + endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());// 获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + statTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime()); bean.setSearchFoundStartTime(statTime); bean.setSearchFoundEndTime(endTime); - statTime=URLEncoder.encode(statTime, "UTF-8"); - endTime=URLEncoder.encode(endTime, "UTF-8"); - String paramUrl="&searchReportStartTime="+statTime+"&searchReportEndTime="+endTime; - destUrl=destUrl+paramUrl; - userUrl=userUrl+paramUrl; - ipUrl=ipUrl+paramUrl; - }else { - statTime=URLEncoder.encode(statTime, "UTF-8"); - endTime=URLEncoder.encode(endTime, "UTF-8"); - String paramUrl="&searchReportStartTime="+statTime+"&searchReportEndTime="+endTime; - destUrl=destUrl+paramUrl; - userUrl=userUrl+paramUrl; - ipUrl=ipUrl+paramUrl; + statTime = URLEncoder.encode(statTime, "UTF-8"); + endTime = URLEncoder.encode(endTime, "UTF-8"); + String paramUrl = "&searchReportStartTime=" + statTime + "&searchReportEndTime=" + endTime; + destUrl = destUrl + paramUrl; + userUrl = userUrl + paramUrl; + ipUrl = ipUrl + paramUrl; + } else { + statTime = URLEncoder.encode(statTime, "UTF-8"); + endTime = URLEncoder.encode(endTime, "UTF-8"); + String paramUrl = "&searchReportStartTime=" + statTime + "&searchReportEndTime=" + endTime; + destUrl = destUrl + paramUrl; + userUrl = userUrl + paramUrl; + ipUrl = ipUrl + paramUrl; } model.addAttribute("nowTime", DateUtils.getDateTime()); // 用户及IP数据 String string = HttpClientUtil.get(destUrl); Gson gson = new GsonBuilder().create(); - fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + fromJsonList = gson.fromJson(string, new TypeToken() { + }.getType()); list = (ArrayList) fromJsonList.get("data"); Map map = (Map) list.get(0); - List nasIpList=(List) map.get("nasIpList"); - List accountList=(List) map.get("accountList"); - if (!StringUtil.isEmpty(nasIpList)&&nasIpList.size()>0) { + List nasIpList = (List) map.get("nasIpList"); + List accountList = (List) map.get("accountList"); + if (!StringUtil.isEmpty(nasIpList) && nasIpList.size() > 0) { List newNasIpList = new ArrayList(); for (int i = 0; i < nasIpList.size(); i++) { newNasIpList.add(nasIpList.get(i)); - if (i+1>=10) { + if (i + 1 >= 10) { break; } } nasIpList = newNasIpList; } - if (!StringUtil.isEmpty(accountList)&&accountList.size()>0) { + if (!StringUtil.isEmpty(accountList) && accountList.size() > 0) { List newAccountList = new ArrayList(); for (int i = 0; i < accountList.size(); i++) { newAccountList.add(accountList.get(i)); - if (i+1>=10) { + if (i + 1 >= 10) { break; } } - + accountList = newAccountList; } - System.out.println("-------------------:"+nasIpList.size()+"+++"+accountList.size()+"=================="); + System.out.println( + "-------------------:" + nasIpList.size() + "+++" + accountList.size() + "=================="); model.addAttribute("nasIpList", nasIpList); model.addAttribute("accountList", accountList); - if(StringUtil.isBlank(account)&&accountList!=null&&accountList.size()>0&&!"3".equals(searchBusinessType)) { + if (StringUtil.isBlank(account) && accountList != null && accountList.size() > 0 + && !"3".equals(searchBusinessType)) { Map accountMap = (Map) accountList.get(0); - String firstAccount=""; - if(accountMap!=null&&accountMap.get("account")!=null){ - firstAccount=(String) accountMap.get("account"); - String userString = HttpClientUtil.get(userUrl+"&searchAccount="+firstAccount); + String firstAccount = ""; + if (accountMap != null && accountMap.get("account") != null) { + firstAccount = (String) accountMap.get("account"); + String userString = HttpClientUtil.get(userUrl + "&searchAccount=" + firstAccount); // 指定用户 查询 Gson usergson = new GsonBuilder().create(); - userJsonList = usergson.fromJson(userString, new TypeToken(){}.getType()); + userJsonList = usergson.fromJson(userString, new TypeToken() { + }.getType()); userList = (ArrayList) userJsonList.get("data"); } model.addAttribute("userList", userList); model.addAttribute("searchAccount", firstAccount); } - if(StringUtil.isBlank(nasIp)&&nasIpList!=null&&nasIpList.size()>0&&!"2".equals(searchBusinessType)) { + if (StringUtil.isBlank(nasIp) && nasIpList != null && nasIpList.size() > 0 + && !"2".equals(searchBusinessType)) { Map ipMap = (Map) nasIpList.get(0); - String firstIp=""; - if(ipMap!=null&&ipMap.get("nasIp")!=null){ - firstIp=(String) ipMap.get("nasIp"); - String ipString = HttpClientUtil.get(ipUrl+"&searchNasIp="+firstIp); + String firstIp = ""; + if (ipMap != null && ipMap.get("nasIp") != null) { + firstIp = (String) ipMap.get("nasIp"); + String ipString = HttpClientUtil.get(ipUrl + "&searchNasIp=" + firstIp); // 指定IP查询 Gson ipgson = new GsonBuilder().create(); - ipJsonList = ipgson.fromJson(ipString, new TypeToken(){}.getType()); + ipJsonList = ipgson.fromJson(ipString, new TypeToken() { + }.getType()); ipList = (ArrayList) ipJsonList.get("data"); } model.addAttribute("ipList", ipList); model.addAttribute("searchNasIp", firstIp); - + } - if("2".endsWith(searchBusinessType)&&!StringUtil.isBlank(account)) { - - String userString = HttpClientUtil.get(userUrl+"&searchAccount="+account); + if ("2".endsWith(searchBusinessType) && !StringUtil.isBlank(account)) { + + String userString = HttpClientUtil.get(userUrl + "&searchAccount=" + account); // 指定用户 查询 Gson usergson = new GsonBuilder().create(); - userJsonList = usergson.fromJson(userString, new TypeToken(){}.getType()); + userJsonList = usergson.fromJson(userString, new TypeToken() { + }.getType()); userList = (ArrayList) userJsonList.get("data"); model.addAttribute("userList", userList); model.addAttribute("searchAccount", account); } - if ("3".endsWith(searchBusinessType)&&!StringUtil.isBlank(nasIp)) { - String ipString = HttpClientUtil.get(ipUrl+"&searchNasIp="+nasIp); + if ("3".endsWith(searchBusinessType) && !StringUtil.isBlank(nasIp)) { + String ipString = HttpClientUtil.get(ipUrl + "&searchNasIp=" + nasIp); // 指定IP查询 Gson ipgson = new GsonBuilder().create(); - ipJsonList = ipgson.fromJson(ipString, new TypeToken(){}.getType()); + ipJsonList = ipgson.fromJson(ipString, new TypeToken() { + }.getType()); ipList = (ArrayList) ipJsonList.get("data"); model.addAttribute("ipList", ipList); model.addAttribute("searchNasIp", nasIp); } } catch (Exception e) { e.printStackTrace(); - addMessage(redirectAttributes,"error","request_service_failed"); + addMessage(redirectAttributes, "error", "request_service_failed"); } return "/dashboard/trafficUserBehavior"; } + + // 用户行为导出 + @RequestMapping(value = "userBehaviorExport") + public void userBehaviorExport(@ModelAttribute("log") NtcRadiusReport bean, Model model, String hColumns, + String type, HttpServletRequest request, HttpServletResponse response, + RedirectAttributes redirectAttributes) { + + List exportList = new ArrayList(); + + Map fromJsonList = new HashMap(); + Map userJsonList = new HashMap(); + Map ipJsonList = new HashMap(); + String searchBusinessType = bean.getSearchBusinessType(); + if ("2".endsWith(searchBusinessType)) { + model.addAttribute("searchBusinessType", 2);// 用户查询 + } + if ("3".endsWith(searchBusinessType)) { + model.addAttribute("searchBusinessType", 3);// IP查询 + } + String url = Constants.DASHBOARD_URL + Constants.NTC_RADIUS_REPORT; + String statTime = bean.getSearchFoundStartTime(); + String endTime = bean.getSearchFoundEndTime(); + String account = bean.getAccount(); + String nasIp = bean.getNasIp(); + String destUrl = url + "?searchBusinessType=1"; + String userUrl = url + "?searchBusinessType=2"; + String ipUrl = url + "?searchBusinessType=3"; + List list = new ArrayList(); + List userList = new ArrayList(); + List ipList = new ArrayList(); + try { + if (StringUtil.isBlank(statTime) && StringUtil.isBlank(endTime)) { + // 设置默认时间为1小时 + // statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天 + // endTime=DateUtils.getDateTime(); + + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());// 获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + statTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime()); + bean.setSearchFoundStartTime(statTime); + bean.setSearchFoundEndTime(endTime); + statTime = URLEncoder.encode(statTime, "UTF-8"); + endTime = URLEncoder.encode(endTime, "UTF-8"); + String paramUrl = "&searchReportStartTime=" + statTime + "&searchReportEndTime=" + endTime; + destUrl = destUrl + paramUrl; + userUrl = userUrl + paramUrl; + ipUrl = ipUrl + paramUrl; + } else { + statTime = URLEncoder.encode(statTime, "UTF-8"); + endTime = URLEncoder.encode(endTime, "UTF-8"); + String paramUrl = "&searchReportStartTime=" + statTime + "&searchReportEndTime=" + endTime; + destUrl = destUrl + paramUrl; + userUrl = userUrl + paramUrl; + ipUrl = ipUrl + paramUrl; + } + model.addAttribute("nowTime", DateUtils.getDateTime()); + // 用户及IP数据 + String string = HttpClientUtil.get(destUrl); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken() { + }.getType()); + list = (ArrayList) fromJsonList.get("data"); + Map map = (Map) list.get(0); + List nasIpList = (List) map.get("nasIpList"); + List accountList = (List) map.get("accountList"); + if (!StringUtil.isEmpty(nasIpList) && nasIpList.size() > 0) { + List newNasIpList = new ArrayList(); + for (int i = 0; i < nasIpList.size(); i++) { + newNasIpList.add(nasIpList.get(i)); + if (i + 1 >= 10) { + break; + } + } + nasIpList = newNasIpList; + } + if (!StringUtil.isEmpty(accountList) && accountList.size() > 0) { + List newAccountList = new ArrayList(); + for (int i = 0; i < accountList.size(); i++) { + newAccountList.add(accountList.get(i)); + if (i + 1 >= 10) { + break; + } + } + + accountList = newAccountList; + } + System.out.println( + "-------------------:" + nasIpList.size() + "+++" + accountList.size() + "=================="); + model.addAttribute("nasIpList", nasIpList); + model.addAttribute("accountList", accountList); + if (StringUtil.isBlank(account) && accountList != null && accountList.size() > 0 + && !"3".equals(searchBusinessType)) { + Map accountMap = (Map) accountList.get(0); + String firstAccount = ""; + if (accountMap != null && accountMap.get("account") != null) { + firstAccount = (String) accountMap.get("account"); + String userString = HttpClientUtil.get(userUrl + "&searchAccount=" + firstAccount); + // 指定用户 查询 + Gson usergson = new GsonBuilder().create(); + userJsonList = usergson.fromJson(userString, new TypeToken() { + }.getType()); + userList = (ArrayList) userJsonList.get("data"); + + for (int i = 0; i < userList.size(); i++) { + JSONObject fromObject = JSONObject.fromObject(userList.get(i)); + NtcRadiusReport stu = (NtcRadiusReport) JSONObject.toBean(fromObject, NtcRadiusReport.class); + exportList.add(stu); + } + + } + model.addAttribute("userList", userList); + model.addAttribute("searchAccount", firstAccount); + } + if (StringUtil.isBlank(nasIp) && nasIpList != null && nasIpList.size() > 0 + && !"2".equals(searchBusinessType)) { + Map ipMap = (Map) nasIpList.get(0); + String firstIp = ""; + if (ipMap != null && ipMap.get("nasIp") != null) { + firstIp = (String) ipMap.get("nasIp"); + String ipString = HttpClientUtil.get(ipUrl + "&searchNasIp=" + firstIp); + // 指定IP查询 + Gson ipgson = new GsonBuilder().create(); + ipJsonList = ipgson.fromJson(ipString, new TypeToken() { + }.getType()); + ipList = (ArrayList) ipJsonList.get("data"); + + for (int i = 0; i < ipList.size(); i++) { + JSONObject fromObject = JSONObject.fromObject(ipList.get(i)); + NtcRadiusReport stu = (NtcRadiusReport) JSONObject.toBean(fromObject, NtcRadiusReport.class); + exportList.add(stu); + } + + } + model.addAttribute("ipList", ipList); + model.addAttribute("searchNasIp", firstIp); + + } + if ("2".endsWith(searchBusinessType) && !StringUtil.isBlank(account)) { + + String userString = HttpClientUtil.get(userUrl + "&searchAccount=" + account); + // 指定用户 查询 + Gson usergson = new GsonBuilder().create(); + userJsonList = usergson.fromJson(userString, new TypeToken() { + }.getType()); + userList = (ArrayList) userJsonList.get("data"); + + for (int i = 0; i < userList.size(); i++) { + JSONObject fromObject = JSONObject.fromObject(userList.get(i)); + NtcRadiusReport stu = (NtcRadiusReport) JSONObject.toBean(fromObject, NtcRadiusReport.class); + exportList.add(stu); + } + + model.addAttribute("userList", userList); + model.addAttribute("searchAccount", account); + } + if ("3".endsWith(searchBusinessType) && !StringUtil.isBlank(nasIp)) { + String ipString = HttpClientUtil.get(ipUrl + "&searchNasIp=" + nasIp); + // 指定IP查询 + Gson ipgson = new GsonBuilder().create(); + ipJsonList = ipgson.fromJson(ipString, new TypeToken() { + }.getType()); + ipList = (ArrayList) ipJsonList.get("data"); + + for (int i = 0; i < ipList.size(); i++) { + JSONObject fromObject = JSONObject.fromObject(ipList.get(i)); + NtcRadiusReport stu = (NtcRadiusReport) JSONObject.toBean(fromObject, NtcRadiusReport.class); + exportList.add(stu); + } + + model.addAttribute("ipList", ipList); + model.addAttribute("searchNasIp", nasIp); + } + + List titleList = new ArrayList(); + Map> classMap = new HashMap>(); + Map dataMap = new HashMap(); + Map noExportMap = new HashMap(); + + titleList.add("traffic_user_behavior"); + classMap.put("traffic_user_behavior", NtcRadiusReport.class); + + Properties msgProp = getMsgProp(); + NtcRadiusReport ntcRadiusReport = new NtcRadiusReport(); + long nums = 0; + for (NtcRadiusReport entity : exportList) { + if (null != entity.getNum()) { + nums += entity.getNum(); + } + } + String report_total = msgProp.getProperty("report_total"); + ntcRadiusReport.setAccount(report_total); + ntcRadiusReport.setNum(nums); + ntcRadiusReport.setNasIp("    一  "); + ntcRadiusReport.setReportTime("    一  "); + + exportList.add(ntcRadiusReport); + + dataMap.put("traffic_user_behavior", exportList); + + String cfgIndexInfoNoExport = ""; + noExportMap.put("traffic_user_behavior", cfgIndexInfoNoExport); + String timeRange = initLogMap(bean, "traffic_user_behavior"); + noExportMap.put("timeRange", timeRange); + + if ("csv".equals(type)) { + this._exportCsv(model, request, response, redirectAttributes, "traffic_user_behavior", titleList, + classMap, dataMap, noExportMap); + } else { + this._export(model, request, response, redirectAttributes, "traffic_user_behavior", titleList, classMap, + dataMap, noExportMap); + } + + } catch (Exception e) { + e.printStackTrace(); + addMessage(redirectAttributes, "error", "request_service_failed"); + } + + } + + public String initLogMap(NtcRadiusReport log, String title) { + Properties msgProp = getMsgProp(); + String logTime = msgProp.getProperty(title, title); + ; + if (log.getSearchFoundStartTime() != null) { + logTime += " " + msgProp.getProperty("begin_date") + ":" + log.getSearchFoundStartTime(); + } + if (log.getSearchFoundEndTime() != null) { + logTime += " " + msgProp.getProperty("end_date") + ":" + log.getSearchFoundStartTime(); + } + return logTime; + } } diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficUserBehavior.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficUserBehavior.jsp index 23d9e50b7..e004314b1 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficUserBehavior.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficUserBehavior.jsp @@ -233,6 +233,35 @@ +
+ +
+ + +
+ + + href="javascript:;"> + +