Browse Source

修改app版本记录信息的表和对接后台的增加,删除,编辑,显示接口

pzb 6 years ago
parent
commit
1ec75ecf92
5 changed files with 178 additions and 5 deletions
  1. 2 1
      Ansjer/urls.py
  2. 157 0
      Controller/AppColophon.py
  3. 2 2
      Controller/AppInfo.py
  4. 1 1
      Controller/UidappController.py
  5. 16 1
      Model/models.py

+ 2 - 1
Ansjer/urls.py

@@ -2,7 +2,7 @@ from django.conf.urls import url
 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, \
+    AccessLog, Test, MealManage, DeviceManage, EquipmentStatus, SysManage, DeviceLog, LogAccess, AppColophon,\
     EquipmentManager, LogManager, PermissionManager, OTAEquipment, UidappController, shareUserPermission, \
     UserManger, CheckUserData, \
     UserController, CloudVod, OrderContrller, VodBucket, DetectController,DeviceShare
@@ -113,6 +113,7 @@ urlpatterns = [
     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'^appCol/(?P<operation>.*)$', AppColophon.AppColView.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()),

+ 157 - 0
Controller/AppColophon.py

@@ -0,0 +1,157 @@
+import time
+import traceback
+
+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 Model.models import App_Colophon,App_Info
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
+
+'''
+# 管理员获取信息
+http://192.168.136.39:8000/appCol/adminQuery?token=local&page=1&line=10
+  管理员删除信息
+http://192.168.136.39:8000/appCol/adminDelete?token=local&id=2
+  管理员添加信息
+http://192.168.136.39:8000/appCol/adminAdd?token=local&id=321&app_id=2&lang=cn&newApp_version=1.1.1&content=我马上升级
+  管理员编辑信息
+http://192.168.136.39:8000/appCol/adminEdit?token=local&id=6&content={"token_val":"9999"}
+'''
+
+
+# 设备信息添加
+class AppColView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(AppColView, 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 == '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 = App_Colophon.objects.filter(id=id)
+                if list.exists():
+                    list.delete()
+                    return response.json(0)
+                else:
+                    return response.json(173)
+            except Exception as e:
+                print(repr(e))
+                return response.json(424, repr(e))
+        else:
+            return response.json(404)
+
+    # 管理员查询接口
+    def do_admin_query(self, request_dict, userID, response):
+        own_perm = ModelService.check_perm(userID, 30)
+        if own_perm is True:
+            page = request_dict.get('page', None)
+            line = request_dict.get('line', None)
+            page = int(page)
+            line = int(line)
+            omqs = App_Colophon.objects.filter()
+            if not omqs.exists():
+                return response.json(0, [])
+            count = omqs.count()
+            order_ql = omqs[(page - 1) * line:page * line]. \
+                values("id", "lang", "newApp_version", "content", "app_id__appBundleId")
+            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)
+        app_id = request_dict.get('app_id', None)
+        lang = request_dict.get('lang', None)
+        newApp_version = request_dict.get('newApp_version', None)
+        content = request_dict.get('content', None)
+        param_flag = CommonService.get_param_flag(
+            data=[lang, newApp_version, content])
+        if param_flag is not True:
+            return response.json(444)
+        try:
+            AppColophon = App_Colophon(
+                app_id=App_Info.objects.get(appBundleId=app_id),
+                lang=lang,
+                newApp_version=newApp_version,
+                content=content)
+            AppColophon.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)
+        lang = request_dict.get('lang', None)
+        newApp_version = request_dict.get('newApp_version', None)
+        content = request_dict.get('content', None)
+        id = request_dict.get('id', None)
+        if not id:
+            return response.json(444, 'content,id')
+        try:
+            print (id)
+            AppColophon = App_Colophon.objects.filter(id=id)
+
+            if AppColophon.exists():
+                AppColophon.update(  lang=lang,
+                newApp_version=newApp_version,
+                content=content)
+                return response.json(0)
+            else:
+                return response.json(173)
+        except Exception:
+            errorInfo = traceback.format_exc()
+            print(errorInfo)
+            return response.json(500, {'details': errorInfo})
+
+
+

+ 2 - 2
Controller/AppInfo.py

@@ -96,7 +96,7 @@ class AppInfo(View):
         downloadLink = request_dict.get('downloadLink', None)
         minAppversion = request_dict.get('minAppversion', None)
         param_flag = CommonService.get_param_flag(
-            data=[appBundleId, appName, systemLanguage,minAppversion, newAppversion, content, app_type, bundleVersion])
+            data=[appBundleId, appName, systemLanguage, minAppversion, newAppversion, content, app_type, bundleVersion])
         if param_flag is not True:
             return response.json(444)
         has_app_info = App_Info.objects.filter(appBundleId=appBundleId)
@@ -167,7 +167,7 @@ class AppInfo(View):
         minAppversion =  request_dict.get('minAppversion', None)
         downloadLink = request_dict.get('downloadLink', None)
         if not all(
-                [appBundleId, appName, systemLanguage,minAppversion, newAppversion, content, app_type, bundleVersion, downloadLink]):
+                [appBundleId, appName, systemLanguage, newAppversion, content, app_type, bundleVersion]):
             return response.json(444)
         try:
             app_info = App_Info.objects.get(id=id)

+ 1 - 1
Controller/UidappController.py

@@ -18,7 +18,7 @@ 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&appBundleId=xxxxxxxx&app_type=2&token_val=ertewtwetrewrt
+http://192.168.136.39:8000/uidApp/adminAdd?token=local&uid=321&appBundleId=com.ansjer.accloud&app_type=2&token_val=ertewtwetrewrt
   管理员编辑信息
 http://192.168.136.39:8000/uidApp/adminEdit?token=local&id=6&content={"token_val":"9999"}
 '''

+ 16 - 1
Model/models.py

@@ -443,7 +443,7 @@ class App_Info(models.Model):
     appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
     systemLanguage = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
     newAppversion = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
-    minAppversion = models.CharField(blank=True, max_length=12, verbose_name=u'最小系统版本')
+    minAppversion = models.CharField(default='',blank=True, max_length=12, verbose_name=u'最小系统版本')
     bundleVersion = models.CharField(blank=True, max_length=12, verbose_name=u'项目版本')
     content = models.TextField(blank=True, default='', verbose_name=u'更新内容')
     app_type = models.IntegerField(default=0, blank=True, verbose_name=u'app类型')
@@ -460,6 +460,21 @@ class App_Info(models.Model):
         verbose_name_plural = verbose_name
         ordering = ('id',)
 
+class App_Colophon(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    app_id = models.ForeignKey(App_Info, to_field='id', on_delete=models.CASCADE, verbose_name='appid编号')
+    lang = models.CharField(blank=True, max_length=32, verbose_name=u'系统语言')
+    newApp_version = models.CharField(blank=True, max_length=12, verbose_name=u'系统版本')
+    content = models.TextField(blank=True, default='', verbose_name=u'更新内容')
+
+    def __str__(self):
+        return self.id
+
+    class Meta:
+        db_table = 'app_colophon'
+        verbose_name = u'app信息表的记录关联到App_Info'
+        verbose_name_plural = verbose_name
+        ordering = ('id',)
 
 class Order_Model(models.Model):
     orderID = models.CharField(blank=True, max_length=20, primary_key=True, verbose_name=u'订单id')