RegionCountryController.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.views import View
  2. from Model.models import Device_User, Order_Model, CountryModel
  3. from Object.AWS.S3Email import S3Email
  4. from Ansjer.config import CONFIG_INFO, CONFIG_US
  5. from Object.ResponseObject import ResponseObject
  6. from Object.TokenObject import TokenObject
  7. class RegionCountryView(View):
  8. def get(self, request, *args, **kwargs):
  9. request.encoding = 'utf-8'
  10. operation = kwargs.get('operation', None)
  11. request_dict = request.GET
  12. return self.validate(request_dict, operation)
  13. def post(self, request, *args, **kwargs):
  14. request.encoding = 'utf-8'
  15. operation = kwargs.get('operation', None)
  16. request_dict = request.POST
  17. return self.validate(request_dict, operation)
  18. def validate(self, request_dict, operation):
  19. response = ResponseObject()
  20. token = TokenObject(request_dict.get('token', None))
  21. if token.code != 0:
  22. return response.json(token.code)
  23. if operation == 'initUserRegion':
  24. return self.init_user_region(token.userID, request_dict, response)
  25. else:
  26. return response.json(414)
  27. @staticmethod
  28. def init_user_region(user_id, request_dict, response):
  29. """
  30. 初始化用户地区
  31. @param user_id: 用户id
  32. @param request_dict: 请求数据
  33. @request_dict number: 国家id
  34. @param response: 响应
  35. @return: response
  36. """
  37. region_country = request_dict.get('number', None)
  38. if not region_country:
  39. return response.json(444)
  40. device_user_qs = Device_User.objects.filter(userID=user_id).values('region_country')
  41. if not device_user_qs.exists():
  42. return response.json(104)
  43. region_country = int(region_country)
  44. # 云存用户切换为欧洲地区,发邮件提醒
  45. if CONFIG_INFO == CONFIG_US:
  46. country_qs = CountryModel.objects.filter(id=region_country).values('region_id')
  47. if country_qs.exists():
  48. if country_qs[0]['region_id'] == 4:
  49. order_qs = Order_Model.objects.filter(userID_id=user_id, payType=1, status=1)
  50. if order_qs.exists():
  51. email_content = '云存用户切换为欧洲地区,请处理云存数据'
  52. S3Email().faEmail(email_content, 'servers@ansjer.com')
  53. device_user_qs.update(region_country=region_country, region_status=True)
  54. return response.json(0)