hujingpei 4 سال پیش
والد
کامیت
2ac48687ae
3فایلهای تغییر یافته به همراه53 افزوده شده و 46 حذف شده
  1. 6 3
      apps/account/views.py
  2. 14 12
      apps/agent/views.py
  3. 33 31
      apps/customer/views.py

+ 6 - 3
apps/account/views.py

@@ -38,6 +38,7 @@ class LoginView(ObtainJSONWebToken):
 
 
 class RefreshTokenView(RefreshJSONWebToken):
+
     def post(self, request, *args, **kwargs):
         try:
             ser = self.serializer_class(data=request.data)
@@ -46,7 +47,9 @@ class RefreshTokenView(RefreshJSONWebToken):
         except ValidationError as e:
             return response_error(u'登录状态失效,请重新登录')
 
+
 class ChangePassword(APIView):
+
     def post(self, request, *args, **kwargs):
         id = request.GET.get('id')
         data = json.loads(request.body)
@@ -129,7 +132,7 @@ class EmployeeViewSet(CustomModelViewSet):
     @action(methods=['post'], detail=True)
     def branch(self, request, pk):
         check_permission(request, 'account.manager_store')
-        data = json.loads(request.POST.get('sotres'))
+        data = json.loads(request.POST.get('stores'))
         try:
             with transaction.atomic():
                 instance = self.get_object()
@@ -244,7 +247,7 @@ class StoreTreeView(APIView):
                 'field': 'agent',
                 'children': [],
             }
-            stores = Store.objects.filter(agent_id=agent['id'], enable=True).values('id', 'name')
+            stores = Store.objects.filter(agent_id=agent['id'], check_user__isnull=False, enable=True).values('id', 'name')
             for store in stores:
                 manage_store = ManageStoreUser.objects.filter(manage_user_id=id, store_id=store['id']).first()
                 checked = manage_store and True or False
@@ -273,7 +276,7 @@ class EmployeeTreeView(APIView):
         exist_agents = []
         manage_storess = request.user.get_manager_range()
         for store_id in manage_storess:
-            store = Store.objects.filter(id=store_id, enable=True).values('name','agent_id')
+            store = Store.objects.filter(id=store_id, check_user__isnull=False, enable=True).values('name','agent_id')
             if not store:
                 continue
             store_item = {

+ 14 - 12
apps/agent/views.py

@@ -5,6 +5,7 @@ from django.utils import timezone
 from rest_framework.decorators import action
 from rest_framework.views import APIView
 from django.conf import settings
+from django.db import transaction
 
 from utils import response_ok, response_error
 from utils.exceptions import CustomError
@@ -106,17 +107,18 @@ class StoreViewSet(CustomModelViewSet):
         # 审核
         status = request.POST.get('status')
         try:
-            instance = Store.objects.filter(id=pk).first()
-            if not instance:
-                raise CustomError('当前门店信息有误!')
-            if instance.status > settings.DEFAULT:
-                raise CustomError('当前企业已审核!')
-
-            instance.check_user = request.user
-            instance.status = status
-            instance.check_time = timezone.now()
-            instance.save()
-            BizLog.objects.addnew(request.user, BizLog.INSERT,
+            with transaction.atomic():
+                instance = Store.objects.filter(id=pk).first()
+                if not instance:
+                    raise CustomError('当前门店信息有误!')
+                if instance.status > settings.DEFAULT:
+                    raise CustomError('当前企业已审核!')
+
+                instance.check_user = request.user
+                instance.status = status
+                instance.check_time = timezone.now()
+                instance.save()
+                BizLog.objects.addnew(request.user, BizLog.INSERT,
                                   u'审核门店[%s]状态为[%s],id=%d' % (instance.name, status, instance.id))
         except CustomError as e:
             return response_error(e.get_error_msg())
@@ -141,7 +143,7 @@ class AgentDictView(APIView):
             stores = []
 
             for row in rows:
-                store = Store.objects.filter(agent=row, enable=True,check_user__isnull=False, end_date__gte=timezone.now().date())
+                store = Store.objects.filter(agent=row, enable=True, check_user__isnull=False, end_date__gte=timezone.now().date())
                 if request.user.store:
                     store = store.filter(id=request.user.store.id)
                 store_serializer = StoreComboboxSerializer(store, many=True).data

+ 33 - 31
apps/customer/views.py

@@ -313,19 +313,20 @@ class NewCustomerViewSet(CustomModelViewSet):
         is_copy = request.POST.get('is_copy') == '1'
 
         try:
-            instance = NewCustomer.objects.filter(id=pk).first()
+            with transaction.atomic():
+                instance = NewCustomer.objects.filter(id=pk).first()
 
-            data = {
-                'customer': instance.id,
-                'store': instance.store.id,
-                'create_user': request.user.id,
-                'description': description,
-                'is_copy': is_copy,
-            }
-            serializer = ReviewSerializer(data=data)
-            if serializer.is_valid(raise_exception=True):
-                serializer.save()
-            NewCustomerRemind.objects.filter(customer=instance, remind_user=request.user).update(next_time=next_time)
+                data = {
+                    'customer': instance.id,
+                    'store': instance.store.id,
+                    'create_user': request.user.id,
+                    'description': description,
+                    'is_copy': is_copy,
+                }
+                serializer = ReviewSerializer(data=data)
+                if serializer.is_valid(raise_exception=True):
+                    serializer.save()
+                NewCustomerRemind.objects.filter(customer=instance, remind_user=request.user).update(next_time=next_time)
 
         except ValidationError as e:
             traceback.print_exc()
@@ -407,25 +408,26 @@ class ReviewViewSet(CustomModelViewSet):
         check_comment = request.POST.get('check_comment')
         next_time = request.POST.get('next_time')
         try:
-            instance = Review.objects.filter(id=pk).first()
-            if int(check_status) == Review.KEEPUP:
-                instance.check_user = request.user
-                instance.check_status = check_status
-                instance.check_comment = check_comment
-                instance.check_time = timezone.now()
-                instance.save()
-            if int(check_status) == Review.ABANDON:
-                instance.check_user = request.user
-                instance.check_status = check_status
-                instance.check_comment = check_comment
-                instance.check_time = timezone.now()
-                instance.save()
-                instance.customer.status = NewCustomer.ABANDONED
-                # 如果客户已下单,把工单状态改成放弃
-                Order.objects.filter(customer=instance.customer).update(status=Order.ABANDONED)
-            instance.customer.next_time = next_time
-            instance.customer.save()
-            NewCustomerRemind.objects.filter(customer=instance.customer, remind_user=instance.customer.track_user).update(next_time=next_time)
+            with transaction.atomic():
+                instance = Review.objects.filter(id=pk).first()
+                if int(check_status) == Review.KEEPUP:
+                    instance.check_user = request.user
+                    instance.check_status = check_status
+                    instance.check_comment = check_comment
+                    instance.check_time = timezone.now()
+                    instance.save()
+                if int(check_status) == Review.ABANDON:
+                    instance.check_user = request.user
+                    instance.check_status = check_status
+                    instance.check_comment = check_comment
+                    instance.check_time = timezone.now()
+                    instance.save()
+                    instance.customer.status = NewCustomer.ABANDONED
+                    # 如果客户已下单,把工单状态改成放弃
+                    Order.objects.filter(customer=instance.customer).update(status=Order.ABANDONED)
+                instance.customer.next_time = next_time
+                instance.customer.save()
+                NewCustomerRemind.objects.filter(customer=instance.customer, remind_user=instance.customer.track_user).update(next_time=next_time)
         except CustomError as e:
             return response_error(e.get_error_msg())
         except Exception as e: