瀏覽代碼

Merge branch 'pzb' of http://192.168.136.45:3000/SERVER/AnsjerServer into pzb

# Conflicts:
#	Model/models.py
pzb 6 年之前
父節點
當前提交
d9efddf283
共有 6 個文件被更改,包括 105 次插入45 次删除
  1. 2 2
      Ansjer/test/test.py
  2. 3 3
      Controller/EquipmentManager.py
  3. 94 29
      Controller/FeedBack.py
  4. 2 2
      Controller/UIDPreview.py
  5. 4 4
      Model/models.py
  6. 0 5
      templates/testttt.py

+ 2 - 2
Ansjer/test/test.py

@@ -1,7 +1,7 @@
 import requests
 
-put_url = 'http://apg.oss-cn-shenzhen.aliyuncs.com/uid_preview%2FOOBDSU9547NTRSMF111A%2F3.jpeg?OSSAccessKeyId=LTAIyMkGfEdogyL9&Expires=1557976946&Signature=s8HfXr8aFWCjFrRmt3RIShdKKfo%3D'
-ddd = open('D:/048.jpg', 'rb')
+put_url = 'http://statres.oss-cn-hongkong.aliyuncs.com/20190517141057288383.png?OSSAccessKeyId=LTAIyMkGfEdogyL9&Expires=1558080657&Signature=BNQroehfSKyvW9EZ3p7%2FOCI3Aeo%3D'
+ddd = open('D:/11.jpg', 'rb')
 print(ddd)
 # exit()
 

+ 3 - 3
Controller/EquipmentManager.py

@@ -577,7 +577,7 @@ def queryInterface(request):
         dvqs = Device_Info.objects.filter(userID_id=userID)
         if NickName:
             dvqs.filter(NickName__icontains=NickName)
-        count = dvqs.count()
+        # count = dvqs.count()
         dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                                           'View_Password', 'ChannelIndex', 'Type', 'isShare',
                                                           'primaryUserID', 'primaryMaster', 'data_joined', 'version',
@@ -589,7 +589,7 @@ def queryInterface(request):
                 uid_list.append(dvl['UID'])
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
-        upqs = UID_Preview.objects.filter(uid__in=uid_list).values('id', 'uid', 'channel')
+        upqs = UID_Preview.objects.filter(uid__in=uid_list).order_by('channel').values('id', 'uid', 'channel')
         auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
         uidPreview_bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
         nowTime = int(time.time())
@@ -603,7 +603,7 @@ def queryInterface(request):
             p['preview'] = []
             for up in upqs:
                 if p['UID'] == up['uid']:
-                    obj = 'uid_preview/{uid}/{channel}.png'.format(uid=up['uid'], channel=up['channel'])
+                    obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=up['uid'], channel=up['channel'])
                     img_sign = uidPreview_bucket.sign_url('GET', obj, 300)
                     p['preview'].append(img_sign)
             data.append(p)

+ 94 - 29
Controller/FeedBack.py

@@ -1,16 +1,13 @@
+import time
+import json
+import oss2
 from django.views.generic.base import View
-from django.utils.decorators import method_decorator
-from django.views.decorators.csrf import csrf_exempt
-from Service.ModelService import ModelService
+from var_dump import var_dump
+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
 from Model.models import FeedBackModel, StatResModel
-from django.utils import timezone
-import traceback
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
-import oss2
-from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
-import time
 
 
 class FeedBackView(View):
@@ -30,43 +27,111 @@ class FeedBackView(View):
         tko = TokenObject(token)
         if tko.code == 0:
             userID = tko.userID
-
             if operation == 'add':
                 return self.do_add(userID, request_dict, response)
             elif operation == 'getUploadUrl':
                 return self.do_get_upload_url(request_dict, response)
+            elif operation == 'query':
+                return self.do_query(userID, request_dict, response)
+            elif operation == 'delete':
+                return self.do_delete(userID, request_dict, response)
             else:
                 return response.json(414)
-
         else:
             return response.json(tko.code)
 
+    def do_query(self, userID, request_dict, response):
+        page = request_dict.get('page', None)
+        line = request_dict.get('line', None)
+        if page and line:
+            page = int(page)
+            line = int(line)
+        else:
+            return response.json(444, 'page,line')
+        fb_qs = FeedBackModel.objects.filter(userID_id=userID)[(page - 1) * line:page * line].values('id', 'status',
+                                                                                                     'content',
+                                                                                                     'addTime',
+                                                                                                     'updTime',
+                                                                                                     'FS__name')
+        res = {}
+        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+        bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+        for fb in fb_qs:
+            if fb['id'] in res:
+                if fb['FS__name']:
+                    img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+                    res[fb['id']]['img_url'].append(img_url)
+            else:
+                print(fb['FS__name'])
+                if fb['FS__name']:
+                    img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+                    fb['img_url'] = []
+                    fb['img_url'].append(img_url)
+                res[fb['id']] = fb
+
+        # print(fb_qs.FS_set.all())
+
+        return response.json(0, res)
+
     def do_add(self, userID, request_dict, response):
+        nowTime = int(time.time())
         content = request_dict.get('content', None)
-        # urls =
-        return
+        res_1 = request_dict.get('res_1', None)
+        res_2 = request_dict.get('res_2', None)
+        res_3 = request_dict.get('res_3', None)
+        # res_list = []
+        try:
+            fb = FeedBackModel()
+            fb.addTime = nowTime
+            fb.updTime = nowTime
+            fb.content = content
+            fb.userID_id = userID
+            fb.save()
+            if res_1:
+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_1))
+            if res_2:
+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_2))
+            if res_3:
+                fb.FS.add(StatResModel.objects.create(addTime=nowTime, name=res_3))
+            if not res_1 and not res_2 and not res_3:
+                fb.delete()
+                return response.json(444, 'res_1,2,3')
+        except Exception as e:
+            print(repr(e))
+            # fb.delete()
+            return response.json(500, repr(e))
+        else:
+            return response.json(0)
 
     def do_get_upload_url(self, request_dict, response):
         uploadType = request_dict.get('uploadType', None)
-        nowTime = int(time.time())
-        if uploadType:
-            StatResModel.objects.create()
+        uploadType = json.loads(uploadType)
+        if len(uploadType):
+            res = []
             auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
             bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
-            name = CommonService.createOrderID()
-            obj = str(name) + '.' + uploadType
-            create_data = {
-                'addTime': nowTime,
-                'name': obj
-            }
-            try:
-                FeedBackModel.objects.create(**create_data)
-            except Exception as e:
-                print(repr(e))
-                return response.json(178)
-            else:
-                # 设置此签名URL在60秒内有效。
+            for upType in uploadType:
+                name = CommonService.createOrderID()
+                obj = str(name) + '.' + upType
                 url = bucket.sign_url('PUT', obj, 7200)
-                return response.json(0, url)
+                res.append({'put_url': url, 'res_name': obj})
+            return response.json(0, res)
         else:
             return response.json(444, 'uploadType')
+
+    def do_delete(self, userID, request_dict, response):
+        id = request_dict.get('id', None)
+        try:
+            fb_qs = FeedBackModel.objects.get(userID_id=userID, id=id)
+            sr_id_list = fb_qs.FS.values_list('id',flat=True)
+            StatResModel.objects.filter(id__in=sr_id_list).delete()
+            fb_qs.delete()
+            # is_delete = StatResModel.objects.filter(id__in=sr_id_list).delete()
+
+            # print(is_delete)
+            print('----------')
+
+        except Exception as e:
+            return response.json(500, repr(e))
+        else:
+            return response.json(0)

+ 2 - 2
Controller/UIDPreview.py

@@ -88,7 +88,7 @@ class UIDPreview(View):
                         return response.json(177)
                     else:
                         if is_update:
-                            obj = 'uid_preview/{uid}/{channel}.png'.format(uid=uid, channel=channel)
+                            obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=uid, channel=channel)
                             # 设置此签名URL在60秒内有效。
                             url = bucket.sign_url('PUT', obj, 7200)
                             return response.json(0, url)
@@ -107,7 +107,7 @@ class UIDPreview(View):
                         print(repr(e))
                         return response.json(178)
                     else:
-                        obj = 'uid_preview/{uid}/{channel}.png'.format(uid=uid, channel=channel)
+                        obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=uid, channel=channel)
                         # 设置此签名URL在60秒内有效。
                         url = bucket.sign_url('PUT', obj, 7200)
                         return response.json(0, url)

+ 4 - 4
Model/models.py

@@ -351,7 +351,7 @@ class StatResModel(models.Model):
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
 
     def __str__(self):
-        return self.id
+        return self.name
 
     class Meta:
         db_table = 'statres'
@@ -360,10 +360,10 @@ class StatResModel(models.Model):
         ordering = ('id',)
 
 
-#
+
 class FeedBackModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-    userID = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID')
+    userID = models.ForeignKey(Device_User, null=True, blank=True, to_field='userID', on_delete=models.CASCADE)
     status = models.SmallIntegerField(default=0, verbose_name='状态:0未解决/解决')
     content = models.TextField(blank=True, null=True, verbose_name=u'反馈描述')
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
@@ -375,7 +375,7 @@ class FeedBackModel(models.Model):
         return self.id
 
     class Meta:
-        db_table = 'feedback_info'
+        db_table = 'feedback'
         verbose_name = u'用户反馈信息表'
         verbose_name_plural = verbose_name
         ordering = ('id',)

+ 0 - 5
templates/testttt.py

@@ -1,5 +0,0 @@
-import time
-
-print(time.time())
-ss = time.sleep(1)
-print(time.time())