EvaluationActivityController.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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: 2024年7月29日15:51:04
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. """
  12. import time
  13. from django.views.generic.base import View
  14. from Model.models import FreeEvaluationActivity, ActivityTime, ActivityUser
  15. from Object.ResponseObject import ResponseObject
  16. from Object.TokenObject import TokenObject
  17. from Service.CommonService import CommonService
  18. class EvaluationActivityView(View):
  19. def get(self, request, *args, **kwargs):
  20. request.encoding = 'utf-8'
  21. operation = kwargs.get('operation')
  22. return self.validation(request.GET, request, operation)
  23. def post(self, request, *args, **kwargs):
  24. request.encoding = 'utf-8'
  25. operation = kwargs.get('operation')
  26. return self.validation(request.POST, request, operation)
  27. def validation(self, request_dict, request, operation):
  28. language = request_dict.get('language', 'en')
  29. response = ResponseObject(language, 'pc')
  30. tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'), returntpye='pc')
  31. if tko.code != 0:
  32. return response.json(tko.code)
  33. response.lang = tko.lang
  34. user_id = tko.userID
  35. if operation == 'getActivity':
  36. return self.get_activity(user_id, request_dict, response)
  37. elif operation == 'addActivityUser':
  38. return self.add_activity_user(user_id, request_dict, response)
  39. else:
  40. return response.json(404)
  41. @staticmethod
  42. def get_activity(user_id, request_dict, response):
  43. try:
  44. now_time = int(time.time())
  45. activity_qs = FreeEvaluationActivity.objects.filter(is_show=1).values('activity_name', 'carousel_image_url',
  46. 'details_image_url', 'issue', 'id',
  47. 'product_number', 'original_price')
  48. if activity_qs.exists():
  49. activity = activity_qs[0]
  50. time_qs = ActivityTime.objects.filter(activity_id=activity['id']).values('node_content', 'start_time',
  51. 'end_time').order_by('sort')
  52. activity['activity_start_time'] = time_qs.first()['start_time']
  53. activity['activity_end_time'] = time_qs.last()['end_time']
  54. activity['activity_process'] = list(time_qs)
  55. user_qs = ActivityUser.objects.filter(activity_id=activity['id'])
  56. if user_qs.exists():
  57. user = user_qs.filter(user_id=user_id)
  58. if user.exists():
  59. activity['activity_status'] = 2 # 1:可报名;2:已报名;3:报名截止;4:活动结束
  60. else:
  61. activity['activity_status'] = 1
  62. user_qs = user_qs.filter(is_selected=1).values('user_name', 'phone')
  63. activity['activity_user'] = list(user_qs)
  64. else:
  65. activity['activity_status'] = 1
  66. activity['activity_user'] = []
  67. if now_time > time_qs.first()['end_time']:
  68. activity['activity_status'] = 3
  69. if now_time > time_qs.last()['end_time']:
  70. activity['activity_status'] = 4
  71. return response.json(0, activity)
  72. else:
  73. return response.json(0, {})
  74. except Exception as e:
  75. return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
  76. @staticmethod
  77. def add_activity_user(user_id, request_dict, response):
  78. activity_id = request_dict.get('activity_id', None)
  79. user_name = request_dict.get('user_name', None)
  80. phone = request_dict.get('phone', None)
  81. address = request_dict.get('address', None)
  82. sex = request_dict.get('sex', None)
  83. age = request_dict.get('age', None)
  84. usage_environment = request_dict.get('usage_environment', None)
  85. is_reports = request_dict.get('is_reports', None)
  86. if not all([activity_id, user_name, phone, address, sex, age, usage_environment, is_reports]):
  87. return response.json(404)
  88. now_time = int(time.time())
  89. try:
  90. user = ActivityUser.objects.filter(user_id=user_id)
  91. if user.exists():
  92. user.update(activity_id=activity_id, phone=phone, address=address, sex=sex, user_name=user_name,
  93. age=age, usage_environment=usage_environment, is_reports=is_reports,
  94. update_time=now_time)
  95. else:
  96. ActivityUser.objects.create(activity_id=activity_id, user_id=user_id, phone=phone, address=address,
  97. sex=sex, age=age, usage_environment=usage_environment, user_name=user_name,
  98. is_reports=is_reports, created_time=now_time, update_time=now_time)
  99. return response.json(0)
  100. except Exception as e:
  101. return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))