OrderContrller.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2018/12/6 10:53
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: OrderContrller.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. from django.utils.decorators import method_decorator
  15. from django.views.decorators.csrf import csrf_exempt
  16. from django.views.generic.base import View
  17. from Object.ResponseObject import ResponseObject
  18. from Object.TokenObject import TokenObject
  19. from Model.models import Order_Model,Device_Info
  20. import time
  21. '''
  22. # 获取所有设备下单信息
  23. http://192.168.136.40:8077/order/querylist?token=local&page=1&line=10
  24. '''
  25. # 设备信息添加
  26. class OrderView(View):
  27. @method_decorator(csrf_exempt)
  28. def dispatch(self, *args, **kwargs):
  29. return super(OrderView, self).dispatch(*args, **kwargs)
  30. def get(self, request, *args, **kwargs):
  31. request.encoding = 'utf-8'
  32. operation = kwargs.get('operation')
  33. return self.validation(request.GET, request, operation)
  34. def post(self, request, *args, **kwargs):
  35. request.encoding = 'utf-8'
  36. operation = kwargs.get('operation')
  37. return self.validation(request.POST, request, operation)
  38. def validation(self, request_dict, request, operation):
  39. response = ResponseObject()
  40. if operation is None:
  41. return response.json(444, 'error path')
  42. token = request_dict.get('token', None)
  43. # 设备主键uid
  44. tko = TokenObject(token)
  45. tko.valid()
  46. response.lang = tko.lang
  47. if tko.code != 0:
  48. return response.json(tko.code)
  49. userID = tko.userID
  50. if operation == 'querylist':
  51. return self.do_querylist(request_dict, userID, response)
  52. else:
  53. return response.json(444, 'error path')
  54. def do_querylist(self, request_dict, userID, response):
  55. page = request_dict.get('page', None)
  56. line = request_dict.get('line', None)
  57. did = request_dict.get('did', None)
  58. if not page or not line:
  59. return response.json(444, 'page,line')
  60. page = int(page)
  61. line = int(line)
  62. omqs = Order_Model.objects.filter(userID_id=userID)
  63. # 筛选指定设备id的订单
  64. if did:
  65. dvqs = Device_Info.objects.filter(id=did).values('UID')
  66. if dvqs.exists():
  67. omqs.filter(UID=dvqs[0]['UID'])
  68. else:
  69. return response.json(0)
  70. if not omqs.exists():
  71. return response.json(10, '订单不存在')
  72. if did:
  73. omqs.order_by()
  74. count = omqs.count()
  75. order_ql = omqs[(page - 1) * line:page * line].values("orderID", "UID", "channel", "desc", "price", "addTime",
  76. "updTime", "paypal", "rank__day", "rank__price","status",
  77. "rank__content", "rank__title","rank__currency")
  78. order_list = list(order_ql)
  79. data = []
  80. nowTime = int(time.time())
  81. for d in order_list:
  82. if d['status'] == 0:
  83. if d['addTime'] + 3600 < nowTime:
  84. d['status'] = 3
  85. if did:
  86. d['did'] = did
  87. else:
  88. didqs = Device_Info.objects.filter(userID_id=userID,UID=d['UID']).values('id')
  89. if didqs.exists():
  90. did = didqs[0]['id']
  91. else:
  92. did = ''
  93. d['did'] = did
  94. data.append(d)
  95. return response.json(0, {'data': data, 'count': count})