123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #!/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
- """
- import time
- 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
- from Service.ModelService import ModelService
- '''
- # 获取所有设备下单信息
- 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)
- 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)
- elif operation == 'adminDelete':
- return self.do_admin_delete(request_dict, userID, response)
- elif operation == 'adminQuery':
- return self.do_admin_query(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)
- uid = request_dict.get('uid', 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, status=1)
- # 筛选指定设备id的订单
- if uid:
- omqs.filter(UID=uid)
- if not omqs.exists():
- return response.json(10, '订单不存在')
- count = omqs.count()
- order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "channel", "desc", "price", "currency",
- "addTime",
- "updTime", "endTime", "paypal", "rank__day", "payType",
- "rank__price", "status",
- "rank__content", "rank__title", "rank__currency",
- "rank_id")
- order_list = list(order_ql)
- data = []
- nowTime = int(time.time())
- # 这里需要进行优化
- 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', 'Type')
- 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']
- d['Type'] = did['Type']
- data.append(d)
- return response.json(0, {'data': data, 'count': count})
- # admins ^^^^^^^^^^^^
- def do_admin_delete(self, request_dict, userID, response):
- own_perm = ModelService.check_perm(userID, 20)
- if own_perm is True:
- orderID = request_dict.get('orderID')
- Order_Model.objects.filter(orderID=orderID).delete()
- return response.json(0)
- else:
- return response.json(404)
- def do_admin_query(self, request_dict, userID, response):
- own_perm = ModelService.check_perm(userID, 20)
- if own_perm is True:
- page = request_dict.get('page', None)
- line = request_dict.get('line', None)
- uid = request_dict.get('uid', None)
- channel = request_dict.get('channel', None)
- orderID = request_dict.get('orderID', None)
- page = int(page)
- line = int(line)
- omqs = Order_Model.objects.filter()
- # 筛选指定设备id的订单
- if uid:
- omqs = omqs.filter(UID=uid)
- if channel:
- omqs = omqs.filter(channel=channel)
- if orderID:
- omqs = omqs.filter(orderID=orderID)
- if not omqs.exists():
- return response.json(0, [])
- count = omqs.count()
- order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "channel", "desc", "price",
- "currency", "addTime", "updTime", "endTime", "paypal",
- "payType",
- "rank__day",
- "rank__price", "status",
- "rank__content", "rank__title", "rank__currency",
- "rank_id")
- order_list = list(order_ql)
- return response.json(0, {'data': order_list, 'count': count})
- else:
- return response.json(404)
|