@@ -2,11 +2,13 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from __future__ import division |
| 4 | 4 |
|
| 5 |
+from django.db import transaction |
|
| 5 | 6 |
from django_logit import logit |
| 6 | 7 |
from django_response import response |
| 8 |
+from paginator import pagination |
|
| 7 | 9 |
|
| 8 | 10 |
from logs.models import ComplementCodeLogInfo |
| 9 |
-from paginator import pagination |
|
| 11 |
+from utils.error.errno_utils import ComplementCodeStatusCode |
|
| 10 | 12 |
|
| 11 | 13 |
|
| 12 | 14 |
@logit(res=True) |
@@ -50,3 +52,25 @@ def complement_code_list(request): |
||
| 50 | 52 |
'logs': logs, |
| 51 | 53 |
'left': left, |
| 52 | 54 |
}) |
| 55 |
+ |
|
| 56 |
+ |
|
| 57 |
+@transaction.atomic |
|
| 58 |
+def complement_code_audit(request): |
|
| 59 |
+ log_id = request.POST.get('log_id', '')
|
|
| 60 |
+ audit_status = int(request.POST.get('audit_status', 0)) # -1 审核不通过, 1 审核通过
|
|
| 61 |
+ |
|
| 62 |
+ if audit_status not in [ComplementCodeLogInfo.AUDIT_REFUSED, ComplementCodeLogInfo.AUDIT_PASS]: |
|
| 63 |
+ return response(ComplementCodeStatusCode.COMPLEMENT_CODE_STATUS_INVALID) |
|
| 64 |
+ |
|
| 65 |
+ try: |
|
| 66 |
+ log = ComplementCodeLogInfo.objects.select_for_update().get(log_id=log_id, status=True) |
|
| 67 |
+ except ComplementCodeLogInfo.DoesNotExist: |
|
| 68 |
+ return response(ComplementCodeStatusCode.COMPLEMENT_CODE_NOT_FOUND) |
|
| 69 |
+ |
|
| 70 |
+ if log.audit_status != ComplementCodeLogInfo.AUDIT_TODO: |
|
| 71 |
+ return response(ComplementCodeStatusCode.COMPLEMENT_CODE_HAS_AUDITED) |
|
| 72 |
+ |
|
| 73 |
+ log.audit_status = audit_status |
|
| 74 |
+ log.save() |
|
| 75 |
+ |
|
| 76 |
+ return response() |
@@ -242,4 +242,5 @@ urlpatterns += [ |
||
| 242 | 242 |
urlpatterns += [ |
| 243 | 243 |
url(r'^complement/code$', complement_views.complement_code, name='complement_code'), |
| 244 | 244 |
url(r'^complement/code/list$', complement_views.complement_code_list, name='complement_code_list'), |
| 245 |
+ url(r'^complement/code/audit$', complement_views.complement_code_audit, name='complement_code_audit'), |
|
| 245 | 246 |
] |
@@ -28,7 +28,7 @@ class MchSearchModelAndCameraLogInfoAdmin(admin.ModelAdmin): |
||
| 28 | 28 |
|
| 29 | 29 |
|
| 30 | 30 |
class ComplementCodeLogInfoAdmin(admin.ModelAdmin): |
| 31 |
- list_display = ('user_id', 'log_id', 'name', 'phone', 'model_id', 'model_name', 'sn', 'shot_image', 'invoice_image', 'status', 'created_at', 'updated_at')
|
|
| 31 |
+ list_display = ('user_id', 'log_id', 'name', 'phone', 'model_id', 'model_name', 'sn', 'shot_image', 'invoice_image', 'audit_status', 'status', 'created_at', 'updated_at')
|
|
| 32 | 32 |
list_filter = ('model_id', 'status')
|
| 33 | 33 |
|
| 34 | 34 |
|
@@ -59,6 +59,13 @@ class ProductCouponStatusCode(BaseStatusCode): |
||
| 59 | 59 |
COUPON_HAS_EXPIRED = StatusCodeField(501411, 'Coupon Has Expired', description=u'优惠券已过期') |
| 60 | 60 |
|
| 61 | 61 |
|
| 62 |
+class ComplementCodeStatusCode(BaseStatusCode): |
|
| 63 |
+ """ 补码相关错误码 5016xx """ |
|
| 64 |
+ COMPLEMENT_CODE_NOT_FOUND = StatusCodeField(501601, 'Complement Code Not Found', description=u'补码记录不存在') |
|
| 65 |
+ COMPLEMENT_CODE_HAS_AUDITED = StatusCodeField(501605, 'Complement Code Has Audited', description=u'补码记录已审核') |
|
| 66 |
+ COMPLEMENT_CODE_STATUS_INVALID = StatusCodeField(501611, 'Complement Code Status Invalid', description=u'补码记录状态不合法') |
|
| 67 |
+ |
|
| 68 |
+ |
|
| 62 | 69 |
class ProductStatusCode(BaseStatusCode): |
| 63 | 70 |
""" 产品相关错误码 5020xx """ |
| 64 | 71 |
PRODUCT_NOT_FOUND = StatusCodeField(502001, 'Product Not Found', description=u'产品不存在') |