| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | #!/usr/bin/env python3  # -*- coding: utf-8 -*-  """@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.@AUTHOR: ASJRD018@NAME: AnsjerFormal@software: PyCharm@DATE: 2018/12/6 10:53@Version: python3.6@MODIFY DECORD:ansjer dev@file: OrderContrller.py@Contact: chanjunkai@163.com"""from django.utils.decorators import method_decoratorfrom django.views.decorators.csrf import csrf_exemptfrom django.views.generic.base import Viewfrom Object.ResponseObject import ResponseObjectfrom Object.TokenObject import TokenObjectfrom Model.models import Order_Model, Device_Infoimport time'''# 获取所有设备下单信息http://192.168.136.40:8077/order/querylist?token=local&page=1&line=10'''# 设备信息添加class OrderView(View):    @method_decorator(csrf_exempt)    def dispatch(self, *args, **kwargs):        return super(OrderView, 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):        response = ResponseObject()        if operation is None:            return response.json(444, 'error path')        token = request_dict.get('token', None)        # 设备主键uid        tko = TokenObject(token)        tko.valid()        response.lang = tko.lang        if tko.code != 0:            return response.json(tko.code)        userID = tko.userID        if operation == 'querylist':            return self.do_querylist(request_dict, userID, response)        else:            return response.json(444, 'error path')    def do_querylist(self, request_dict, userID, response):        page = request_dict.get('page', None)        line = request_dict.get('line', None)        did = request_dict.get('did', None)        if not page or not line:            return response.json(444, 'page,line')        page = int(page)        line = int(line)        omqs = Order_Model.objects.filter(userID_id=userID)        # 筛选指定设备id的订单        if did:            dvqs = Device_Info.objects.filter(id=did).values('UID')            if dvqs.exists():                omqs.filter(UID=dvqs[0]['UID'])            else:                return response.json(0)        if not omqs.exists():            return response.json(10, '订单不存在')        if did:            omqs.order_by()        count = omqs.count()        order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "channel", "desc", "price", "addTime",                                                              "updTime", "endTime", "paypal", "rank__day",                                                              "rank__price", "status",                                                              "rank__content", "rank__title", "rank__currency")        order_list = list(order_ql)        data = []        nowTime = int(time.time())        # 这里需要进行优化        for d in order_list:            # 未付款的一个小时后过期            if d['status'] == 0:                if d['addTime'] + 3600 < nowTime:                    d['status'] = 3            if did:                d['did'] = did            else:                didqs = Device_Info.objects.filter(userID_id=userID, UID=d['UID']).values('id')                if didqs.exists():                    did = didqs[0]['id']                else:                    did = ''                d['did'] = did            # d['endTime'] = int(d['updTime'])+int(d['rank__day']*86400)            data.append(d)        return response.json(0, {'data': data, 'count': count})
 |