| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- #!/usr/bin/env python3
 
- # -*- coding: utf-8 -*-
 
- """
 
- @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
 
- @AUTHOR: ASJRD019
 
- @NAME: AnsjerFormal
 
- @software: PyCharm
 
- @DATE: 2019/10/9 11:50
 
- @Version: python3.6
 
- @MODIFY DECORD:ansjer dev
 
- @file: AliPayObject.py
 
- @Contact: pzb3076@163.com
 
- """
 
- from django.views.generic.base import View
 
- from django.utils.decorators import method_decorator
 
- from django.views.decorators.csrf import csrf_exempt
 
- from Service.ModelService import ModelService
 
- from Model.models import User_Brand,Device_User
 
- from django.utils import timezone
 
- import traceback,time,json,urllib.request
 
- from Object.ResponseObject import ResponseObject
 
- from Object.TokenObject import TokenObject
 
- from Service.CommonService import CommonService
 
- from collections import Counter
 
- from Ansjer.config import DOMAIN_HOST,AWS_DynamoDB_REGION,AWS_DynamoDB_ACCESS_KEY,AWS_DynamoDB_SECRET_KEY
 
- from Object.RedisObject import RedisObject
 
- from Service.MiscellService import MiscellService
 
- import datetime, simplejson as json
 
- import time
 
- class DynamoDBLog(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, *args, **kwargs):
 
-         return super(DynamoDBLog, self).dispatch(*args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         return self.validation(request.GET, request, operation)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         return self.validation(request.POST, request, operation)
 
-     def validation(self, request_dict, request, operation):
 
-         self.clientIP = CommonService.get_ip_address(request)
 
-         response = ResponseObject()
 
-         token = request_dict.get('token', None)
 
-         tko = TokenObject(token)
 
-         response.lang = tko.lang
 
-         if tko.code == 0:
 
-             userID = tko.userID
 
-             if operation == 'searchByAdmin':
 
-                 return self.search_info(request_dict, userID, response)
 
-             elif operation == 'connector':
 
-                 return self.connector_info(request_dict, userID, response)
 
-             elif operation == 'daySearch':
 
-                 return self.get_day_search(request_dict, userID, response)
 
-             else:
 
-                 return response.json(444)
 
-         else:
 
-             return response.json(tko.code)
 
-     # 查询搜索表(可以通过用户名,和接口名称,ip地址搜索等)
 
-     def search_info(self, request_dict, userID,response):
 
-         search_value = request_dict.get('search_value',None)
 
-         check_perm = ModelService.check_perm(userID=userID,permID=30)
 
-         if check_perm is True:
 
-             if search_value is None or search_value is '':
 
-                 return response.json(0, {'datas': {}, 'count': 0})
 
-             else:
 
-                 if DOMAIN_HOST == 'www.zositechc.cn':
 
-                     user_brand = 'access_log'
 
-                 else:
 
-                     user_brand = 'test_access_log'
 
-                 # 查询
 
-                 user_ID = Device_User.objects.filter(username=search_value).values('userID', 'NickName')
 
-                 try:
 
-                     search_value = user_ID[0]['userID']
 
-                 except Exception:
 
-                     search_value = search_value
 
-                 items = MiscellService.get_item_log( user_brand ,search_value)
 
-                 for k, v in enumerate(items):
 
-                     user_ID = Device_User.objects.filter(userID=items[k]['userID']).values('username')
 
-                     try:
 
-                         items[k]['userID'] = user_ID[0]['username']
 
-                     except Exception:
 
-                         items[k]['userID'] = ''
 
-                 return response.json(0, {'datas': items, 'count': len(items)})
 
-         else:
 
-             return response.json(404)
 
-     # 查询接口的访问量的对应数量
 
-     def connector_info(self, request_dict, userID,response):
 
-         check_perm = ModelService.check_perm(userID=userID,permID=30)
 
-         if check_perm is True:
 
-             if DOMAIN_HOST == 'www.zositechc.cn':
 
-                 user_brand = 'access_log'
 
-             else:
 
-                 user_brand = 'test_access_log'
 
-             table_value = MiscellService.item_get_brand(user_brand)
 
-             send_jsons = []
 
-             counts = 0
 
-             for i in table_value:
 
-                 send_jsons.append(table_value[counts]['operation'])
 
-                 counts = counts + 1
 
-             send_jsons = Counter(send_jsons)
 
-             return response.json(0, {'datas': send_jsons,'counts':counts})
 
-         else:
 
-             return response.json(404)
 
-     # 通过传过来日期天来搜索,访问量,并返回对应小时的访问数量
 
-     def get_day_search(self, request_dict,userID, response):
 
-         check_perm = ModelService.check_perm(userID=userID, permID=30)
 
-         if DOMAIN_HOST == 'www.zositechc.cn':
 
-             user_brand = 'access_log'
 
-         else:
 
-             user_brand = 'test_access_log'
 
-         time_stamp = int(request_dict.get('timestamp', None))
 
-         if check_perm is True:
 
-             # 分割小时再去搜索
 
-             times = datetime.datetime.fromtimestamp(time_stamp)
 
-             time_dict = CommonService.getTimeDict(times)
 
-             res = {}
 
-             for k, v in time_dict.items():
 
-                 start_date = time_dict[k]
 
-                 end_date = time_dict[k] + datetime.timedelta(hours=1)
 
-                 start_date = int(start_date.timestamp())
 
-                 end_date = int(end_date.timestamp())
 
-                 count = MiscellService.get_item_time(user_brand,start_date, end_date)
 
-                 if count:
 
-                     res[k] = count
 
-                 else:
 
-                     res[k] = 0
 
-             # res = MiscellService.get_item_date(user_brand,time_stamp)
 
-             return response.json(0, {'count': res})
 
-         else:
 
-             return response.json(404)
 
 
  |