#!/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_decorator from django.views.decorators.csrf import csrf_exempt from django.views.generic.base import View from Object.ResponseObject import ResponseObject from Object.TokenObject import TokenObject from Model.models import Order_Model, Device_Info from Service.CommonService import CommonService ''' # 获取所有设备下单信息 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","currency", "addTime", "updTime", "endTime", "paypal", "rank__day", "rank__price", "status", "rank__content", "rank__title", "rank__currency","rank_id") order_list = list(order_ql) data = [] nowTime = CommonService.get_utc() # 这里需要进行优化 # 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 # data.append(d) ################# uid_list = [] for od in order_list: uid_list.append(od['UID']) didqs = Device_Info.objects.filter(userID_id=userID, UID__in=uid_list).values('id','UID') for d in order_list: if d['status'] == 0: if d['addTime'] + 3600 < nowTime: d['status'] = 3 for did in didqs: if d['UID'] == did['UID']: d['did'] = did['id'] data.append(d) return response.json(0, {'data': data, 'count': count})