CloudPhotoController.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : CronCloudPhotoController.py
  4. @Time : 2022/11/3 10:16
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. import logging
  10. import time
  11. from Ansjer.config import ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME, PUSH_BUCKET
  12. from django.db import transaction
  13. from django.views import View
  14. from Model.models import DeviceCloudPhotoInfo, Device_Info, CloudPhotoBGM
  15. from Object.AWS.AmazonS3Util import AmazonS3Util
  16. from Object.ResponseObject import ResponseObject
  17. from Object.TokenObject import TokenObject
  18. LOGGER = logging.getLogger('info')
  19. class CronCloudPhotoView(View):
  20. def get(self, request, *args, **kwargs):
  21. request.encoding = 'utf-8'
  22. operation = kwargs.get('operation')
  23. return self.validation(request.GET, request, operation)
  24. def post(self, request, *args, **kwargs):
  25. request.encoding = 'utf-8'
  26. operation = kwargs.get('operation')
  27. return self.validation(request.POST, request, operation)
  28. def validation(self, request_dict, request, operation):
  29. token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
  30. lang = request_dict.get('lang', token.lang)
  31. response = ResponseObject(lang)
  32. if token.code != 0:
  33. return response.json(token.code)
  34. user_id = token.userID
  35. if operation == 'get-photo':
  36. return self.save_cloud_photo(user_id, request_dict, response)
  37. else:
  38. return response.json(404)
  39. @classmethod
  40. def save_cloud_photo(cls, user_id, request_dict, response):
  41. """
  42. 保存云相册
  43. """
  44. try:
  45. with transaction.atomic():
  46. status = request_dict.get('status', None)
  47. uid = request_dict.get('uid', None)
  48. if not all([status, uid, user_id]):
  49. return response(444)
  50. device_info_qs = Device_Info.objects.filter(vodPrimaryUserID=user_id, uid=uid).values('primaryUserID')
  51. if not device_info_qs.exists():
  52. return response.json(14)
  53. master_user_id = device_info_qs[0]['primaryUserID']
  54. if master_user_id != '' and master_user_id != user_id:
  55. return response.json(12)
  56. now_time = int(time.time())
  57. cloud_photo_qs = DeviceCloudPhotoInfo.objects.filter(uid=uid)
  58. if not cloud_photo_qs.exists():
  59. data = {'status': status, 'user_id': user_id, 'uid': uid, 'created_time': now_time,
  60. 'updated_time': now_time}
  61. DeviceCloudPhotoInfo.objects.create(**data)
  62. return response.json(0)
  63. cloud_photo_qs.update(status=status, updated_time=now_time)
  64. return response.json(0)
  65. except Exception as e:
  66. LOGGER.info('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
  67. return response.json(500)
  68. @classmethod
  69. def get_bgm_list(cls, request_dict, response):
  70. """
  71. 获取背景音乐列表
  72. """
  73. photo_bgm = CloudPhotoBGM.objects.filter(is_show=1).values('name')
  74. if not photo_bgm.exists():
  75. return response.json(0, [])
  76. AmazonS3Util(ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME)
  77. return response.json(0, [])