拍爱

mch_views.py 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.contrib.auth.hashers import check_password, make_password
  4. from django_logit import logit
  5. from django_response import response
  6. from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo
  7. from utils.error.errno_utils import OperatorStatusCode
  8. @logit
  9. def login_api(request):
  10. phone = request.POST.get('phone', '')
  11. password = request.POST.get('password', '')
  12. try:
  13. operator = OperatorInfo.objects.get(phone=phone, status=True)
  14. except OperatorInfo.DoesNotExist:
  15. return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
  16. if operator.user_status == OperatorInfo.DISABLED:
  17. return response(OperatorStatusCode.OPERATOR_NOT_ACTIVATED)
  18. if not check_password(password, operator.encryption):
  19. return response(OperatorStatusCode.OPERATOR_PASSWORD_ERROR)
  20. return response(200, data={
  21. 'optor_id': operator.operator_id,
  22. })
  23. @logit
  24. def bmd_infos(request):
  25. optor_id = request.POST.get('optor_id', '')
  26. try:
  27. operator = OperatorInfo.objects.get(operator_id=optor_id, status=True)
  28. except OperatorInfo.DoesNotExist:
  29. return response(OperatorStatusCode.OPERATOR_NOT_FOUND)
  30. if operator.user_status == OperatorInfo.DISABLED:
  31. return response(OperatorStatusCode.OPERATOR_NOT_ACTIVATED)
  32. brands = BrandInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
  33. brands = [brand.data for brand in brands]
  34. models = ModelInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
  35. models = [model.data for model in models]
  36. distributors = DistributorInfo.objects.filter(brand_id=operator.brand_id, status=True).order_by('position')
  37. distributors = [distributor.data for distributor in distributors]
  38. return response(200, data={
  39. 'optor_id': operator.operator_id,
  40. 'brands': brands,
  41. 'models': models,
  42. 'distributors': distributors,
  43. })
  44. @logit
  45. def brands_list(request):
  46. brands = BrandInfo.objects.filter(status=True).order_by('position')
  47. brands = [brand.data for brand in brands]
  48. return response(200, data={
  49. 'brands': brands,
  50. })
  51. @logit
  52. def models_list(request):
  53. models = ModelInfo.objects.filter(status=True).order_by('position')
  54. models = [model.data for model in models]
  55. return response(200, data={
  56. 'models': models,
  57. })
  58. @logit
  59. def distributors_list(request):
  60. distributors = DistributorInfo.objects.filter(status=True).order_by('position')
  61. distributors = [distributor.data for distributor in distributors]
  62. return response(200, data={
  63. 'distributors': distributors,
  64. })
  65. @logit
  66. def upgrade_api(request):
  67. """ APP 升级 """
  68. try:
  69. appinfo = LatestAppInfo.objects.filter(status=True)[0].adr
  70. except IndexError:
  71. appinfo = {
  72. 'latest_version_code': '',
  73. 'latest_version_name': '',
  74. 'latest_url': '',
  75. }
  76. return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
  77. 'appinfo': appinfo,
  78. })
  79. @logit
  80. def consumer_info_api(request):
  81. user_id = request.POST.get('user_id', '')
  82. iv = request.POST.get('iv', '')
  83. encryptedData = request.POST.get('encryptedData', '')
  84. lat = request.POST.get('lat', '')
  85. lon = request.POST.get('lon', '')
  86. serialNo = request.POST.get('SerialNo', '')
  87. verifyResult = request.POST.get('verifyResult', '')
  88. # To Get Phone
  89. ConsumeInfoSubmitLogInfo.objects.create(
  90. user_id=user_id,
  91. phone='',
  92. iv=iv,
  93. encryptedData=encryptedData,
  94. lat=lat,
  95. lon=lon,
  96. serialNo=serialNo,
  97. verifyResult=verifyResult,
  98. )
  99. return response()