OrderTaskController.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from django.views import View
  5. from Model.models import OrderTaskModel
  6. from Object.ResponseObject import ResponseObject
  7. from Object.TokenObject import TokenObject
  8. from Service.ModelService import ModelService
  9. class OrderTaskView(View):
  10. def get(self, request, *args, **kwargs):
  11. request.encoding = 'utf-8'
  12. operation = kwargs.get('operation', None)
  13. request_dict = request.GET
  14. return self.validate(request_dict, operation)
  15. def post(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation', None)
  18. request_dict = request.POST
  19. return self.validate(request_dict, operation)
  20. def validate(self, request_dict, operation):
  21. token = request_dict.get('token', None)
  22. response = ResponseObject()
  23. token = TokenObject(token)
  24. if token.code != 0:
  25. return response.json(0)
  26. if operation == 'query':
  27. return self.do_query(token.userID, request_dict, response)
  28. elif operation == 'update':
  29. return self.do_update(token.userID, request_dict, response)
  30. elif operation == 'delete':
  31. return self.do_delete(token.userID, request_dict, response)
  32. else:
  33. return response.json(404)
  34. def do_query(self, userID, request_dict, response):
  35. perm = ModelService.check_perm(userID, 0)
  36. if not perm:
  37. return response.json(309)
  38. page = request_dict.get('page', None)
  39. line = request_dict.get('limit', None)
  40. if page and line:
  41. order_task_qs = OrderTaskModel.objects.filter()
  42. res = {
  43. 'count': 0,
  44. 'data': []
  45. }
  46. if order_task_qs.exists():
  47. page = int(page)
  48. line = int(line)
  49. res['count'] = order_task_qs.count()
  50. start = (page - 1) * line
  51. end = start + line
  52. order_task_qs = order_task_qs[start:end].values()
  53. res['data'] = list(order_task_qs)
  54. return response.json(0, res)
  55. else:
  56. return response.json(444)
  57. def do_update(self, userID, request_dict, response):
  58. perm = ModelService.check_perm(userID, 0)
  59. if not perm:
  60. return response.json(309)
  61. id = request_dict.get('id', None)
  62. content = request_dict.get('content', None)
  63. print(content)
  64. if id and content:
  65. content = json.loads(content)
  66. print(content)
  67. OrderTaskModel.objects.filter(id=id).update(**content)
  68. return response.json(0)
  69. else:
  70. return response.json(444)
  71. def do_delete(self, userID, request_dict, response):
  72. perm = ModelService.check_perm(userID, 0)
  73. if not perm:
  74. return response.json(309)
  75. id = request_dict.get('id', None)
  76. if id:
  77. OrderTaskModel.objects.filter(id=id).delete()
  78. return response.json(0)
  79. else:
  80. return response.json(444)