ServeManagementController.py 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import json
  4. import time
  5. import urllib
  6. import uuid
  7. import boto3
  8. import threading
  9. import logging
  10. from boto3.session import Session
  11. from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
  12. from django.views.generic.base import View
  13. from Model.models import Device_Info, Role, MenuModel, VodBucketModel
  14. from Object.ResponseObject import ResponseObject
  15. from Object.TokenObject import TokenObject
  16. from Object.UidTokenObject import UidTokenObject
  17. from Service.CommonService import CommonService
  18. from django.db.models import Q, F
  19. from time import strftime
  20. class serveManagement(View):
  21. def get(self, request, *args, **kwargs):
  22. request.encoding = 'utf-8'
  23. operation = kwargs.get('operation')
  24. return self.validation(request.GET, request, operation)
  25. def post(self, request, *args, **kwargs):
  26. request.encoding = 'utf-8'
  27. operation = kwargs.get('operation')
  28. return self.validation(request.POST, request, operation)
  29. def validation(self, request_dict, request, operation):
  30. language = request_dict.get('language', 'en')
  31. response = ResponseObject(language, 'pc')
  32. if operation == '??':
  33. return 0
  34. else:
  35. tko = TokenObject(
  36. request.META.get('HTTP_AUTHORIZATION'),
  37. returntpye='pc')
  38. if tko.code != 0:
  39. return response.json(tko.code)
  40. response.lang = tko.lang
  41. userID = tko.userID
  42. if operation == 'getVodBucketList':
  43. return self.getVodBucketList(userID, request_dict, response)
  44. elif operation == 'addOrEditVodBucket':
  45. return self.addOrEditVodBucket(userID, request_dict, response)
  46. elif operation == 'deleteVodBucket':
  47. return self.deleteVodBucket(userID, request_dict, response)
  48. else:
  49. return response.json(404)
  50. def getVodBucketList(self, userID, request_dict, response):
  51. # 查询存储桶数据
  52. print('request_dict: ', request_dict)
  53. bucket = request_dict.get('bucket', None)
  54. mold = request_dict.get('mold', None)
  55. is_free = request_dict.get('is_free', None)
  56. pageNo = request_dict.get('pageNo', None)
  57. pageSize = request_dict.get('pageSize', None)
  58. if not all([pageNo, pageSize]):
  59. return response.json(444)
  60. page = int(pageNo)
  61. line = int(pageSize)
  62. try:
  63. if bucket or mold or is_free: # 条件查询
  64. if bucket:
  65. vod_bucket_qs = VodBucketModel.objects.filter(
  66. bucket=bucket)
  67. elif mold:
  68. vod_bucket_qs = VodBucketModel.objects.filter(
  69. mold=int(mold))
  70. elif is_free:
  71. vod_bucket_qs = VodBucketModel.objects.filter(
  72. is_free=int(is_free))
  73. else: # 查询全部
  74. vod_bucket_qs = VodBucketModel.objects.filter().all()
  75. total = len(vod_bucket_qs)
  76. vod_buckets = vod_bucket_qs[(page - 1) * line:page * line]
  77. vod_bucket_list = []
  78. for vod_bucket in vod_buckets:
  79. vod_bucket_list.append({
  80. 'bucketID': vod_bucket.id,
  81. 'bucket': vod_bucket.bucket,
  82. 'content': vod_bucket.content,
  83. 'mold': vod_bucket.mold,
  84. 'area': vod_bucket.area,
  85. 'region': vod_bucket.region,
  86. 'endpoint': vod_bucket.endpoint,
  87. 'is_free': vod_bucket.is_free,
  88. 'storeDay': vod_bucket.storeDay,
  89. 'region_id': vod_bucket.region_id,
  90. 'addTime': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(vod_bucket.addTime)),
  91. 'updTime': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(vod_bucket.updTime)),
  92. })
  93. print('vod_bucket_list: ', vod_bucket_list)
  94. return response.json(
  95. 0, {'list': vod_bucket_list, 'total': total})
  96. except Exception as e:
  97. print(e)
  98. return response.json(500, repr(e))
  99. def addOrEditVodBucket(self, userID, request_dict, response):
  100. # 添加/编辑存储桶
  101. print('request_dict: ', request_dict)
  102. bucketID = request_dict.get('bucketID', None)
  103. bucket = request_dict.get('bucket', '').strip() # 移除字符串头尾的空格
  104. content = request_dict.get('content', '').strip()
  105. mold = int(request_dict.get('mold', 1))
  106. area = request_dict.get('area', '').strip()
  107. region = request_dict.get('region', '').strip()
  108. endpoint = request_dict.get('endpoint', '').strip()
  109. is_free = int(request_dict.get('is_free', 0))
  110. storeDay = int(request_dict.get('storeDay', 0))
  111. region_id = int(request_dict.get('region_id', 1))
  112. isEdit = request_dict.get('isEdit', None)
  113. if not all([bucket, content, area, region, endpoint]):
  114. return response.json(444)
  115. try:
  116. now_time = int(time.time())
  117. vod_bucket_data = {
  118. 'bucket': bucket,
  119. 'content': content,
  120. 'mold': mold,
  121. 'area': area,
  122. 'region': region,
  123. 'endpoint': endpoint,
  124. 'is_free': is_free,
  125. 'storeDay': storeDay,
  126. 'region_id': region_id,
  127. 'addTime': now_time,
  128. 'updTime': now_time,
  129. }
  130. if isEdit:
  131. if not bucketID:
  132. return response.json(444)
  133. VodBucketModel.objects.filter(
  134. id=bucketID).update(
  135. **vod_bucket_data)
  136. else:
  137. VodBucketModel.objects.create(**vod_bucket_data)
  138. return response.json(0)
  139. except Exception as e:
  140. print(e)
  141. return response.json(500, repr(e))
  142. def deleteVodBucket(self, userID, request_dict, response):
  143. # 删除存储桶
  144. print('request_dict: ', request_dict)
  145. bucketID = request_dict.get('bucketID', None)
  146. if not bucketID:
  147. return response.json(444)
  148. try:
  149. VodBucketModel.objects.filter(id=bucketID).delete()
  150. return response.json(0)
  151. except Exception as e:
  152. print(e)
  153. return response.json(500, repr(e))