Эх сурвалжийг харах

写uidapp的表接口,管理员的增删改查四个接口

pzb 6 жил өмнө
parent
commit
7aa146de6c

+ 3 - 1
Ansjer/urls.py

@@ -3,7 +3,8 @@ from django.urls import path, re_path
 
 from Controller import FeedBackInfo, EquipmentOTA, EquipmentInfo, EquipmentSensor, StreamMedia, AdminManage, AppInfo, \
     AccessLog, Test, MealManage, DeviceManage, EquipmentStatus, SysManage, DeviceLog, LogAccess, \
-    EquipmentManager, LogManager, PermissionManager, OTAEquipment, shareUserPermission, UserManger, CheckUserData, \
+    EquipmentManager, LogManager, PermissionManager, OTAEquipment, UidappController, shareUserPermission, \
+    UserManger, CheckUserData, \
     UserController, CloudVod, OrderContrller, VodBucket, DetectController,DeviceShare
 
 urlpatterns = [
@@ -111,6 +112,7 @@ urlpatterns = [
     url(r'^cloudVod/(?P<operation>.*)$', CloudVod.CloudVodView.as_view()),
     url(r'^meal/(?P<operation>.*)$', MealManage.MealView.as_view()),
     url(r'^order/(?P<operation>.*)$', OrderContrller.OrderView.as_view()),
+    url(r'^uidApp/(?P<operation>.*)$', UidappController.UidappView.as_view()),
     url(r'^vodBucket/(?P<operation>.*)$', VodBucket.VodBucketView.as_view()),
     url(r'^UIDBucket/(?P<operation>.*)$', VodBucket.UidBucketView.as_view()),
     url(r'^EquipmentVersion/(?P<operation>.*)$', EquipmentOTA.EquipmentVersionView.as_view()),

+ 152 - 0
Controller/UidappController.py

@@ -0,0 +1,152 @@
+import time
+import simplejson as json
+from django.utils.decorators import method_decorator
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic.base import View
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Model.models import UID_App
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
+import traceback
+'''
+# 管理员获取信息
+http://192.168.136.39:8000/uidApp/adminQuery?token=local&page=1&line=10
+  管理员删除信息
+http://192.168.136.39:8000/uidApp/adminDelete?token=local&id=2
+  管理员添加信息
+http://192.168.136.39:8000/uidApp/adminAdd?token=local&uid=321&app_id=1&app_type=2&token_val=ertewtwetrewrt
+  管理员编辑信息
+http://192.168.136.39:8000/uidApp/adminEdit?token=local&id=6&content={"token_val":"9999"}
+'''
+
+
+# 设备信息添加
+class UidappView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(UidappView, self).dispatch(*args, **kwargs)
+
+    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()
+        if operation is None:
+            return response.json(444, 'error path')
+        token = request_dict.get('token', None)
+        # 设备主键uid
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        if operation == 'querylist':
+            return self.do_querylist(request_dict, userID, response)
+        elif operation == 'adminDelete':
+            return self.do_admin_delete(request_dict, userID, response)
+        elif operation == 'adminQuery':
+            return self.do_admin_query(request_dict, userID, response)
+        elif operation == 'adminAdd':
+            return self.do_admin_add(request_dict, userID, response)
+        elif operation == 'adminEdit':
+            return self.do_admin_edit(request_dict, userID, response)
+        else:
+            return response.json(444, 'error path')
+
+
+    # 管理员删除
+    def do_admin_delete(self, request_dict, userID, response):
+        own_perm = ModelService.check_perm(userID, 20)
+        if own_perm is True:
+            id = request_dict.get('id')
+            try:
+                list = UID_App.objects.filter(id=id)
+                if list.exists():
+                    list.delete()
+                    return response.json(0)
+                else:
+                    return response.json(173)
+            except Exception as e:
+                print(errorInfo)
+                return response.json(424, errorInfo)
+        else:
+            return response.json(404)
+    # 管理员查询接口
+    def do_admin_query(self, request_dict, userID, response):
+        own_perm = ModelService.check_perm(userID, 20)
+        if own_perm is True:
+            page = request_dict.get('page', None)
+            line = request_dict.get('line', None)
+            page = int(page)
+            line = int(line)
+            omqs = UID_App.objects.filter()
+            if not omqs.exists():
+                return response.json(0, [])
+            count = omqs.count()
+            order_ql = omqs[(page - 1) * line:page * line].values("id","uid","app_type","token_val","addTime","updTime",
+                                                                  "endTime","app__id","app__appName")
+            order_list = list(order_ql)
+            return response.json(0, {'data': order_list, 'count': count})
+
+        else:
+            return response.json(404)
+    # 管理员的添加
+    def do_admin_add(self, request_dict, userID, response):
+        own_perm = ModelService.check_perm(userID=userID, permID=40)
+        if own_perm is not True:
+            return response.json(404)
+        uid = request_dict.get('uid', None)
+        app_id = request_dict.get('app_id', None)
+        app_type = request_dict.get('app_type', None)
+        token_val = request_dict.get('token_val', None)
+        timestamp = int(time.time())
+        param_flag = CommonService.get_param_flag(
+            data=[uid, app_id, app_type, token_val])
+        if param_flag is not True:
+            return response.json(444)
+        try:
+            Uidapp = UID_App(
+                uid=uid,
+                app_id=app_id,
+                app_type=app_type,
+                token_val=token_val,
+                addTime=timestamp,
+                updTime=timestamp,
+                endTime=timestamp)
+            Uidapp.save()
+            return response.json(0)
+        except Exception:
+            errorInfo = traceback.format_exc()
+            print(errorInfo)
+            return response.json(500, {'details': errorInfo})
+
+    # 管理员的编辑
+    def do_admin_edit(self, request_dict, userID, response):
+        own_perm = ModelService.check_perm(userID=userID, permID=50)
+        if own_perm is not True:
+            return response.json(404)
+        deviceContent = request_dict.get('content', None)
+        id = request_dict.get('id', None)
+        if not deviceContent or not id:
+            return response.json(444, 'content,id')
+        try:
+            timestamp = int(time.time())
+            deviceData = json.loads(deviceContent)
+            uid_app = UID_App.objects.filter(id=id)
+            if uid_app.exists():
+                uid_app.update(updTime=timestamp, **deviceData)
+                return response.json(0)
+            else:
+                return response.json(173)
+        except Exception:
+            errorInfo = traceback.format_exc()
+            print(errorInfo)
+            return response.json(500, {'details': errorInfo})

+ 26 - 25
Model/models.py

@@ -542,31 +542,32 @@ class UID_Bucket(models.Model):
         verbose_name_plural = verbose_name
         ordering = ('id',)
 
-    class UID_App(models.Model):
-        id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-        uid = models.CharField(max_length=20, verbose_name='设备UID')
-        app = models.ForeignKey(App_Info, blank=True, to_field='id', on_delete=models.CASCADE,
-                                verbose_name='关联到APP表的id')
-        app_type = models.IntegerField(default='', verbose_name=u'app类型')
-        addTime = models.IntegerField(verbose_name='添加时间', default=0)
-        updTime = models.IntegerField(verbose_name='更新时间', default=0)
-        endTime = models.IntegerField(verbose_name='结束时间', default=0)
-        class Meta:
-            db_table = 'uid_app'
-            verbose_name = u'设备关联APP表'
-            verbose_name_plural = verbose_name
-            ordering = ('id',)
-
-    class NameTest(models.Model):
-        id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-        updTime = models.IntegerField(verbose_name='更新时间', default=0)
-        endTime = models.IntegerField(verbose_name='结束时间', default=0)
-
-        class Meta:
-            db_table = 'name_test'
-            verbose_name = u'测试表'
-            verbose_name_plural = verbose_name
-            ordering = ('id',)
+class UID_App(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    uid = models.CharField(max_length=20, verbose_name='设备UID')
+    app = models.ForeignKey(App_Info, blank=True, to_field='id', on_delete=models.CASCADE,
+                            verbose_name='关联到APP表的id')
+    app_type = models.IntegerField(default='', verbose_name=u'app类型')
+    token_val = models.CharField(blank=True, max_length=160, verbose_name=u'设备验证令牌')
+    addTime = models.IntegerField(verbose_name='添加时间', default=0)
+    updTime = models.IntegerField(verbose_name='更新时间', default=0)
+    endTime = models.IntegerField(verbose_name='结束时间', default=0)
+    class Meta:
+        db_table = 'uid_app'
+        verbose_name = u'设备关联APP表'
+        verbose_name_plural = verbose_name
+        ordering = ('id',)
+
+class NameTest(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    updTime = models.IntegerField(verbose_name='更新时间', default=0)
+    endTime = models.IntegerField(verbose_name='结束时间', default=0)
+
+    class Meta:
+        db_table = 'name_test'
+        verbose_name = u'测试表'
+        verbose_name_plural = verbose_name
+        ordering = ('id',)
 
     def __str__(self):
         return self.id