SkuRuleName.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD019
  6. @NAME: langer
  7. @software: PyCharm
  8. @DATE: 2019/11/14 11:44
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: LangArea.py
  12. @Contact: pzb3076@163.com
  13. """
  14. import json
  15. from django.views.generic import TemplateView
  16. from object.ResponseObject import ResponseObject
  17. from model.models import UserModel,skuSuitModel,skuRuleModel,skuConditionModel
  18. import time
  19. from object.TokenObject import TokenObject
  20. class skuRuleView(TemplateView):
  21. def post(self, request, *args, **kwargs):
  22. request.encoding = 'utf-8'
  23. operation = kwargs.get('operation', None)
  24. request_dict = json.loads(request.body.decode('utf-8'))
  25. return self.validate(request_dict, operation)
  26. def get(self, request, *args, **kwargs):
  27. request.encoding = 'utf-8'
  28. request_dict = request.GET
  29. operation = kwargs.get('operation', None)
  30. return self.validate(request_dict, operation)
  31. def validate(self, request_dict, operation):
  32. response = ResponseObject()
  33. token = request_dict.get('token', None)
  34. tko = TokenObject(token)
  35. if tko.code == 0:
  36. userID = tko.userID
  37. user_qs = UserModel.objects.filter(id=userID)
  38. if not user_qs.exists():
  39. return response.json(403)
  40. if user_qs[0].username == "admin":
  41. if operation == 'add':
  42. return self.do_add(request_dict, response)
  43. elif operation == 'update':
  44. return self.do_update(request_dict, response)
  45. elif operation == 'delete':
  46. return self.do_delete(request_dict, response)
  47. elif operation == 'query':
  48. return self.do_query(request_dict, response, userID)
  49. elif operation == 'query_all':
  50. return self.do_query_all(request_dict, response, userID)
  51. else:
  52. return response.json(414)
  53. else:
  54. if operation == 'query':
  55. return self.do_query(request_dict, response, userID)
  56. elif operation == 'query_all':
  57. return self.do_query_all(request_dict, response, userID)
  58. else:
  59. return response.json(414)
  60. else:
  61. return response.json(tko.code)
  62. def do_add(self, request_dict, response):
  63. name = request_dict.get('name', None)
  64. rs_id = request_dict.get('id', None)
  65. if name:
  66. nowTime = int(time.time())
  67. create_dict = {
  68. 'rs_id': rs_id,
  69. 'ruleName': name,
  70. 'addTime': nowTime,
  71. 'updTime': nowTime
  72. }
  73. try:
  74. skuRuleModel.objects.create(**create_dict)
  75. except Exception as e:
  76. return response.json(404, repr(e))
  77. else:
  78. sr_qs = skuRuleModel.objects.filter(ruleName=name).values('ruleName', 'id')
  79. return response.json(0, list(sr_qs))
  80. else:
  81. return response.json(414)
  82. def do_update(self, request_dict, response):
  83. name = request_dict.get('name', None)
  84. id = request_dict.get('id', None)
  85. nowTime = int(time.time())
  86. update_dict = {
  87. 'ruleName': name,
  88. 'updTime': nowTime
  89. }
  90. try:
  91. skuRuleModel.objects.filter(id=id).update(**update_dict)
  92. except Exception as e:
  93. return response.json(404, repr(e))
  94. else:
  95. return response.json(0)
  96. def do_delete(self, request_dict, response):
  97. id = request_dict.get('id', None)
  98. try:
  99. skuConditionModel.objects.filter(cr__id=id).delete()
  100. skuRuleModel.objects.filter(id=id).delete()
  101. except Exception as e:
  102. return response.json(404, repr(e))
  103. else:
  104. return response.json(0)
  105. def do_query(self, request_dict, response, userID):
  106. user_qs = UserModel.objects.filter(id=userID)
  107. if not user_qs.exists():
  108. return response.json(403)
  109. la_qs = skuRuleModel.objects.filter().values('ruleName', 'id')
  110. return response.json(0, list(la_qs))
  111. def do_query_all(self, request_dict, response, userID):
  112. user_qs = UserModel.objects.filter(id=userID)
  113. id = request_dict.get('id', None)
  114. if not user_qs.exists():
  115. return response.json(403)
  116. sr_qs = skuRuleModel.objects.filter(rs__id=id).values('ruleName', 'id').order_by("id")
  117. for SR in sr_qs:
  118. try:
  119. cr_qs = skuConditionModel.objects.filter(cr_id=SR['id']).values('numName', 'conditionName',
  120. 'id').order_by("id")
  121. SR['cr_qs'] = list(cr_qs)
  122. except Exception:
  123. pass
  124. return response.json(0, list(sr_qs))