فهرست منبع

增加用户反馈信息接口

chenjunkai 6 سال پیش
والد
کامیت
9b8bba2a19
5فایلهای تغییر یافته به همراه70 افزوده شده و 36 حذف شده
  1. 2 2
      Ansjer/test/test.py
  2. 1 1
      Controller/EquipmentManager.py
  3. 66 27
      Controller/FeedBack.py
  4. 1 1
      Model/models.py
  5. 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()
 

+ 1 - 1
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',

+ 66 - 27
Controller/FeedBack.py

@@ -1,16 +1,13 @@
+import time
+
+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 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,85 @@ 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)
             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:
+                img_url = bucket.sign_url('GET', fb['FS__name'], 600)
+                res[fb['id']]['img_url'].append(img_url)
+            else:
+                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()
             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秒内有效。
-                url = bucket.sign_url('PUT', obj, 7200)
-                return response.json(0, url)
+            url = bucket.sign_url('PUT', obj, 7200)
+            return response.json(0, {'put_url': url, 'res_name': obj})
         else:
             return response.json(444, 'uploadType')

+ 1 - 1
Model/models.py

@@ -363,7 +363,7 @@ class StatResModel(models.Model):
 #
 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)

+ 0 - 5
templates/testttt.py

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