AsImg.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: langer
  7. @software: PyCharm
  8. @DATE: 2019/6/3 17:29
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: User.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import json
  15. import time
  16. from django.views.generic import TemplateView
  17. from model.models import AsImgModel, SysSetModel
  18. from object.ResponseObject import ResponseObject
  19. from object.TokenObject import TokenObject
  20. from service.CommonService import CommonService
  21. from object.SesClassObject import SesClassObject
  22. class addView(TemplateView):
  23. def post(self, request, *args, **kwargs):
  24. request.encoding = 'utf-8'
  25. request_dict = json.loads(request.body.decode('utf-8'))
  26. return self.validate(request_dict)
  27. def get(self, request, *args, **kwargs):
  28. request.encoding = 'utf-8'
  29. request_dict = request.GET
  30. return self.validate(request_dict)
  31. def validate(self, request_dict):
  32. response = ResponseObject()
  33. token = request_dict.get('token', None)
  34. url = request_dict.get('url', None)
  35. asin = request_dict.get('asin', None)
  36. tko = TokenObject(token)
  37. if tko.code == 0:
  38. img_md5 = CommonService.get_remote_md5_sum(url=url)
  39. nowTime = int(time.time())
  40. create_dict = {
  41. 'asin': asin,
  42. 'md5': img_md5,
  43. 'url': url,
  44. 'addTime': nowTime,
  45. 'updTime': nowTime
  46. }
  47. AsImgModel.objects.create(**create_dict)
  48. return response.json(0)
  49. else:
  50. return response.json(tko.code)
  51. class queryView(TemplateView):
  52. def post(self, request, *args, **kwargs):
  53. request.encoding = 'utf-8'
  54. request_dict = json.loads(request.body.decode('utf-8'))
  55. return self.validate(request_dict)
  56. def get(self, request, *args, **kwargs):
  57. request.encoding = 'utf-8'
  58. request_dict = request.GET
  59. return self.validate(request_dict)
  60. def validate(self, request_dict):
  61. response = ResponseObject()
  62. token = request_dict.get('token', None)
  63. searchAsin = request_dict.get('searchAsin', None)
  64. page = int(request_dict.get('page', None))
  65. line = int(request_dict.get('line', None))
  66. tko = TokenObject(token)
  67. if tko.code == 0:
  68. userID = tko.userID
  69. ai_qs = AsImgModel.objects.filter()
  70. if searchAsin:
  71. ai_qs = ai_qs.filter(asin__contains=searchAsin)
  72. count = ai_qs.count()
  73. ai_qs = ai_qs[(page - 1) * line:page * line]
  74. if ai_qs.exists():
  75. res = list(ai_qs.values('id', 'addTime', 'updTime', 'asin', 'md5', 'url'))
  76. return response.json(0, res, extra={'count': count})
  77. else:
  78. return response.json(0)
  79. else:
  80. return response.json(tko.code)
  81. class updateView(TemplateView):
  82. def post(self, request, *args, **kwargs):
  83. request.encoding = 'utf-8'
  84. request_dict = json.loads(request.body.decode('utf-8'))
  85. return self.validate(request_dict)
  86. def get(self, request, *args, **kwargs):
  87. request.encoding = 'utf-8'
  88. request_dict = request.GET
  89. return self.validate(request_dict)
  90. def validate(self, request_dict):
  91. response = ResponseObject()
  92. token = request_dict.get('token', None)
  93. id = request_dict.get('id', None)
  94. asin = request_dict.get('asin', None)
  95. url = request_dict.get('url', None)
  96. nowTime = int(time.time())
  97. tko = TokenObject(token)
  98. if tko.code == 0:
  99. ai_qs = AsImgModel.objects.filter(id=id)
  100. update_dict = {'updTime': nowTime}
  101. if asin:
  102. update_dict['asin'] = asin
  103. if url:
  104. update_dict['url'] = url
  105. img_md5 = CommonService.get_remote_md5_sum(url=url)
  106. update_dict['md5'] = img_md5
  107. ai_qs.update(**update_dict)
  108. return response.json(0)
  109. else:
  110. return response.json(tko.code)
  111. class deleteView(TemplateView):
  112. def post(self, request, *args, **kwargs):
  113. request.encoding = 'utf-8'
  114. request_dict = json.loads(request.body.decode('utf-8'))
  115. return self.validate(request_dict)
  116. def get(self, request, *args, **kwargs):
  117. request.encoding = 'utf-8'
  118. request_dict = request.GET
  119. return self.validate(request_dict)
  120. def validate(self, request_dict):
  121. response = ResponseObject()
  122. token = request_dict.get('token', None)
  123. tko = TokenObject(token)
  124. if tko.code == 0:
  125. id = request_dict.get('id', None)
  126. if id:
  127. AsImgModel.objects.filter(id=id).delete()
  128. return response.json(0)
  129. else:
  130. return response.json(0)
  131. else:
  132. return response.json(tko.code)
  133. #
  134. class cycleImgView(TemplateView):
  135. def post(self, request, *args, **kwargs):
  136. request.encoding = 'utf-8'
  137. request_dict = json.loads(request.body.decode('utf-8'))
  138. return self.validate(request_dict)
  139. def get(self, request, *args, **kwargs):
  140. request.encoding = 'utf-8'
  141. request_dict = request.GET
  142. return self.validate(request_dict)
  143. def validate(self, request_dict):
  144. response = ResponseObject()
  145. # token = request_dict.get('token', None)
  146. # tko = TokenObject(token)
  147. as_qs = AsImgModel.objects.filter().values('url', 'md5', 'asin')
  148. as_list = list(as_qs)
  149. key_list = ['asimgEmail', 'asinterval']
  150. sys_qs = SysSetModel.objects.filter(key__in=key_list).values('key', 'val')
  151. sys_dict = {}
  152. for i in sys_qs:
  153. sys_dict[i['key']] = i['val']
  154. asimgEmail = sys_dict['asimgEmail']
  155. asinterval = sys_dict['asinterval']
  156. # 校验出的asin码列表
  157. err_asin_list = []
  158. for a in as_qs:
  159. try:
  160. md5 = CommonService.get_remote_md5_sum(a['url'])
  161. except Exception as e:
  162. print(repr(e))
  163. err_asin_list.append(a['asin'])
  164. else:
  165. if md5 == a['md5']:
  166. pass
  167. else:
  168. err_asin_list.append(a['asin'])
  169. # 发送邮件
  170. from var_dump import var_dump
  171. var_dump(err_asin_list)
  172. if len(err_asin_list) > 0:
  173. sesObj = SesClassObject()
  174. sesObj.send_email(send_address_list=[asimgEmail], subject='发现亚马逊产品图片丢失', body=','.join(err_asin_list))
  175. return response.json(0)