pengzhibo168 %!s(int64=5) %!d(string=hai) anos
pai
achega
39a28705be
Modificáronse 3 ficheiros con 168 adicións e 2 borrados
  1. 5 1
      Controller/FeedBack.py
  2. 146 0
      Controller/PushDeploy.py
  3. 17 1
      Model/models.py

+ 5 - 1
Controller/FeedBack.py

@@ -107,6 +107,8 @@ class FeedBackView(View):
         app_version = request_dict.get('app_version', None)
         appBundleId = request_dict.get('appBundleId', None)
         email = request_dict.get('email', None)
+        score = request_dict.get('score', None)
+
         try:
             with transaction.atomic():
                 fb = FeedBackModel()
@@ -131,6 +133,8 @@ class FeedBackView(View):
                     fb.appBundleId = appBundleId
                 if email:
                     fb.email = email
+                if score:
+                    fb.score = score
                 fb.userID_id = userID
                 fb.save()
                 if res_1:
@@ -211,7 +215,7 @@ class FeedBackView(View):
                                                                     'uid', 'os_version', 'phone_model', 'product_type',
                                                                     'updTime', 'userID__username', 'userID__phone',
                                                                     'userID__userEmail', 'app_version', 'appBundleId',
-                                                                    'email'
+                                                                    'email', 'score'
                                                                     )
                 sid_list = []
                 print(fb_qs)

+ 146 - 0
Controller/PushDeploy.py

@@ -0,0 +1,146 @@
+#!/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/12/23 10:30
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: PushDeploy.py
+@Contact: pzb3076@163.com
+"""
+import json
+import math
+
+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 pushDeployModel
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
+import time
+
+
+class PushDeployView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(PushDeployView, 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 == 'adminAdd':
+            return self.do_add(request_dict, response,userID)
+        elif operation == 'adminDelete':
+            return self.do_delete(request_dict, response,userID)
+        elif operation == 'adminUpdate':
+            return self.do_update(request_dict, response,userID)
+        elif operation == 'adminQuery':
+            return self.do_query(request_dict,response, userID)
+        else:
+            return response.json(414)
+
+    def do_add(self, request_dict, response, userID):
+        own_perm = ModelService.check_perm(userID, 40)
+        if not own_perm:
+            return response.json(404)
+        name = request_dict.get('name', None)
+        key = request_dict.get('key', None)
+        secret = request_dict.get('secret', None)
+        pem = request_dict.get('pem', None)
+        type = request_dict.get('type', None)
+        nowTime = int(time.time())
+        try:
+            pushDeployModel.objects.create(addTime=nowTime, updTime=nowTime, name=name, key=key, secret=secret,pem=pem,
+                                           type=type)
+        except Exception as e:
+            return response.json(10, repr(e))
+        res = list(pushDeployModel.objects.values())
+        return response.json(0, res)
+
+    def do_query(self,request_dict, response,userID):
+        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)
+            deviceContent = request_dict.get('content', None)
+            if deviceContent:
+                try:
+                    searchCondition = json.loads(deviceContent)
+                except Exception as e:
+                    return response.json(10, repr(e))
+                else:
+                    kwargs = CommonService.get_kwargs(data=searchCondition)
+                    uid_user_qs = pushDeployModel.objects.filter(**kwargs).order_by('-id')
+                    if not uid_user_qs.exists():
+                        return response.json(0, [])
+                    count = uid_user_qs.count()
+                    uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
+                        values('id', 'name', 'key', 'secret', 'pem', 'type',
+                               'addTime', 'updTime')
+                    uid_user_ls = CommonService.qs_to_list(uid_user_ql)
+                    return response.json(0, {'datas': uid_user_ls, 'count': count})
+            else:
+                uid_user_qs = pushDeployModel.objects.all().order_by('-id')
+                if not uid_user_qs.exists():
+                    return response.json(0, [])
+                count = uid_user_qs.count()
+                uid_user_ql = uid_user_qs[(page - 1) * line:page * line]. \
+                    values('id', 'name', 'key', 'secret', 'pem', 'type',
+                           'addTime', 'updTime')
+                uid_user_ls = CommonService.qs_to_list(uid_user_ql)
+                return response.json(0, {'datas': uid_user_ls, 'count': count})
+        else:
+            return response.json(404)
+
+    def do_update(self, request_dict, response,userID):
+        own_perm = ModelService.check_perm(userID, 30)
+        if not own_perm:
+            return response.json(404)
+        request_dict.pop('token')
+        nowTime = int(time.time())
+        id = request_dict.get('id', None)
+        try:
+            pushDeployModel.objects.filter(id=id).update(updTime=nowTime, **request_dict)
+        except Exception as e:
+            return response.json(10, repr(e))
+        # res = list(pushDeployModel.objects.values())
+        return response.json(0, {'updTime': nowTime})
+
+    def do_delete(self,request_dict, response, userID):
+        own_perm = ModelService.check_perm(userID, 10)
+        if not own_perm:
+            return response.json(404)
+        id = request_dict.get('id', None)
+        try:
+            pushDeployModel.objects.filter(id=id).delete()
+        except Exception as e:
+            return response.json(10, repr(e))
+        res = list(pushDeployModel.objects.values())
+        return response.json(0, res)
+

+ 17 - 1
Model/models.py

@@ -343,7 +343,7 @@ class FeedBackModel(models.Model):
 
     appBundleId = models.CharField(max_length=32, default='', verbose_name='app版本appBundleId')
     email = models.CharField(max_length=32, default='', verbose_name='app版本email')
-
+    score = models.CharField(max_length=32, default='0', verbose_name='评分--星星数')
     def __str__(self):
         return self.id
 
@@ -748,3 +748,19 @@ class UidUserModel(models.Model):
         ordering = ('-data_joined',)
         verbose_name = u'用户设备ap表'
         verbose_name_plural = verbose_name
+
+class pushDeployModel(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name='主键自增id')
+    name = models.CharField(max_length=32, default='',verbose_name=u'推送配置名称')
+    key = models.CharField(max_length=32, default='',verbose_name=u'推送配置key')
+    secret = models.CharField(max_length=32, default='', verbose_name=u'推送配置密钥')
+    pem = models.CharField(max_length=32, default='', verbose_name=u'推送配置路径')
+    type = models.CharField(max_length=32, default='', verbose_name=u'推送配置类型')  # ios 1,android 2
+    addTime = models.IntegerField(verbose_name='添加时间', default=0)
+    updTime = models.IntegerField(verbose_name='修改时间', default=0)
+
+    class Meta:
+        db_table = 'push_deploy'
+        verbose_name = '推送配置表'
+        verbose_name_plural = verbose_name
+        ordering = ('-id',)