| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | #!/usr/bin/env python3# -*- coding: utf-8 -*-from django.utils.decorators import method_decoratorfrom django.views import Viewfrom django.views.decorators.csrf import csrf_exemptfrom Model.models import LogModelfrom Object.uidManageResponseObject import uidManageResponseObjectfrom Object.TokenObject import TokenObjectclass LogView(View):    @method_decorator(csrf_exempt)    def dispatch(self, request, *args, **kwargs):        return super(LogView, self).dispatch(request, *args, **kwargs)    def get(self, request, *args, **kwargs):        request.encoding = 'utf-8'        request_dict = request.GET        operation = kwargs.get('operation')        return self.validate(request_dict, operation)    def post(self, request, *args, **kwargs):        request.encoding = 'utf-8'        request_dict = request.POST        operation = kwargs.get('operation')        return self.validate(request_dict, operation)    def validate(self, request_dict, operation):        token = TokenObject(request_dict.get('token', None))        response = uidManageResponseObject()        if token.code != 0:            return response.json(token.code)        if operation == 'query':            return self.do_query(request_dict, token, response)        elif operation == 'queryAll':            return self.do_query_all(request_dict, token, response)        elif operation == 'delete':            return self.do_delete(request_dict, response)        elif operation == 'adminQuery':            return self.do_admin_query(request_dict, token, response)        else:            return response.json(404)    def do_query(self, request_dict, token: TokenObject, response):        page = request_dict.get('page', None)        line = request_dict.get('line', None)        if page and line:            log_qs = LogModel.objects.filter(user__id=token.userID).values('id', 'operation', 'time', 'ip', 'user__username')            if log_qs.exists():                page = int(page)                line = int(line)                start = (page - 1) * line                count = log_qs.count()                data = log_qs[start:(start + line)]                return response.json(0, {'count': count, 'data': list(data)})            else:                return response.json(0, {'count': 0, 'data': []})        else:            return response.json(444)    def do_query_all(self, request_dict, token: TokenObject, response: uidManageResponseObject):        log_qs = LogModel.objects.filter(user__id=token.userID).values('id', 'operation', 'time', 'ip')        if log_qs.exists():            count = log_qs.count()            return response.json(0, {'count': count, 'data': list(log_qs)})        else:            return response.json(0, {'count': 0, 'data': []})    def do_delete(self, request_dict, response):        id = request_dict.get('id', None)        if id:            LogModel.objects.filter(id=id).delete()            return response.json(0)        else:            return response.json(444)    def do_admin_query(self, request_dict, token: TokenObject, response):        page = request_dict.get('page', None)        line = request_dict.get('limit', None)        if page and line:            log_qs = LogModel.objects.filter().values('id', 'operation', 'time', 'ip', 'user__username')            if log_qs.exists():                page = int(page)                line = int(line)                start = (page - 1) * line                count = log_qs.count()                data = log_qs[start:(start + line)]                return response.json(0, {'count': count, 'data': list(data)})            else:                return response.json(0, {'count': 0, 'data': []})        else:            return response.json(444)
 |