UserBrandController.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. from django.views.generic.base import View
  2. from django.utils.decorators import method_decorator
  3. from django.views.decorators.csrf import csrf_exempt
  4. from Service.ModelService import ModelService
  5. from Model.models import User_Brand,Device_User
  6. from django.utils import timezone
  7. import traceback,time
  8. from Object.ResponseObject import ResponseObject
  9. from Object.TokenObject import TokenObject
  10. from Service.CommonService import CommonService
  11. '''
  12. http://192.168.136.45:8077/userbrandinfo?operation=query&token=test&page=1&line=10
  13. http://192.168.136.39:8000/userbrandinfo?operation=query&token=test&page=1&line=5
  14. http://192.168.136.39:8000/userbrandinfo?operation=queryAll&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiY24iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NTk4OTY4NTd9.nhK3VSghSGjyXKjel4woz7R_3bhjgqQDlX-ypYsklNU&page=1&line=5
  15. '''
  16. class UserBrandInfo(View):
  17. @method_decorator(csrf_exempt)
  18. def dispatch(self, *args, **kwargs):
  19. return super(UserBrandInfo, self).dispatch(*args, **kwargs)
  20. def get(self, request, *args, **kwargs):
  21. request.encoding = 'utf-8'
  22. return self.validation(request_dict=request.GET)
  23. def post(self, request, *args, **kwargs):
  24. request.encoding = 'utf-8'
  25. return self.validation(request_dict=request.POST)
  26. def validation(self, request_dict, *args, **kwargs):
  27. response = ResponseObject()
  28. token = request_dict.get('token', None)
  29. if token is not None:
  30. tko = TokenObject(token)
  31. response.lang = tko.lang
  32. if tko.code == 0:
  33. userID = tko.userID
  34. operation = request_dict.get('operation', None)
  35. if userID is not None:
  36. if operation == 'query':
  37. return self.query_info(request_dict, userID,response)
  38. elif operation == 'add':
  39. return self.add_info(request_dict, userID,response)
  40. elif operation == 'queryAll':
  41. return self.query_all_info(request_dict, userID,response)
  42. else:
  43. return response.json(444,'444')
  44. else:
  45. return response.json(309)
  46. else:
  47. return response.json(tko.code)
  48. else:
  49. return response.json(309)
  50. # http://192.168.136.39:8000/userbrandinfo?operation=add&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiY24iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NTk4OTY4NTd9.nhK3VSghSGjyXKjel4woz7R_3bhjgqQDlX-ypYsklNU&deviceSupplier=12341234&deviceModel=deviceModel&osType=osType&osVersion=osVersion
  51. def add_info(self, request_dict, userID,response):
  52. deviceSupplier = request_dict.get('deviceSupplier', None)
  53. deviceModel = request_dict.get('deviceModel', None)
  54. osType = request_dict.get('osType', None)
  55. osVersion = request_dict.get('osVersion', None)
  56. try:
  57. user_brand = User_Brand(
  58. userID=Device_User.objects.get(userID=userID),
  59. deviceSupplier=deviceSupplier,
  60. deviceModel=deviceModel,
  61. osType=osType,
  62. osVersion=osVersion,
  63. addTime = int(time.time())
  64. )
  65. user_brand.save()
  66. except Exception:
  67. errorInfo = traceback.format_exc()
  68. print(errorInfo)
  69. return response.json(424, {'details': errorInfo})
  70. else:
  71. print(type(user_brand.addTime))
  72. return response.json(0,{'id':user_brand.id})
  73. def query_info(self, request_dict, userID,response):
  74. page = int(request_dict.get('page', None))
  75. line = int(request_dict.get('line', None))
  76. param_flag = CommonService.get_param_flag(data=[page, line])
  77. if param_flag is True:
  78. user_brand_queryset = User_Brand.objects.filter(userID=userID).order_by('-id')
  79. if user_brand_queryset.exists():
  80. count = user_brand_queryset.count()
  81. res = user_brand_queryset[(page - 1) * line:page * line]
  82. send_json = CommonService.qs_to_dict(res)
  83. send_json['count'] = count
  84. return response.json(0, send_json)
  85. return response.json(0, {'datas': [], 'count': 0})
  86. else:
  87. return response.json(444)
  88. def query_all_info(self, request_dict, userID,response):
  89. page = int(request_dict.get('page', None))
  90. line = int(request_dict.get('line', None))
  91. order = request_dict.get('order','-id')
  92. if order == '':
  93. order ='-id'
  94. param_flag = CommonService.get_param_flag(data=[page, line])
  95. if param_flag is True:
  96. check_perm = ModelService.check_perm(userID=userID,permID=30)
  97. if check_perm is True:
  98. user_brand_queryset = User_Brand.objects.all().order_by('userID').values_list('userID', flat=True).distinct()
  99. print (user_brand_queryset)
  100. addtime=[]
  101. for i in user_brand_queryset:
  102. user_brand_querysetlast = User_Brand.objects.filter(userID=i).order_by(order)[:1]
  103. user_brand_querysetlast = CommonService.qs_to_dict(user_brand_querysetlast)
  104. addtime.append(user_brand_querysetlast["datas"][0]['fields']['addTime'])
  105. print(addtime)
  106. user_brand_queryset = User_Brand.objects.filter(userID__in = user_brand_queryset, addTime__in=addtime).order_by(order)
  107. if user_brand_queryset.exists():
  108. count = user_brand_queryset.count()
  109. res = user_brand_queryset[(page - 1) * line:page * line]
  110. send_json = CommonService.qs_to_dict(res)
  111. for k, v in enumerate(send_json["datas"]):
  112. username = ModelService.get_user_name(userID=send_json["datas"][k]['fields']['userID'])
  113. send_json["datas"][k]['fields']['username']=username
  114. send_json['count'] = count
  115. return response.json(0, send_json)
  116. return response.json(0, {'datas': [], 'count': 0})
  117. else:
  118. return response.json(404)
  119. else:
  120. return response.json(444)