RegionCountryController.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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, RegionCountryModel
  6. from Object.ResponseObject import ResponseObject
  7. from Object.TokenObject import TokenObject
  8. import json
  9. class RegionCountryView(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 = TokenObject(request_dict.get('token', None))
  22. response = ResponseObject()
  23. if token.code != 0:
  24. return response.json(token.code)
  25. if operation == 'initUserRegion':
  26. return self.do_initUserRegion(token.userID, request_dict, response)
  27. elif operation == 'initRegionDate':
  28. return self.do_initRegionDate(request_dict, response)
  29. else:
  30. return response.json(404)
  31. def do_initUserRegion(self, userID, request_dict, response):
  32. user_qs = Device_User.objects.filter(userID=userID)
  33. number = request_dict.get('number', None)
  34. if not user_qs.exists():
  35. return response.json(309)
  36. user_qs[0].region_country = number
  37. user_qs[0].save()
  38. return response.json()
  39. def do_initRegionDate(self, request_dict, response):
  40. filepath = request_dict.get('filepath')
  41. with open(filepath, 'r', encoding='UTF-8') as f:
  42. region_list = json.load(f)
  43. #region_list = json.loads(fobj)
  44. now_time = int(time.time())
  45. regin_list = []
  46. for region in region_list:
  47. name = region['name']
  48. region_id = region['region_id']
  49. countries_list = region['countries']
  50. for countries in countries_list:
  51. cn = countries['cn']
  52. en = countries['en']
  53. number = countries['number']
  54. regin_list.append(RegionCountryModel(number=number, region_id=region_id, name=name, cn=cn, en=en, add_time=now_time, update_time=now_time))
  55. RegionCountryModel.objects.bulk_create(regin_list)
  56. return response.json(0)