Browse Source

feature:
1,增加设备预览图
2,设备添接口增加获取预览图

chenjunkai 6 years ago
parent
commit
13ac4a1704
3 changed files with 132 additions and 2 deletions
  1. 1 1
      Ansjer/urls.py
  2. 12 1
      Controller/EquipmentManager.py
  3. 119 0
      Controller/UIDPreview.py

+ 1 - 1
Ansjer/urls.py

@@ -134,7 +134,7 @@ urlpatterns = [
 
 
     # 用户反馈信息
     # 用户反馈信息
     url(r'^feedback/(?P<operation>.*)$', FeedBackInfo.FeedBackInfoView.as_view()),
     url(r'^feedback/(?P<operation>.*)$', FeedBackInfo.FeedBackInfoView.as_view()),
-    url(r'^uidpreview/add$', EquipmentStatus.addUIDPreview),
+    url(r'^uidpreview/(?P<operation>.*)$', EquipmentStatus.addUIDPreview),
 
 
     # 新的设备接口
     # 新的设备接口
     path('Test', Test.Test.as_view()),
     path('Test', Test.Test.as_view()),

+ 12 - 1
Controller/EquipmentManager.py

@@ -4,12 +4,14 @@ import traceback
 
 
 import simplejson as json
 import simplejson as json
 from django.utils import timezone
 from django.utils import timezone
-from Model.models import Device_User, Device_Info, UID_Bucket, UID_App
+from Model.models import Device_User, Device_Info, UID_Bucket, UID_App,UID_Preview
 from django.db.models import Q
 from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
+from Ansjer.config import OSS_STS_ACCESS_SECRET,OSS_STS_ACCESS_KEY
+import oss2
 
 
 
 
 #     查询用户设备
 #     查询用户设备
@@ -587,6 +589,9 @@ def queryInterface(request):
                 uid_list.append(dvl['UID'])
                 uid_list.append(dvl['UID'])
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
+        upqs = UID_Preview.objects.filter(uid__in=uid_list).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())
         nowTime = int(time.time())
         data = []
         data = []
         for p in dvls:
         for p in dvls:
@@ -595,6 +600,12 @@ def queryInterface(request):
                 if p['UID'] == dm['uid']:
                 if p['UID'] == dm['uid']:
                     if dm['endTime'] > nowTime:
                     if dm['endTime'] > nowTime:
                         p['vod'].append(dm)
                         p['vod'].append(dm)
+            p['preview'] = []
+            for up in upqs:
+                if p['UID'] == up['uid']:
+                    obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=up['uid'], channel=up['channel'])
+                    img_sign = uidPreview_bucket.sign_url('GET', obj, 300)
+                    p['preview'].append(img_sign)
             data.append(p)
             data.append(p)
         return response.json(0, {'data': data, 'count': count})
         return response.json(0, {'data': data, 'count': count})
     else:
     else:

+ 119 - 0
Controller/UIDPreview.py

@@ -0,0 +1,119 @@
+#!/usr/bin/env python3  
+# -*- coding: utf-8 -*-  
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2019/5/13 17:35
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: UIDPreview.py
+@Contact: chanjunkai@163.com
+"""
+# !/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2018/12/6 10:53
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: OrderContrller.py
+@Contact: chanjunkai@163.com
+"""
+import time
+
+import oss2
+from django.views.generic.base import View
+
+from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
+from Model.models import UID_Preview, Device_Info
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+
+'''
+# 获取所有设备下单信息
+http://192.168.136.40:8077/order/querylist?token=local&page=1&line=10
+'''
+
+
+# 设备信息添加
+class UIDPreview(View):
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        # 设备主键uid
+        tko = TokenObject(token)
+        if tko.code == 0:
+            response.lang = tko.lang
+            userID = tko.userID
+            if operation == 'add':
+                return self.do_add(userID, request_dict, response)
+            # if operation == 'query':
+            #     return self.do_query(userID, request_dict, response)
+            else:
+                return response.json(414)
+        else:
+            return response.json(tko.code)
+
+    def do_add(self, userID, request_dict, response):
+        nowTime = int(time.time())
+        uid = request_dict.get('uid', None)
+        channel = request_dict.get('channel', None)
+        if all([uid, channel]):
+            dvqs = Device_Info.objects.filter(UID=uid, userID_id=userID)
+            upqs = UID_Preview.objects.filter(uid=uid, channel=channel)
+            if dvqs.exists():
+                if upqs.exists():
+                    try:
+                        is_update = upqs.update(updTime=nowTime)
+                    except Exception as e:
+                        print(repr(e))
+                        return response.json(177)
+                    else:
+                        if is_update:
+                            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+                            bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+                            obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=uid, channel=channel)
+                            # 设置此签名URL在60秒内有效。
+                            url = bucket.sign_url('PUT', obj, 7200)
+                            return response.json(0, url)
+                        else:
+                            return response.json(177)
+                else:
+                    create_data = {
+                        'addTime': nowTime,
+                        'updTime': nowTime,
+                        'uid': uid,
+                        'channel': channel
+                    }
+                    try:
+                        UID_Preview.objects.create(**create_data)
+                    except Exception as e:
+                        print(repr(e))
+                        return response.json(178)
+                    else:
+                        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+                        bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+                        obj = 'uid_preview/{uid}/{channel}.jpeg'.format(uid=uid, channel=channel)
+                        # 设置此签名URL在60秒内有效。
+                        url = bucket.sign_url('PUT', obj, 7200)
+                        return response.json(0, url)
+            else:
+                return response.json(14)
+        else:
+            return response.json(444, 'uid,channel')