RegionCountryController.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import time
  2. import requests
  3. from django.views import View
  4. from Model.models import Device_User, Order_Model, CountryModel, SysMsgModel
  5. from Object.AWS.S3Email import S3Email
  6. from Ansjer.config import CONFIG_INFO, CONFIG_US
  7. from Object.ResponseObject import ResponseObject
  8. from Object.TokenObject import TokenObject
  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. response = ResponseObject()
  22. if operation == 'sendSysMsg':
  23. return self.send_sys_msg(request_dict, response)
  24. token = TokenObject(request_dict.get('token', None))
  25. if token.code != 0:
  26. return response.json(token.code)
  27. if operation == 'initUserRegion':
  28. return self.init_user_region(token.userID, request_dict, response)
  29. else:
  30. return response.json(414)
  31. @staticmethod
  32. def init_user_region(user_id, request_dict, response):
  33. """
  34. 初始化用户地区
  35. @param user_id: 用户id
  36. @param request_dict: 请求数据
  37. @request_dict number: 国家id
  38. @param response: 响应
  39. @return: response
  40. """
  41. region_country = request_dict.get('number', None)
  42. if not region_country:
  43. return response.json(444)
  44. device_user_qs = Device_User.objects.filter(userID=user_id).values('region_country')
  45. if not device_user_qs.exists():
  46. return response.json(104)
  47. region_country = int(region_country)
  48. # 云存用户切换为欧洲地区,发邮件提醒和系统消息
  49. if CONFIG_INFO == CONFIG_US:
  50. country_qs = CountryModel.objects.filter(id=region_country).values('region_id')
  51. if country_qs.exists():
  52. if country_qs[0]['region_id'] == 4:
  53. order_qs = Order_Model.objects.filter(userID_id=user_id, payType=1, status=1)
  54. if order_qs.exists():
  55. email_content = '云存用户切换为欧洲地区,请处理云存数据,user_id:{}'.format(user_id)
  56. S3Email().faEmail(email_content, '1073329609@qq.com')
  57. # 请求欧洲服发送系统消息
  58. url = 'https://api.zositeche.com/regionCountry/sendSysMsg'
  59. data = {'user_id': user_id}
  60. requests.post(url=url, data=data, timeout=5)
  61. device_user_qs.update(region_country=region_country, region_status=True)
  62. return response.json(0)
  63. @staticmethod
  64. def send_sys_msg(request_dict, response):
  65. user_id = request_dict.get('user_id', None)
  66. if not user_id:
  67. return response.json(444)
  68. now_time = int(time.time())
  69. msg = 'System upgrading. It may have influence on the cloud storage usage.' \
  70. 'Please feel free to contact Zosi customer service if you have any questions anytime.'
  71. SysMsgModel.objects.create(userID_id=user_id, msg=msg, addTime=now_time, updTime=now_time)
  72. return response.json(0)