|
@@ -4,11 +4,11 @@ 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 utils.custom_modelviewset import CustomModelViewSet
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
from .serializers import *
|
|
from .serializers import *
|
|
from .filters import *
|
|
from .filters import *
|
|
from apps.log.models import BizLog
|
|
from apps.log.models import BizLog
|
|
-from apps.base import Formater
|
|
|
|
from utils import response_ok, response_error
|
|
from utils import response_ok, response_error
|
|
from utils.permission import isLogin
|
|
from utils.permission import isLogin
|
|
from apps.order.models import Order
|
|
from apps.order.models import Order
|
|
@@ -118,12 +118,20 @@ class ProductViewSet(CustomModelViewSet):
|
|
data.append(commodity_image_item)
|
|
data.append(commodity_image_item)
|
|
return response_ok(data)
|
|
return response_ok(data)
|
|
|
|
|
|
-class OrderListViewSet(CustomModelViewSet):
|
|
|
|
|
|
+class ProductListViewSet(ListAPIView):
|
|
|
|
+ queryset = Product.objects.filter()
|
|
|
|
+ serializer_class = ProductListSerializer
|
|
|
|
+
|
|
|
|
+ def filter_queryset(self, queryset,):
|
|
|
|
+ f = ProductFilter(self.request.GET, queryset=queryset)
|
|
|
|
+ return f.qs
|
|
|
|
+
|
|
|
|
+class OrderListViewSet(ListAPIView):
|
|
permission_classes = [isLogin, ]
|
|
permission_classes = [isLogin, ]
|
|
queryset = Order.objects.filter()
|
|
queryset = Order.objects.filter()
|
|
serializer_class = OrderListSerializer
|
|
serializer_class = OrderListSerializer
|
|
|
|
|
|
- def filter_queryset(self, queryset):
|
|
|
|
|
|
+ def filter_queryset(self, queryset,):
|
|
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)
|
|
return f.qs
|
|
return f.qs
|
|
@@ -145,11 +153,73 @@ class OrderViewSet(CustomModelViewSet):
|
|
if serializer.is_valid(raise_exception=True):
|
|
if serializer.is_valid(raise_exception=True):
|
|
instance = serializer.save()
|
|
instance = serializer.save()
|
|
BizLog.objects.addnew(self.request.user, BizLog.INSERT,
|
|
BizLog.objects.addnew(self.request.user, BizLog.INSERT,
|
|
- u'添加订单[%s],id=%d' % (instance.id), request.data)
|
|
|
|
|
|
+ u'添加订单[%s],id=%d' % (instance.name, instance.id), request.data)
|
|
return response_ok()
|
|
return response_ok()
|
|
except CustomError as e:
|
|
except CustomError as e:
|
|
return response_error(e.get_error_msg())
|
|
return response_error(e.get_error_msg())
|
|
except Exception as e:
|
|
except Exception as e:
|
|
- import traceback
|
|
|
|
- traceback.print_exc()
|
|
|
|
return response_error(str(e))
|
|
return response_error(str(e))
|
|
|
|
+
|
|
|
|
+ def update(self, request, *args, **kwargs):
|
|
|
|
+ data = request.POST
|
|
|
|
+ try:
|
|
|
|
+ instance = self.get_object()
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ serializer = self.get_serializer(instance,data=request.data)
|
|
|
|
+ if serializer.is_valid(raise_exception=True):
|
|
|
|
+ instance = serializer.save()
|
|
|
|
+ for key in data:
|
|
|
|
+ edit, create = OrderDetailEdit.objects.get_or_create(type=OrderDetailEdit.ZERO, order=instance, value=key)
|
|
|
|
+ if not create:
|
|
|
|
+ edit.edit_time = datetime.datetime.now()
|
|
|
|
+ edit.save()
|
|
|
|
+
|
|
|
|
+ BizLog.objects.addnew(self.request.user, BizLog.INSERT,
|
|
|
|
+ u'修改订单[%s],id=%d' % (instance.name, instance.id), request.data)
|
|
|
|
+ return response_ok()
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+
|
|
|
|
+ @action(methods=['post'], detail=False)
|
|
|
|
+ def upload_image(self, request):
|
|
|
|
+ file = self.request.FILES.get('file')
|
|
|
|
+ type = self.request.FILES.get('type')
|
|
|
|
+ order_id = self.request.FILES.get('order_id')
|
|
|
|
+ upload = Upload.objects._addnew(file)
|
|
|
|
+ if upload:
|
|
|
|
+ OrderImages.objects.create(order_id=order_id, type=type, image=upload)
|
|
|
|
+ return response_ok(upload.id)
|
|
|
|
+ return response_error('上传失败,请重新上传!')
|
|
|
|
+
|
|
|
|
+ @action(methods=['post'], detail=True)
|
|
|
|
+ def update_image(self, request):
|
|
|
|
+ file = self.request.FILES.get('file')
|
|
|
|
+ upload_id = self.request.FILES.get('upload_id')
|
|
|
|
+ upload = Upload.objects.filter(id=upload_id).first()
|
|
|
|
+ if upload:
|
|
|
|
+ upload.del_images()
|
|
|
|
+ Upload.objects._update(file, 'user_image', upload)
|
|
|
|
+ return response_ok(upload.id)
|
|
|
|
+ return response_error('更新失败,请重新上传!')
|
|
|
|
+
|
|
|
|
+ def destroy(self, request, *args, **kwargs):
|
|
|
|
+ try:
|
|
|
|
+ instance = self.get_object()
|
|
|
|
+ if instance.category == order.ONE:
|
|
|
|
+ raise CustomError('已上报信息,禁止删除!')
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ OrderDetailEdit.objects.filter(order=instance).delete()
|
|
|
|
+ images = OrderImages.objects.filter(order=instance)
|
|
|
|
+ for image in images:
|
|
|
|
+ upload = Upload.objects.filter(id=image.image.id)
|
|
|
|
+ upload.del_images()
|
|
|
|
+ images.delete()
|
|
|
|
+ super(OrderViewSet, self).destroy(request, *args, **kwargs)
|
|
|
|
+ except CustomError as e:
|
|
|
|
+ return response_error(e.get_error_msg())
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response_error(str(e))
|
|
|
|
+ return response_ok()
|
|
|
|
+
|