| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | #!/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/15 16:47@Version: python3.6@MODIFY DECORD:ansjer dev@file: DeviceLog.py@Contact: chanjunkai@163.com"""import datetimeimport simplejson as jsonfrom django.views.decorators.csrf import csrf_exemptfrom Model.models import Device_Infofrom Object.ResponseObject import ResponseObjectfrom Object.TokenObject import TokenObjectfrom Object.mongodb import mongodbfrom Service.CommonService import CommonServicefrom Service.DeviceOperation import DeviceOperationfrom Service.ModelService import ModelService'''curl http://192.168.136.45:8077/devices/C2887N9EBS87ZAT1111A/logs -d "deviceData={\"UID\":\"C2887N9EBS87ZAT1111A\",\"type\":\"0x10014\",\"UserIP\":\"127.0.0.1\",\"time\":1529474865,\"name\":\"admin\"}"http://192.168.136.40:8077/devices/2N1K3LE78TYJ38CE111A/logs?type=All&starttime=1529462169&endtime=1529462169'''@csrf_exemptdef DeviceLog(request, uid):    # 存储设备日志    response = ResponseObject()    if request.method == 'POST':        request.encoding = 'utf-8'        deviceData = request.POST.get('deviceData', None)        device_info = Device_Info.objects.filter(UID=uid)        if device_info.exists():            try:                data = json.loads(deviceData)                mdb = mongodb()                data['et'] = datetime.datetime.utcnow()                col = "log_device_operation"                mdb.insert_one(col=col, data=data)                return response.json(0)            except Exception as e:                print(repr(e))                return response.json(48,repr(e))        else:            return response.json(173)    # 查找设备日志    if request.method == 'GET':        request.encoding = 'utf-8'        token = request.GET.get('token', None)        page = request.GET.get('page', None)        line = request.GET.get('line', None)        type = request.GET.get('type', None)        search_class = request.GET.get('class', None)        starttime = request.GET.get('starttime', None)        endtime = request.GET.get('endtime', None)        if token is not None:            tko = TokenObject(token)            response.lang = tko.lang            if tko.code == 0:                userID = tko.userID                if page is None and line is None:                    page = 1                    line = 10000                param_flag = CommonService.get_param_flag(data=[userID, page, line, uid])                own_dev = ModelService.check_own_device(userID=userID, UID=uid)                own_per = ModelService.check_perm(userID=userID, permID=30)                if own_dev is True or own_per is True:                    if param_flag is True:                        query = {'uid': uid}                        if search_class == 'All' or type == 'All':                            pass                        else:                            try:                                class_data= DeviceOperation.getODla(search_class=search_class)                                query['type'] = {'$gte': class_data[0], '$lte': class_data[1]}                            except Exception as e:                                if type is not None:                                    query['type'] = type                        if starttime is not None and starttime != '' and endtime is not None and endtime != '':                            query['time'] = {'$gte': int(starttime), '$lte': int(endtime)}                        elif starttime is not None and starttime != '':                            query['time'] = {'$gte': int(starttime)}                        elif endtime is not None and endtime != '':                            query['time'] = {'$lte': int(endtime)}                        print('___________query____________')                        print(query)                        print('___________query____________')                        mdb = mongodb()                        col = "log_device_operation"                        qs = mdb.findAll(col=col, page=int(page), line=int(line), query=query)                        if qs is not False:                            data_list = []                            for i in qs['data']:                                i['type'] = DeviceOperation.getOperation(type=i['type'])                                data_list.append(i)                            qs['data'] = data_list                        return response.json(0,qs)                else:                    return response.json(404)                return response.json(444)            else:                return response.json(tko.code)        else:            return response.json(309)
 |