UserRegionController.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import time
  4. from django.views import View
  5. from Model.models import Device_User, UserRegionModel
  6. from Object.ResponseObject import ResponseObject
  7. from Object.TokenObject import TokenObject
  8. class UserRegionView(View):
  9. def get(self, request, *args, **kwargs):
  10. request.encoding = 'utf-8'
  11. operation = kwargs.get('operation', None)
  12. request_dict = request.GET
  13. return self.validate(request_dict, operation)
  14. def post(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. operation = kwargs.get('operation', None)
  17. request_dict = request.POST
  18. return self.validate(request_dict, operation)
  19. def validate(self, request_dict, operation):
  20. token = TokenObject(request_dict.get('token', None))
  21. response = ResponseObject()
  22. if token.code != 0:
  23. return response.json(token.code)
  24. if operation == 'init':
  25. return self.do_init(token.userID, request_dict, response)
  26. else:
  27. return response.json(404)
  28. def do_init(self, userID, request_dict, response):
  29. user_qs = Device_User.objects.filter(userID=userID)
  30. if not user_qs.exists():
  31. return response.json(309)
  32. region_id = request_dict.get('country_number', None)
  33. if region_id:
  34. user_region_qs = UserRegionModel.objects.filter(user__userID=userID)
  35. now_time = int(time.time())
  36. if not user_region_qs.exists():
  37. user_region = UserRegionModel(user_id=userID, region_id=region_id, add_time=now_time, update_time=now_time)
  38. user_region.save()
  39. else:
  40. update = {
  41. 'region_id': region_id,
  42. 'update_time': now_time
  43. }
  44. user_region_qs.update(**update)
  45. return response.json(0)
  46. else:
  47. return response.json(444)