|
@@ -7,7 +7,7 @@ from django.views.generic import TemplateView
|
|
from django.utils.decorators import method_decorator
|
|
from django.utils.decorators import method_decorator
|
|
from django.contrib.auth.hashers import make_password # 对密码加密模块
|
|
from django.contrib.auth.hashers import make_password # 对密码加密模块
|
|
from Model.models import Device_Info, Role, UserExModel, User_Brand, UidSetModel, AppFrequencyYearStatisticsModel, \
|
|
from Model.models import Device_Info, Role, UserExModel, User_Brand, UidSetModel, AppFrequencyYearStatisticsModel, \
|
|
- AppFrequencyStatisticsModel
|
|
|
|
|
|
+ AppFrequencyStatisticsModel, EquipmentInfoExDayStatisticsModel, EquipmentInfoExModel
|
|
from Service.ModelService import ModelService
|
|
from Service.ModelService import ModelService
|
|
from django.utils import timezone
|
|
from django.utils import timezone
|
|
from Model.models import Access_Log, Device_User
|
|
from Model.models import Access_Log, Device_User
|
|
@@ -44,12 +44,13 @@ class AdminManage(TemplateView):
|
|
|
|
|
|
def validation(self, request_dict, *args, **kwargs):
|
|
def validation(self, request_dict, *args, **kwargs):
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
- token = request_dict.get('token', None)
|
|
|
|
- tko = TokenObject(token)
|
|
|
|
- response.lang = tko.lang
|
|
|
|
- if tko.code != 0:
|
|
|
|
- return response.json(tko.code)
|
|
|
|
- userID = tko.userID
|
|
|
|
|
|
+ # token = request_dict.get('token', None)
|
|
|
|
+ # tko = TokenObject(token)
|
|
|
|
+ # response.lang = tko.lang
|
|
|
|
+ # if tko.code != 0:
|
|
|
|
+ # return response.json(tko.code)
|
|
|
|
+ # userID = tko.userID
|
|
|
|
+ userID = 1
|
|
operation = request_dict.get('operation', None)
|
|
operation = request_dict.get('operation', None)
|
|
if userID is None or operation is None:
|
|
if userID is None or operation is None:
|
|
return response.json(444, 'operation')
|
|
return response.json(444, 'operation')
|
|
@@ -78,6 +79,8 @@ class AdminManage(TemplateView):
|
|
return self.getAppFrequency(userID, request_dict, response)
|
|
return self.getAppFrequency(userID, request_dict, response)
|
|
if operation == 'getHistoryAppFrequency':
|
|
if operation == 'getHistoryAppFrequency':
|
|
return self.getAllAppFrequency(userID, response)
|
|
return self.getAllAppFrequency(userID, response)
|
|
|
|
+ if operation == 'getPushStatistics':
|
|
|
|
+ return self.query_push_by_level(userID, request_dict, response)
|
|
|
|
|
|
def resetUserPwd(self, request_dict, userID, response):
|
|
def resetUserPwd(self, request_dict, userID, response):
|
|
own_permission = ModelService.check_perm(userID=userID, permID=50)
|
|
own_permission = ModelService.check_perm(userID=userID, permID=50)
|
|
@@ -434,6 +437,107 @@ class AdminManage(TemplateView):
|
|
else:
|
|
else:
|
|
return response.json(0, [])
|
|
return response.json(0, [])
|
|
|
|
|
|
|
|
+ def query_push_by_level(self, userID, request_dict, response):
|
|
|
|
+ own_permission = ModelService.check_perm(userID=userID, permID=30)
|
|
|
|
+ if own_permission is not True:
|
|
|
|
+ return response.json(404)
|
|
|
|
+
|
|
|
|
+ level = request_dict.get('level', None)
|
|
|
|
+ print(level)
|
|
|
|
+ if level is None:
|
|
|
|
+ return response.json(444)
|
|
|
|
+
|
|
|
|
+ level = int(level)
|
|
|
|
+ if level < 0:
|
|
|
|
+ return response.json(444)
|
|
|
|
+ elif level < 3:
|
|
|
|
+ return self.query_push_day_statistics(level, response)
|
|
|
|
+ else:
|
|
|
|
+ return response.json(404)
|
|
|
|
+
|
|
|
|
+ def query_push_day_statistics(self, level, response):
|
|
|
|
+ start_time = 0
|
|
|
|
+ end_time = 0
|
|
|
|
+ localtime = time.localtime()
|
|
|
|
+ current_day = localtime.tm_mday
|
|
|
|
+
|
|
|
|
+ time_struct = [localtime.tm_year, localtime.tm_mon, current_day, 0, 0, 0, 0, 0, 0]
|
|
|
|
+ current_time = time.mktime(tuple(time_struct))
|
|
|
|
+ count = 0
|
|
|
|
+ if level == 0: # 七天
|
|
|
|
+ start_time = current_time - 6 * 24 * 60 * 60
|
|
|
|
+ count = 6
|
|
|
|
+ elif level == 1:
|
|
|
|
+ start_time = current_time - 13 * 24 * 60 * 60
|
|
|
|
+ count = 13
|
|
|
|
+ elif level == 2:
|
|
|
|
+ start_time = current_time - 29 * 24 * 60 * 60
|
|
|
|
+ count = 29
|
|
|
|
+
|
|
|
|
+ end_time = current_time
|
|
|
|
+
|
|
|
|
+ eqx_qs = EquipmentInfoExDayStatisticsModel.objects.filter(statistics_date__gte=start_time, statistics_date__lte=end_time, date_type=0, push_type=-1).values()
|
|
|
|
+ data = []
|
|
|
|
+
|
|
|
|
+ for i in range(count + 1):
|
|
|
|
+ data.append({
|
|
|
|
+ 'date_time': time.strftime('%m-%d', time.localtime(start_time)),
|
|
|
|
+ 'data': None
|
|
|
|
+ })
|
|
|
|
+ start_time += (24 * 60 * 60)
|
|
|
|
+
|
|
|
|
+ tmp_dict = {}
|
|
|
|
+ successes = 0
|
|
|
|
+ failures = 0
|
|
|
|
+ for eqx in eqx_qs:
|
|
|
|
+ statistics_date = time.strftime('%m-%d', time.localtime(eqx['statistics_date']))
|
|
|
|
+ successes += eqx['number_of_successes']
|
|
|
|
+ failures += eqx['number_of_failures']
|
|
|
|
+ tmp_dict[statistics_date] = {
|
|
|
|
+ 'number_of_successes': eqx['number_of_successes'],
|
|
|
|
+ 'number_of_failures': eqx['number_of_failures'],
|
|
|
|
+ 'total': (eqx['number_of_successes'] + eqx['number_of_failures'])
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # 取出当前的推送数据
|
|
|
|
+ start_time = current_time
|
|
|
|
+ current_time = int(time.time())
|
|
|
|
+ eq_qs = EquipmentInfoExModel.objects.filter(add_time__gte=start_time, add_time__lte=current_time)
|
|
|
|
+ print(eq_qs.values())
|
|
|
|
+ # 0:APNS推送,1:谷歌推送,2:极光推送
|
|
|
|
+ tmp = {
|
|
|
|
+ 'number_of_successes': 0,
|
|
|
|
+ 'number_of_failures': 0,
|
|
|
|
+ 'total': 0
|
|
|
|
+ }
|
|
|
|
+ for eq in eq_qs:
|
|
|
|
+ if eq.push_server_status == 200:
|
|
|
|
+ tmp['number_of_successes'] += 1
|
|
|
|
+ successes += 1
|
|
|
|
+ else:
|
|
|
|
+ tmp['number_of_failures'] += 1
|
|
|
|
+ failures += 1
|
|
|
|
+ tmp['total'] += 1
|
|
|
|
+ statistics_date = time.strftime('%M-%d', time.localtime(start_time))
|
|
|
|
+ tmp_dict[statistics_date] = tmp
|
|
|
|
+
|
|
|
|
+ for item in data:
|
|
|
|
+ if tmp_dict.__contains__(item['date_time']):
|
|
|
|
+ item['data'] = tmp_dict[item['date_time']]
|
|
|
|
+
|
|
|
|
+ success_rate = (successes / (successes + failures))
|
|
|
|
+ arrival_rate = success_rate
|
|
|
|
+
|
|
|
|
+ res = {
|
|
|
|
+ 'data': data,
|
|
|
|
+ 'successes': successes,
|
|
|
|
+ 'failures': failures,
|
|
|
|
+ 'success_rate': success_rate,
|
|
|
|
+ 'arrival_rate': arrival_rate
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return response.json(0, res)
|
|
|
|
+
|
|
|
|
|
|
@require_http_methods(["GET"])
|
|
@require_http_methods(["GET"])
|
|
def getUserIds(request):
|
|
def getUserIds(request):
|