暂无描述

model_views.py 6.8KB

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