:art: ComplementCodeLogInfo image upload qiniu

huangqimin001 лет %!s(int64=3): %!d(string=назад)
Родитель
Сommit
5f51d36155

+ 28 - 0
commands/management/commands/qiniu.py

@@ -6,6 +6,7 @@ import os
6 6
 from django_six import CompatibilityBaseCommand, close_old_connections
7 7
 
8 8
 from integral.models import SaleclerkSubmitLogInfo
9
+from logs.models import ComplementCodeLogInfo
9 10
 from utils.qiniucdn import upload_file_path
10 11
 from utils.redis.connect import r
11 12
 from utils.redis.rkeys import QINIU_UPLOAD_LIST
@@ -62,4 +63,31 @@ class Command(CompatibilityBaseCommand):
62 63
                 ssli.is_upload_qiniu = is_upload_qiniu
63 64
                 ssli.save()
64 65
 
66
+            elif model == 'ComplementCodeLogInfo':
67
+                try:
68
+                    ccli = ComplementCodeLogInfo.objects.get(pk=pk)
69
+                except ComplementCodeLogInfo.DoesNotExist:
70
+                    continue
71
+
72
+                is_upload_qiniu = True
73
+
74
+                if ccli.shot_image:
75
+                    try:
76
+                        if os.path.exists(ccli.shot_image.path):
77
+                            upload_file_path(ccli.shot_image.path, key=ccli.shot_image.name, bucket='tamron')
78
+                            os.remove(ccli.shot_image.path)
79
+                    except Exception:
80
+                        is_upload_qiniu = False
81
+
82
+                if ccli.invoice_image:
83
+                    try:
84
+                        if os.path.exists(ccli.invoice_image.path):
85
+                            upload_file_path(ccli.invoice_image.path, key=ccli.invoice_image.name, bucket='tamron')
86
+                            os.remove(ccli.invoice_image.path)
87
+                    except Exception:
88
+                        is_upload_qiniu = False
89
+
90
+                ccli.is_upload_qiniu = is_upload_qiniu
91
+                ccli.save()
92
+
65 93
             close_old_connections()

+ 8 - 1
commands/management/commands/qiniuproducer.py

@@ -5,6 +5,7 @@ import logging
5 5
 from django_six import CompatibilityBaseCommand
6 6
 
7 7
 from integral.models import SaleclerkSubmitLogInfo
8
+from logs.models import ComplementCodeLogInfo
8 9
 from utils.redis.connect import r
9 10
 from utils.redis.rkeys import QINIU_UPLOAD_LIST
10 11
 
@@ -18,9 +19,15 @@ class Command(CompatibilityBaseCommand):
18 19
         logger.info('Upload image qiniu producer is dealing')
19 20
 
20 21
         sslis = SaleclerkSubmitLogInfo.objects.filter(is_upload_qiniu=False)
21
-
22 22
         for ssli in sslis:
23 23
             r.rpushjson(QINIU_UPLOAD_LIST, {
24 24
                 'model': 'SaleclerkSubmitLogInfo',
25 25
                 'pk': ssli.pk,
26 26
             })
27
+
28
+        cclis = ComplementCodeLogInfo.objects.filter(is_upload_qiniu=False)
29
+        for ccli in cclis:
30
+            r.rpushjson(QINIU_UPLOAD_LIST, {
31
+                'model': 'ComplementCodeLogInfo',
32
+                'pk': ccli.pk,
33
+            })

+ 2 - 2
logs/admin.py

@@ -29,8 +29,8 @@ class MchSearchModelAndCameraLogInfoAdmin(admin.ModelAdmin):
29 29
 
30 30
 
31 31
 class ComplementCodeLogInfoAdmin(admin.ModelAdmin):
32
-    list_display = ('user_id', 'log_id', 'name', 'phone', 'model_id', 'model_name', 'sn', 'shot_image', 'invoice_image', 'audit_status', 'ciphertext', 'is_contacted', 'status', 'created_at', 'updated_at')
33
-    list_filter = ('model_id', 'audit_status', 'is_contacted', 'status')
32
+    list_display = ('user_id', 'log_id', 'name', 'phone', 'model_id', 'model_name', 'sn', 'shot_image', 'invoice_image', 'audit_status', 'ciphertext', 'is_contacted', 'is_upload_qiniu', 'status', 'created_at', 'updated_at')
33
+    list_filter = ('model_id', 'audit_status', 'is_contacted', 'is_upload_qiniu', 'status')
34 34
 
35 35
 
36 36
 admin.site.register(MchInfoDecryptLogInfo, MchInfoDecryptLogInfoAdmin)

+ 20 - 0
logs/migrations/0017_complementcodeloginfo_is_upload_qiniu.py

@@ -0,0 +1,20 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.29 on 2021-11-01 07:08
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('logs', '0016_auto_20210107_1438'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='complementcodeloginfo',
17
+            name='is_upload_qiniu',
18
+            field=models.BooleanField(default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'),
19
+        ),
20
+    ]

+ 5 - 2
logs/models.py

@@ -7,6 +7,7 @@ from shortuuidfield import ShortUUIDField
7 7
 from TimeConvert import TimeConvert as tc
8 8
 
9 9
 from mch.models import ModelInfo, OperatorInfo
10
+from utils.qiniucdn import qiniu_file_url
10 11
 
11 12
 
12 13
 class MchInfoEncryptLogInfo(BaseModelMixin):
@@ -147,6 +148,8 @@ class ComplementCodeLogInfo(BaseModelMixin):
147 148
 
148 149
     is_contacted = models.BooleanField(_(u'is_contacted'), default=False, help_text=u'是否已联系用户')
149 150
 
151
+    is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛'))
152
+
150 153
     class Meta:
151 154
         verbose_name = _(u'补码记录')
152 155
         verbose_name_plural = _(u'补码记录')
@@ -156,7 +159,7 @@ class ComplementCodeLogInfo(BaseModelMixin):
156 159
 
157 160
     @property
158 161
     def shot_image_url(self):
159
-        return upload_file_url(self.shot_image)
162
+        return qiniu_file_url(self.shot_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.shot_image)
160 163
 
161 164
     @property
162 165
     def shot_image_path(self):
@@ -164,7 +167,7 @@ class ComplementCodeLogInfo(BaseModelMixin):
164 167
 
165 168
     @property
166 169
     def invoice_image_url(self):
167
-        return upload_file_url(self.invoice_image)
170
+        return qiniu_file_url(self.invoice_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.invoice_image)
168 171
 
169 172
     @property
170 173
     def invoice_image_path(self):