diff --git a/plugins/webstats/index.html b/plugins/webstats/index.html index 2c0b7f2c7..e6d230f27 100755 --- a/plugins/webstats/index.html +++ b/plugins/webstats/index.html @@ -51,6 +51,11 @@ padding: 15px 0 15px 15px; vertical-align: top; } + +.overview_list .w_p20{ + width: 20%; +} + .overview_list .ov_num{ font-size: 14px; margin-top: 7px; diff --git a/plugins/webstats/index.py b/plugins/webstats/index.py index ef423dc2f..c1ee3d0ba 100755 --- a/plugins/webstats/index.py +++ b/plugins/webstats/index.py @@ -299,11 +299,16 @@ def setGlobalConf(): return mw.returnJson(True, '设置成功') -def getDefaultSite(): +def getSiteListData(): lua_dir = getServerDir() + "/lua" path = lua_dir + "/default.json" data = mw.readFile(path) - return mw.returnJson(True, 'OK', json.loads(data)) + return json.loads(data) + + +def getDefaultSite(): + data = getSiteListData() + return mw.returnJson(True, 'OK', data) def setDefaultSite(name): @@ -325,6 +330,49 @@ def toSumField(sql): return field +def getSiteStatInfo(domain, query_date): + conn = pSqliteDb('request_stat', domain) + conn = conn.where("1=1", ()) + + field = 'time,req,pv,uv,ip,length' + field_sum = toSumField(field.replace("time,", "")) + + time_field = "substr(time,1,6)," + + field_sum = time_field + field_sum + conn = conn.field(field_sum) + if query_date == "today": + todayTime = time.strftime( + '%Y%m%d00', time.localtime(time.time() - 0 * 86400)) + conn.andWhere("time >= ?", (todayTime,)) + elif query_date == "yesterday": + startTime = time.strftime( + '%Y%m%d00', time.localtime(time.time() - 1 * 86400)) + endTime = time.strftime( + '%Y%m%d00', time.localtime(time.time())) + conn.andWhere("time>=? and time<=?", (startTime, endTime)) + elif query_date == "l7": + todayTime = time.strftime( + '%Y%m%d00', time.localtime(time.time() - 7 * 86400)) + conn.andWhere("time >= ?", (todayTime,)) + elif query_date == "l30": + todayTime = time.strftime( + '%Y%m%d00', time.localtime(time.time() - 30 * 86400)) + conn.andWhere("time >= ?", (todayTime,)) + else: + exlist = query_date.split("-") + start = time.strftime( + '%Y%m%d00', time.localtime(int(exlist[0]))) + end = time.strftime( + '%Y%m%d23', time.localtime(int(exlist[1]))) + conn.andWhere("time >= ? and time <= ? ", (start, end,)) + + # 统计总数 + stat_list = conn.inquiry(field) + del(stat_list[0]['time']) + return stat_list[0] + + def getOverviewList(): args = getArgs() check = checkArgs(args, ['site', 'query_date', 'order']) @@ -388,6 +436,25 @@ def getOverviewList(): return mw.returnJson(True, 'ok', data) +def getSiteList(): + args = getArgs() + check = checkArgs(args, ['query_date']) + if not check[0]: + return check[1] + + query_date = args['query_date'] + + data = getSiteListData() + data_list = data["list"] + + rdata = [] + for x in data_list: + tmp = getSiteStatInfo(x, query_date) + tmp["site"] = x + rdata.append(tmp) + return mw.returnJson(True, 'ok', rdata) + + def getLogsRealtimeInfo(): ''' 实时信息 @@ -829,6 +896,8 @@ if __name__ == "__main__": print(getDefaultSite()) elif func == 'get_overview_list': print(getOverviewList()) + elif func == 'get_site_list': + print(getSiteList()) elif func == 'get_logs_list': print(getLogsList()) elif func == 'get_logs_error_list': diff --git a/plugins/webstats/js/stats.js b/plugins/webstats/js/stats.js index ec74f1d13..3adb2267d 100644 --- a/plugins/webstats/js/stats.js +++ b/plugins/webstats/js/stats.js @@ -624,14 +624,9 @@ wsPost('get_default_site','',{},function(rdata){ } -var ovTimer = null; function wsSitesListRequest(page){ - clearInterval(ovTimer); var args = {}; - - args['site'] = $('select[name="site"]').val(); - var query_date = 'today'; if ($('#time_choose').attr("data-name") != ''){ query_date = $('#time_choose').attr("data-name"); @@ -639,33 +634,93 @@ function wsSitesListRequest(page){ query_date = $('#search_time button.cur').attr("data-name"); } args['query_date'] = query_date; - args['order'] = $('#time_order button.cur').attr('data-name'); - - var select_option = $('.indicators-container input:checked').parent().attr('data-name'); + - console.log($('.indicators-container input:checked').parent().find('span').text()); - // console.log(select_option); + wsPost('get_site_list', '' ,args, function(rdata){ - wsPost('get_overview_list', '' ,args, function(rdata){ var rdata = $.parseJSON(rdata.data); - var list = ''; - var data = rdata.data.data; - var statData = rdata.data.stat_list; + var data = rdata.data; - console.log(statData, data); - var stat_pv = statData['pv'] == null?0:statData['pv']; - var stat_uv = statData['uv'] == null?0:statData['uv']; - var stat_ip = statData['ip'] == null?0:statData['ip']; - var stat_length = statData['length'] == null?0:statData['length']; - var stat_req = statData['req'] == null?0:statData['req']; + var stat_pv = 0; + var stat_uv = 0; + var stat_ip = 0; + var stat_length = 0; + var stat_req = 0; + + console.log(rdata, data); + + var list = ''; + if (data.length > 0){ + for(i in data){ + + var tmp_pv = 0; + var tmp_uv = 0; + var tmp_ip = 0; + var tmp_length = 0; + var tmp_req = 0; + + if (data[i]['pv'] != null){ + tmp_pv = data[i]['pv']; + stat_pv += data[i]['pv']; + } + + if (data[i]['uv'] != null){ + tmp_uv = data[i]['uv']; + stat_uv += data[i]['uv']; + } + + if (data[i]['ip'] != null){ + tmp_ip = data[i]['ip']; + stat_ip += data[i]['ip']; + } + + if (data[i]['length'] != null){ + tmp_length = data[i]['length']; + stat_length += data[i]['length']; + } + + if (data[i]['req'] != null){ + tmp_req = data[i]['req']; + stat_req += data[i]['req']; + } + + list += ''; + list += '' + data[i]['site']+''; + list += '' + tmp_pv +''; + list += '' + tmp_uv +''; + list += '' + tmp_ip +''; + list += '' + tmp_req +''; + list += '' + toSize(tmp_length) +''; + list += '设置'; + list += ''; + } + } else{ + list += '网站列表为空'; + } $('.overview_list .overview_box:eq(0) .ov_num').text(stat_pv); $('.overview_list .overview_box:eq(1) .ov_num').text(stat_uv); $('.overview_list .overview_box:eq(2) .ov_num').text(stat_ip); $('.overview_list .overview_box:eq(3) .ov_num').text(toSize(stat_length)); $('.overview_list .overview_box:eq(4) .ov_num').text(stat_req); - + + var table = '
\ + \ + \ + \ + \ + \ + \ + \ + \ + \\ + \ + '+ list +'\ +
网站流览量访客数IP数请求数总流量操作
\ +
\ +
'; + $('#ws_table').html(table); }); } @@ -688,32 +743,24 @@ var html = '
\
\ \
\ -
\ -

浏览量(PV)?

\ +
\ +

总浏览量(PV)

\

0

\
\ -
\ -

访客量(UV)?

\ +
\ +

总访客量(UV)

\

0

\
\ -
\ -

IP数?

\ +
\ +

总IP数

\

0

\
\ -
\ -

流量?

\ +
\ +

总流量

\

0

\
\ -
\ -

请求?

\ -

0

\ -
\ -
\ -

实时流量?

\ -

0

\ -
\ -
\ -

每秒请求?

\ +
\ +

总请求

\

0

\
\
\