Commit 29e25d64 by lyh3024

fix

Change-Id: I0cb4fd8778e494b9e01da3b021c1f8bc73443553
parent 66b33e56
......@@ -51,6 +51,10 @@ def get_block_list(request):
resp_nodes, resp_relations = [], []
node_ids, rel_ids = [], []
addresses = get_account(account, from_time, end_time)
if len(addresses) == 0:
resp = tools.dec_success_resp({"nodes": resp_nodes, "relations": resp_relations})
return JsonResponse(resp, safe=False)
accounts = Account.nodes.filter(address__in=addresses)
# 账户
......@@ -160,9 +164,12 @@ def get_block_trade_rank(request):
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
rank = []
addresses = get_account(account, from_time, end_time)
if len(addresses) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
rank = []
param = {'addresses': addresses}
if int(sort_type) != 2:
query = 'match(a:Account)-[out:TRANSFER_OUT]->(t:Transaction) where a.address in $addresses ' \
......@@ -200,7 +207,11 @@ def get_block_miner_rank(request):
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
rank = []
addresses = get_account(account, from_time, end_time)
if len(addresses) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
accounts = Account.nodes.filter(address__in=addresses)
# 账户
......@@ -231,16 +242,15 @@ def get_block_miner_rank(request):
block_hashes = list(set(block_hashes))
# 矿工
rank = []
param = {'hashes': block_hashes}
query = 'match (m:Miner)-[p:PACK]->(b:Block) where b.hash in $hashes return m.address, count(p) order by count(p) desc'
items = db.cypher_query(query, param)[0]
i = 1
for item in items:
a, num = item
rank.append({"id":i, "minerAddress": a, "packNum": num})
rank.append({"id": i, "minerAddress": a, "packNum": num})
resp = tools.dec_success_resp({"rank": rank})
resp = tools.dec_success_resp({"count": len(items), "rank": rank})
return JsonResponse(resp, safe=False)
except Exception as e:
resp = tools.dec_error_resp(e)
......
......@@ -64,14 +64,18 @@ def get_domain_list(request):
if from_time and not end_time:
resp = tools.dec_error_resp("end_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
if not from_time and end_time:
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
resp_nodes, resp_relations = [], []
n_ids, r_ids = [], []
ips = get_request_ips(label, from_time, end_time)
if len(ips) == 0:
resp = tools.dec_success_resp({"nodes": resp_nodes, "relations": resp_relations})
return JsonResponse(resp, safe=False)
param = {"ips": ips}
query = 'match (r:RequestIp)-[req:REQUEST]->(d:DomainName)-[lab:LABEL]->(l:Label), (dns:DnsIp)-[par:PARSE]->(d)' \
'where r.request_ip in $ips return r, d, l, dns, req, lab, par'
......@@ -109,10 +113,10 @@ def get_label_rank(request):
if from_time and not end_time:
resp = tools.dec_error_resp("end_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
if not from_time and end_time:
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
rank = []
ips = get_request_ips(label, from_time, end_time)
......@@ -154,6 +158,10 @@ def get_domain_rank(request):
rank = []
ips = get_request_ips(label, from_time, end_time)
if len(ips) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
param = {"ips": ips}
query = 'match (r:RequestIp)-[]->(d:DomainName), (dns:DnsIp)-[p:PARSE]->(d) where r.request_ip in $ips ' \
'return d.domain_name, count(p) order by count(p) desc'
......@@ -187,6 +195,10 @@ def get_request_ip_rank(request):
rank = []
ips = get_request_ips(label, from_time, end_time)
if len(ips) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
param = {"ips": ips}
query = 'match (r:RequestIp)-[req:REQUEST]->(d:DomainName) where r.request_ip in $ips ' \
'return r.province, r.isp, count(req)'
......@@ -220,6 +232,11 @@ def get_dns_ip_rank(request):
rank = []
ips = get_request_ips(label, from_time, end_time)
if len(ips) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
param = {"ips": ips}
query = 'match (r:RequestIp)-[]->(d:DomainName), (dns:DnsIp)-[p:PARSE]->(d) where r.request_ip in $ips ' \
'return r.province,r.isp, count(distinct p) order by count(distinct p) desc'
......
......@@ -57,11 +57,11 @@ def gen_rel_json(r):
s = r.start_node()
e = r.end_node()
if isinstance(s, FirstIp):
label = "跳"
label = "第一跳"
elif isinstance(e, EndIp):
label = '跳'
label = '最后一跳'
else:
label = '中间跳'
label = '下一跳'
return {
"id": r.id,
"source": s.id,
......
......@@ -91,15 +91,19 @@ def get_route_list(request):
if from_time and not end_time:
resp = tools.dec_error_resp("end_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
if not from_time and end_time:
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
resp_nodes, resp_relations = [], []
ips = get_first_ips(province, city, isp, root_ip, from_time, end_time) # 当前遍历到的节点集合
if len(ips) == 0:
resp = tools.dec_success_resp({"nodes": resp_nodes, "relations": resp_relations})
return JsonResponse(resp, safe=False)
current_nodes = FirstIp.nodes.filter(ip__in=ips).all()
resp_nodes, resp_relations = [], []
while current_nodes:
tmp_nodes = []
tmp_node_ids = [] # 手动去掉重复的node
......@@ -133,22 +137,26 @@ def get_route_rank(request):
if from_time and not end_time:
resp = tools.dec_error_resp("end_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
if not from_time and end_time:
resp = tools.dec_error_resp("from_time is null")
return JsonResponse(resp)
return JsonResponse(resp, safe=False)
rank = []
first_node_ips = get_first_ips(province, city, isp, root_ip, from_time, end_time)
if len(first_node_ips) == 0:
resp = tools.dec_success_resp({"count": 0, "rank": rank})
return JsonResponse(resp, safe=False)
param = {'start_ips': first_node_ips}
query = 'match (n:RouteIp) where n.start_ip in $start_ips with n, size((n)-[]-()) as size order by size desc limit 100 return n.ip, n.province ,n.isp, size'
items = db.cypher_query(query, param)[0]
rank = []
for item in items:
if len(item) != 0:
rank.append({"ip": item[0], "province": item[1], "isp": item[2], "degree": item[3]})
resp = tools.dec_success_resp({"rank": rank})
resp = tools.dec_success_resp({"count": len(items), "rank": rank})
return JsonResponse(resp, safe=False)
except Exception as e:
resp = tools.dec_error_resp(e)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment