|
@@ -4,7 +4,7 @@ from django.db.models import Sum, F
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
from django.db.models import Q
|
|
from django.db.models import Q
|
|
from rest_framework.views import APIView
|
|
from rest_framework.views import APIView
|
|
-from rest_framework.generics import ListAPIView
|
|
|
|
|
|
+from rest_framework.generics import ListAPIView, CreateAPIView
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
from .serializers import *
|
|
from .serializers import *
|
|
from .filters import *
|
|
from .filters import *
|
|
@@ -20,7 +20,6 @@ from utils.format import strftime
|
|
|
|
|
|
|
|
|
|
class ProductView(APIView):
|
|
class ProductView(APIView):
|
|
- permission_classes = [isLogin, ]
|
|
|
|
|
|
|
|
def get(self, request):
|
|
def get(self, request):
|
|
data = []
|
|
data = []
|
|
@@ -141,13 +140,118 @@ class OrderListView(ListAPIView):
|
|
f = OrderFilter(self.request.GET, queryset=queryset)
|
|
f = OrderFilter(self.request.GET, queryset=queryset)
|
|
return f.qs
|
|
return f.qs
|
|
|
|
|
|
|
|
+class OrderCreatView(CreateAPIView):
|
|
|
|
+ # 匿名用户申报
|
|
|
|
+ queryset = Order.objects.filter()
|
|
|
|
+ serializer_class = OrderSerializer
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ seller_tel = request.POST.get('seller_tel')
|
|
|
|
+ try:
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ serializer = self.get_serializer(data=request.data)
|
|
|
|
+ if serializer.is_valid(raise_exception=True):
|
|
|
|
+ instance = serializer.save()
|
|
|
|
+ seller = User.objects.filter(username=seller_tel).first()
|
|
|
|
+ if seller:
|
|
|
|
+ instance.seller = seller
|
|
|
|
+ instance.save()
|
|
|
|
+ else:
|
|
|
|
+ raise CustomError('请填写正确的业务人员电话')
|
|
|
|
+ BizLog.objects.addnew(None, BizLog.INSERT,
|
|
|
|
+ u'添加订单[%s],id=%d' % (instance.name, instance.id), request.data)
|
|
|
|
+ return response_ok(instance.id)
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+
|
|
|
|
+class OrderUploadView(CreateAPIView):
|
|
|
|
+ # 匿名用户申报上传图片
|
|
|
|
+ queryset = Order.objects.filter()
|
|
|
|
+ serializer_class = OrderSerializer
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ file = self.request.FILES.get('file')
|
|
|
|
+ id = self.request.POST.get('id')
|
|
|
|
+ type = self.request.POST.get('type')
|
|
|
|
+ # 上传图片,order_id必填。更新图片时,upload_id必填
|
|
|
|
+ # / order / 2 / upload_image /
|
|
|
|
+ # post
|
|
|
|
+ # file
|
|
|
|
+ # type 0身份证, 1驾驶证, 2收入类, 3流水类, 4营业执照, 5挂靠协议
|
|
|
|
+ # order_id 订单id
|
|
|
|
+ # upload_id 图片id
|
|
|
|
+ try:
|
|
|
|
+ instance = Order.objects.filter(id=id).first()
|
|
|
|
+ if not instance:
|
|
|
|
+ raise CustomError('客户信息错误')
|
|
|
|
+ if instance.status == order.ONE:
|
|
|
|
+ raise CustomError('该客户信息已审核通过,禁止操作')
|
|
|
|
+ elif instance.status == order.THREE:
|
|
|
|
+ raise CustomError('该客户信息被拒绝审批,禁止操作')
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ if type:
|
|
|
|
+ # 上传图片时,把不在使用的同类别图片删除。
|
|
|
|
+ images = OrderImages.objects.filter(order=instance, type=type, enable=False)
|
|
|
|
+ for image in images:
|
|
|
|
+ image.image.del_images()
|
|
|
|
+ image.delete()
|
|
|
|
+ upload = Upload.objects._addnew(file, 'user_image')
|
|
|
|
+ if upload:
|
|
|
|
+ OrderImages.objects.create(order=instance, type=type, image=upload, )
|
|
|
|
+ edit = OrderDetailEdit.objects.filter(type=OrderDetailEdit.ONE, order=instance,
|
|
|
|
+ value=type).first()
|
|
|
|
+ if edit:
|
|
|
|
+ edit.edit_time = datetime.datetime.now()
|
|
|
|
+ edit.save()
|
|
|
|
+ dict = {
|
|
|
|
+ 'id': upload.id,
|
|
|
|
+ 'path': upload.get_path(),
|
|
|
|
+ }
|
|
|
|
+ return response_ok(dict)
|
|
|
|
+ return response_error('上传失败,请重新上传!')
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+
|
|
|
|
+class OrderDeleteImgView(CreateAPIView):
|
|
|
|
+ # 匿名用户申报上传图片
|
|
|
|
+ queryset = Order.objects.filter()
|
|
|
|
+ serializer_class = OrderSerializer
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ order_id = request.POST.get('order_id')
|
|
|
|
+ upload_id = request.POST.get('upload_id')
|
|
|
|
+ try:
|
|
|
|
+ instance = Order.objects.filter(id=order_id).first()
|
|
|
|
+ if not instance:
|
|
|
|
+ raise CustomError('客户信息错误')
|
|
|
|
+ if instance.status == order.ONE:
|
|
|
|
+ raise CustomError('该客户信息已审核通过,禁止操作')
|
|
|
|
+ if instance.status == order.THREE:
|
|
|
|
+ raise CustomError('该客户信息被拒绝审批,禁止操作')
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ if upload_id:
|
|
|
|
+ upload = Upload.objects.filter(id=upload_id).first()
|
|
|
|
+ if upload:
|
|
|
|
+ OrderImages.objects.filter(order=instance, image_id=upload_id).delete()
|
|
|
|
+ upload.del_images()
|
|
|
|
+ return response_ok()
|
|
|
|
+ return response_error('图片参数错误,删除失败')
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
|
|
class OrderViewSet(CustomModelViewSet):
|
|
class OrderViewSet(CustomModelViewSet):
|
|
permission_classes = [isLogin, ]
|
|
permission_classes = [isLogin, ]
|
|
queryset = Order.objects.filter()
|
|
queryset = Order.objects.filter()
|
|
serializer_class = OrderSerializer
|
|
serializer_class = OrderSerializer
|
|
|
|
|
|
- def filter_queryset(self, queryset):
|
|
|
|
|
|
+ def filter_queryset(self, queryset, ):
|
|
|
|
+ # 非管理者,只能查看自己的客户
|
|
if self.request.user.type != User.EMPLOYEE:
|
|
if self.request.user.type != User.EMPLOYEE:
|
|
queryset = queryset.filter(Q(create_user=self.request.user) | Q(seller=self.request.user))
|
|
queryset = queryset.filter(Q(create_user=self.request.user) | Q(seller=self.request.user))
|
|
f = OrderFilter(self.request.GET, queryset=queryset)
|
|
f = OrderFilter(self.request.GET, queryset=queryset)
|
|
@@ -262,6 +366,8 @@ class OrderViewSet(CustomModelViewSet):
|
|
status = request.GET.get('statu')
|
|
status = request.GET.get('statu')
|
|
|
|
|
|
try:
|
|
try:
|
|
|
|
+ if request.user.type != User.EMPLOYEE:
|
|
|
|
+ raise CustomError('当前用户无权限,禁止操作')
|
|
instance = self.get_object()
|
|
instance = self.get_object()
|
|
if instance.status == order.ONE:
|
|
if instance.status == order.ONE:
|
|
raise CustomError('该客户信息已审核通过,禁止操作')
|
|
raise CustomError('该客户信息已审核通过,禁止操作')
|