Keine Beschreibung

model_views.py 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. import monetary
  4. from django.conf import settings
  5. from django.db.models import Q
  6. from django_logit import logit
  7. from django_response import response
  8. from paginator import pagination
  9. from account.models import UserInfo
  10. from mch.models import AdministratorInfo, ModelCameraBodyInfo, ModelInfo
  11. from utils.error.errno_utils import AdministratorStatusCode, ProductModelStatusCode, UserStatusCode
  12. @logit
  13. def model_add(request):
  14. jancode = request.POST.get('jancode', '')
  15. model_name = request.POST.get('model_name', '')
  16. model_uni_name = request.POST.get('model_uni_name', '')
  17. model_full_name = request.POST.get('model_full_name', '')
  18. image_path = request.POST.get('image_path', '')
  19. image2_path = request.POST.get('image2_path', '')
  20. integral = int(request.POST.get('integral', 100))
  21. admin_id = request.session.get('admin_id')
  22. is_important = request.POST.get('is_important', 0)
  23. try:
  24. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  25. except AdministratorInfo.DoesNotExist:
  26. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  27. ModelInfo.objects.create(
  28. brand_id=administrator.brand_id,
  29. jancode=jancode,
  30. model_name=model_name,
  31. model_uni_name=model_uni_name,
  32. model_full_name=model_full_name,
  33. image=image_path,
  34. image2=image2_path,
  35. integral=integral,
  36. is_important=is_important,
  37. )
  38. return response(200, 'Model Add Success', u'型号添加成功')
  39. @logit
  40. def model_delete(request):
  41. model_id = request.POST.get('model_id', '')
  42. admin_id = request.session.get('admin_id')
  43. try:
  44. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  45. except AdministratorInfo.DoesNotExist:
  46. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  47. try:
  48. modelObj = ModelInfo.objects.get(brand_id=administrator.brand_id, model_id=model_id, status=True)
  49. except ModelInfo.DoesNotExist:
  50. return response(ProductModelStatusCode.MODEL_NOT_FOUND)
  51. modelObj.status = False
  52. modelObj.save()
  53. return response(200, 'Model Delete Success', u'型号删除成功')
  54. @logit
  55. def model_update(request):
  56. jancode = request.POST.get('jancode', '')
  57. model_id = request.POST.get('model_id', '')
  58. model_name = request.POST.get('model_name', '')
  59. model_uni_name = request.POST.get('model_uni_name', '')
  60. model_full_name = request.POST.get('model_full_name', '')
  61. image_path = request.POST.get('image_path', '')
  62. image2_path = request.POST.get('image2_path', '')
  63. integral = int(request.POST.get('integral', 100))
  64. admin_id = request.session.get('admin_id')
  65. is_important = request.POST.get('is_important', 0)
  66. try:
  67. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  68. except AdministratorInfo.DoesNotExist:
  69. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  70. try:
  71. modelObj = ModelInfo.objects.get(brand_id=administrator.brand_id, model_id=model_id, status=True)
  72. except ModelInfo.DoesNotExist:
  73. return response(ProductModelStatusCode.MODEL_NOT_FOUND)
  74. if jancode:
  75. modelObj.jancode = jancode
  76. if model_name:
  77. modelObj.model_name = model_name
  78. if model_uni_name:
  79. modelObj.model_uni_name = model_uni_name
  80. if model_full_name:
  81. modelObj.model_full_name = model_full_name
  82. if warehouse:
  83. modelObj.warehouse = warehouse
  84. if image_path:
  85. modelObj.image = image_path
  86. if image2_path:
  87. modelObj.image2 = image2_path
  88. if integral:
  89. modelObj.integral = integral
  90. modelObj.is_important = is_important
  91. modelObj.save()
  92. return response(200, 'Model Update Success', u'型号更新成功')
  93. @logit
  94. def model_list(request):
  95. page = request.POST.get('page', 1)
  96. num = request.POST.get('num', 20)
  97. admin_id = request.session.get('admin_id')
  98. try:
  99. administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
  100. except AdministratorInfo.DoesNotExist:
  101. return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
  102. models = ModelInfo.objects.filter(brand_id=administrator.brand_id, display=True, status=True).order_by('-pk')
  103. count = models.count()
  104. models, left = pagination(models, page, num)
  105. models = [mdl.admindata for mdl in models]
  106. return response(200, 'Get Model List Success', u'获取型号列表成功', {
  107. 'models': models,
  108. 'count': count,
  109. 'left': left,
  110. })
  111. @logit
  112. def model_name_list(request):
  113. brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
  114. user_id = request.POST.get('user_id', '')
  115. # 校验用户是否存在
  116. try:
  117. user = UserInfo.objects.get(user_id=user_id)
  118. except UserInfo.DoesNotExist:
  119. return response(UserStatusCode.USER_NOT_FOUND)
  120. models = ModelCameraBodyInfo.objects.filter(brand_id=brand_id, status=True).order_by('-is_important', 'model_name').values_list('model_name', flat=True)
  121. models = list(models)
  122. return response(200, 'Get Model Name List Success', u'获取型号列表成功', {
  123. 'models': sorted(set(models), key=models.index)
  124. })
  125. @logit
  126. def model_cameras(request):
  127. brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
  128. kw = request.POST.get('kw', '')
  129. page = request.POST.get('page', 1)
  130. num = request.POST.get('num', 20)
  131. cameras = ModelCameraBodyInfo.objects.filter(brand_id=brand_id, status=True)
  132. if kw:
  133. cameras = cameras.filter(Q(model_name__icontains=kw) | Q(model_full_name__icontains=kw) | Q(camera_name__icontains=kw))
  134. cameras = cameras.order_by('-is_important', 'model_name', '-camera_market_time')
  135. count = cameras.count()
  136. cameras, left = pagination(cameras, page, num)
  137. cameras = [camera.data for camera in cameras]
  138. return response(200, 'Get Model Adaptive Camera List Success', u'获取型号适配机身列表成功', {
  139. 'cameras': cameras,
  140. 'count': count,
  141. 'left': left,
  142. })