#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved. @AUTHOR: ASJRD018 @NAME: Ansjer @software: PyCharm @DATE: 2018/6/8 9:10 @Version: python3.6 @MODIFY DECORD:ansjer dev @file: SysManage.py @Contact: chanjunkai@163.com """ import os import time from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt from django.views.generic.base import View from Ansjer.config import BASE_DIR from Model.models import SysMsgModel, Device_Info, Ai_Push_Info from Object.ResponseObject import ResponseObject from Object.TokenObject import TokenObject from Service.ModelService import ModelService @csrf_exempt def updateLog(request): response = ResponseObject() request.encoding = 'utf-8' if request.method == 'GET': request_dict = request.GET if request.method == 'POST': request_dict = request.POST else: response.json(404) token = request_dict.get('token', None) content = request_dict.get('content', None) if not content: return response.json(444, 'content') tko = TokenObject(token) response.lang = tko.lang if tko.code != 0: return response.json(tko.code) userID = tko.userID own_permission = ModelService.check_perm(userID=userID, permID=50) if own_permission is not True: return response.json(404) file_path = os.path.join(BASE_DIR, 'static/Help/version.txt') try: with open(file_path, "w", encoding="utf-8") as f: f.write(content) except Exception as e: pass return response.json(0) class getStatView(View): def post(self, request, *args, **kwargs): request.encoding = 'utf-8' filePath = kwargs.get('filePath', None) filePath.encode(encoding='utf-8', errors='strict') response = ResponseObject() return self.getFile(filePath, response) def get(self, request, *args, **kwargs): request.encoding = 'gb2312' filePath = kwargs.get('filePath', None) response = ResponseObject() filePath.encode(encoding='gb2312', errors='strict') return self.getFile(filePath, response) def getFile(self, filePath, response): if filePath: pass else: return response.json(800) fullPath = os.path.join(BASE_DIR, filePath).replace('\\', '/') from var_dump import var_dump var_dump(fullPath) if os.path.isfile(fullPath): try: Imagedata = open(fullPath, 'rb').read() except Exception as e: return response.json(906, repr(e)) else: return HttpResponse(Imagedata, content_type="image/jpeg") else: return response.json(907) from Service.EquipmentInfoService import EquipmentInfoService def initMsgFunc(request): response = ResponseObject() request.encoding = 'utf-8' if request.method == 'GET': request_dict = request.GET if request.method == 'POST': request_dict = request.POST else: response.json(404) 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 seven_days_ago = int(time.time()) - 3600 * 24 * 7 # 过滤七天前数据 sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count() kwargs = { 'device_user_id': userID, 'event_time__gt': seven_days_ago, 'status': 0 } eq_count = EquipmentInfoService.count_equipment_info(**kwargs) # kwargs['event_type'] = 57 # rq_count = EquipmentInfoService.count_equipment_info(**kwargs) rq_count = 0 # 影响查询性能APP未调用该属性,统一返回0 ai_count = Ai_Push_Info.objects.filter(userID_id=userID, eventTime__gt=seven_days_ago, status=False).count() uid_reset_count = Device_Info.objects.filter(userID_id=userID, isExist=2).count() res = { 'sm_count': sm_count, # 系统消息未读数量 'eq_count': eq_count, # 未读消息总数 'rq_count': rq_count, # 人形检测总数 'ai_count': ai_count, # AI消息总数 'uid_reset_count': uid_reset_count, # 复位的设备数量 } return response.json(0, res)