1 Commits 7151a697ba ... 060a108ae7

Autore SHA1 Messaggio Data
  FFIB 060a108ae7 后台增加解绑功能 1 mese fa
2 ha cambiato i file con 66 aggiunte e 0 eliminazioni
  1. 64 0
      api/staff_views.py
  2. 2 0
      api/urls.py

+ 64 - 0
api/staff_views.py

@@ -1,5 +1,6 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
+from mch.models import ConsumeShotUnbindingInfo
3 4
 import json
4 5
 
5 6
 from django.conf import settings
@@ -516,3 +517,66 @@ def batch_del_consumer_submit_api(request):
516 517
         exec_del_consumer_submit(pk, admin_id)
517 518
 
518 519
     return response(200, 'Del Success', u'删除成功')
520
+
521
+@logit
522
+@transaction.atomic
523
+def unbind_consumer_submit_api(request):
524
+    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
525
+    admin_id = request.POST.get('admin_id', '')
526
+    pk = int(request.POST.get('pk', ''))
527
+
528
+    try:
529
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
530
+    except AdministratorInfo.DoesNotExist:
531
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
532
+
533
+    exec_unbind_consumer_submit(pk, admin_id)
534
+
535
+    return response(200, 'Del Success', u'删除成功')
536
+
537
+@logit
538
+@transaction.atomic
539
+def batch_unbind_consumer_submit_api(request):
540
+    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
541
+    admin_id = request.POST.get('admin_id', '')
542
+    pks = json.loads(request.POST.get('pks', []))
543
+
544
+    try:
545
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
546
+    except AdministratorInfo.DoesNotExist:
547
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
548
+
549
+    for pk in pks:
550
+        exec_unbind_consumer_submit(pk, admin_id)
551
+
552
+    return response(200, 'Unbind Success', u'解绑成功')
553
+
554
+
555
+def exec_unbind_consumer_submit(pk, admin_id):
556
+    log_info = ConsumeInfoSubmitLogInfo.objects.get(pk=pk)
557
+
558
+    try:
559
+        target_log_info = ConsumeInfoSubmitLogInfo.objects.get(model_id=log_info.model_id, serialNo=log_info.serialNo, dupload=False, unbound=False, status=True)
560
+        
561
+        ConsumeInfoSubmitLogInfo.objects.filter(model_id=log_info.model_id, serialNo=log_info.serialNo).update(delete_type=ConsumeInfoSubmitLogInfo.UNBINDING, status=False)
562
+
563
+        user = UserInfo.objects.get(user_id=target_log_info.user_id)
564
+
565
+        if user.shots_num <= 5:
566
+            user.level -= 1
567
+
568
+        user.integral -= target_log_info.integral
569
+        user.integral = max(user.integral, 0)
570
+        
571
+        user.shots_num -= 1
572
+
573
+        user.save()
574
+
575
+        ConsumeShotUnbindingInfo.objects.update_or_create(user_id=target_log_info.user_id, submit_pk=target_log_info.submit_pk, defaults={
576
+            'model_id': target_log_info.model_id,
577
+            'sn': target_log_info.sn,
578
+            'submit_at': target_log_info.submit_at,
579
+            'reason': admin_id,
580
+        })
581
+    except:
582
+        ConsumeInfoSubmitLogInfo.objects.filter(model_id=log_info.model_id, serialNo=log_info.serialNo).update(delete_type=ConsumeInfoSubmitLogInfo.UNBINDING, status=False)

+ 2 - 0
api/urls.py

@@ -264,6 +264,8 @@ urlpatterns += [
264 264
     url(r'^batch/del/clerk/sale/submit$', staff_views.batch_del_clerk_sale_submit_api, name='batch_del_clerk_sale_submit_api'),
265 265
     url(r'^del/consumer/submit$', staff_views.del_consumer_submit_api, name='del_consumer_submit_api'),
266 266
     url(r'^batch/del/consumer/submit$', staff_views.batch_del_consumer_submit_api, name='batch_del_consumer_submit_api'),
267
+
268
+    url(r'^unbind/consumer/submit$', staff_views.unbind_consumer_submit_api, name='unbind_consumer_submit_api'),
267 269
 ]
268 270
 
269 271
 urlpatterns += [