chenjunkai 5 年之前
父節點
當前提交
cb20e28c6d
共有 3 個文件被更改,包括 105 次插入41 次删除
  1. 84 24
      Controller/AppInfo.py
  2. 20 17
      Controller/SysMsg.py
  3. 1 0
      Model/models.py

+ 84 - 24
Controller/AppInfo.py

@@ -1,15 +1,18 @@
-from django.views.generic.base import View
+import time
+import traceback
+import os
+from django.shortcuts import render_to_response
 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_Info, App_Colophon
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
-from Model.models import App_Info,App_Colophon
-import traceback
-from Object.TokenObject import TokenObject
-from Object.ResponseObject import ResponseObject
-from django.shortcuts import render_to_response,render
-import simplejson as json
-import re,time
+from Ansjer.config import BASE_DIR,SERVER_DOMAIN
+
 '''
 http://192.168.136.45:8077/appInfo?operation=add&token=test&appBundleId=123456&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A1%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=1234&bundleVersion=1234
 http://192.168.136.45:8077/appInfo?operation=update&token=test&appBundleId=1234&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A3%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=555&id=6
@@ -27,10 +30,12 @@ class AppInfo(View):
 
     def get(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
+        self.request = request
         return self.validation(request_dict=request.GET)
 
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
+        self.request = request
         return self.validation(request_dict=request.POST)
 
     def validation(self, request_dict, *args, **kwargs):
@@ -79,7 +84,7 @@ class AppInfo(View):
                                          'downloadLink': app_info.downloadLink,
                                          'id': app_info.id,
                                          'bundleVersion': app_info.bundleVersion,
-                                         'minAppversion':app_info.minAppversion
+                                         'minAppversion': app_info.minAppversion
                                          })
         else:
             return response.json(444, 'app_type,appBundleId')
@@ -97,6 +102,7 @@ class AppInfo(View):
         bundleVersion = request_dict.get('bundleVersion', None)
         downloadLink = request_dict.get('downloadLink', None)
         minAppversion = request_dict.get('minAppversion', None)
+        f = self.request.FILES.get('file', None)
         param_flag = CommonService.get_param_flag(
             data=[appBundleId, appName, systemLanguage, minAppversion, newAppversion, content, app_type, bundleVersion])
         if param_flag is not True:
@@ -106,16 +112,31 @@ class AppInfo(View):
             return response.json(174)
         else:
             try:
-                app_Info = App_Info(
-                    appBundleId=appBundleId,
-                    appName=appName,
-                    newAppversion=newAppversion,
-                    systemLanguage=systemLanguage,
-                    content=content,
-                    app_type=app_type,
-                    bundleVersion=bundleVersion,
-                    minAppversion =minAppversion,
-                    downloadLink=downloadLink)
+                create_dict = {
+                    'appBundleId': appBundleId,
+                    'appName': appName,
+                    'newAppversion': newAppversion,
+                    'systemLanguage': systemLanguage,
+                    'content': content,
+                    'app_type': app_type,
+                    'bundleVersion': bundleVersion,
+                    'minAppversion': minAppversion,
+                    'downloadLink': downloadLink
+                }
+                # 产品图片
+                if f:
+                    try:
+                        rv_path = 'static/app/image/' + appBundleId + '.png'
+                        as_path = os.path.join(BASE_DIR, rv_path)
+                        if os.path.exists(as_path):
+                            os.remove(as_path)
+                        with open(as_path, 'wb+') as destination:
+                            for chunk in f.chunks():
+                                destination.write(chunk)
+                        create_dict['img'] = rv_path
+                    except Exception as e:
+                        pass
+                app_Info = App_Info(**create_dict)
                 app_Info.save()
             except Exception:
                 errorInfo = traceback.format_exc()
@@ -131,7 +152,7 @@ class AppInfo(View):
                            'app_type': app_Info.app_type,
                            'id': app_Info.id,
                            'downloadLink': downloadLink,
-                           'minAppversion':app_Info.minAppversion,
+                           'minAppversion': app_Info.minAppversion,
                            'bundleVersion': app_Info.bundleVersion}
                     return response.json(0, res)
                 else:
@@ -151,6 +172,9 @@ class AppInfo(View):
             count = queryset.count()
             res = queryset[(page - 1) * line:page * line]
             send_json = CommonService.qs_to_dict(res)
+            for k, v in enumerate(send_json["datas"]):
+                img = 'http://www.dvema.com/appInfo/img/'+send_json['datas'][k]['img']
+                send_json["datas"][k]['img'] = img
             send_json['count'] = count
             return response.json(0, send_json)
         return response.json(0)
@@ -167,7 +191,7 @@ class AppInfo(View):
         content = request_dict.get('content', None)
         app_type = request_dict.get('app_type', None)
         bundleVersion = request_dict.get('bundleVersion', None)
-        minAppversion =  request_dict.get('minAppversion', None)
+        minAppversion = request_dict.get('minAppversion', None)
         downloadLink = request_dict.get('downloadLink', None)
         if not all(
                 [appBundleId, appName, systemLanguage, newAppversion, content, app_type, bundleVersion]):
@@ -226,13 +250,14 @@ class AppVersionView(View):
         #     return render_to_response('appVersionLists_cn.html')
         # else:
         #     return render_to_response('appVersionLists_en.html')
-        queryset = App_Colophon.objects.filter(lang=lang,app_id__appBundleId=appBundleId,app_id__app_type=app_type).order_by('-version_time','-newApp_version')
+        queryset = App_Colophon.objects.filter(lang=lang, app_id__appBundleId=appBundleId,
+                                               app_id__app_type=app_type).order_by('-version_time', '-newApp_version')
         queryset_dict = CommonService.qs_to_dict(queryset).get('datas')
-        print (queryset_dict)
+        print(queryset_dict)
         # 修改数据逻辑改装数据返回值
         for k, v in enumerate(queryset_dict):
             content = v['fields']['content']
-            content = content.split('\n') #分割字符串
+            content = content.split('\n')  # 分割字符串
             v['fields']['content'] = content
             # 时间戳转日期
             version_time = v['fields']['version_time']
@@ -241,5 +266,40 @@ class AppVersionView(View):
         return render_to_response('appVerList.html', locals())
 
 
+class SysMsgView(View):
 
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation', None)
+        return self.validation(request.GET, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation', None)
+        return self.validation(request.POST, operation)
+
+    def validation(self, request_dict, operation):
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        tko = TokenObject(token)
+        if tko.code == 0:
+            userID = tko.userID
+            if operation == 'pushFeedBack':
+                return self.do_push_msg_feed_back(userID, request_dict, response)
+            elif operation == 'query':
+                return self.do_query(userID, request_dict, response)
+            elif operation == 'queryByAdmin':
+                return self.do_query_by_admin(userID, request_dict, response)
+            elif operation == 'update':
+                return self.do_update(userID, request_dict, response)
+            elif operation == 'delete':
+                return self.do_delete(userID, request_dict, response)
+            elif operation == 'deleteByAdmin':
+                return self.do_delete_by_admin(userID, request_dict, response)
+            elif operation == 'massPush':
+                return self.do_mass_push(userID, request_dict, response)
+            else:
+                return response.json(414)
 
+    def do_img_get(self):
+        return

+ 20 - 17
Controller/SysMsg.py

@@ -59,24 +59,27 @@ class SysMsgView(View):
             return response.json(tko.code)
 
     def do_mass_push(self, userID, request_dict, response):
-        app_list = request_dict.get('app_list')
-        msg = request_dict.get('msg')
-        app_list = app_list.split(',')
-        nowTime = int(time.time())
-        if app_list:
-            ue_filter = UserExtendModel.objects.filter(appBundleId__in=app_list)
-            ue_count = ue_filter.count()
-            range_count = math.ceil(ue_count / 5000)
-            for i in range(range_count):
-                querysetlist = []
-                userID_list = ue_filter.values_list('userID_id', flat=True)
-                for urd in userID_list:
-                    querysetlist.append(SysMsgModel(userID_id=urd, msg=msg, addTime=nowTime, updTime=nowTime))
-                SysMsgModel.objects.bulk_create(querysetlist)
-            return response.json(0)
+        own_perm = ModelService.check_perm(userID, 10)
+        if own_perm:
+            app_list = request_dict.get('app_list')
+            msg = request_dict.get('msg')
+            app_list = app_list.split(',')
+            nowTime = int(time.time())
+            if app_list:
+                ue_filter = UserExtendModel.objects.filter(appBundleId__in=app_list)
+                ue_count = ue_filter.count()
+                range_count = math.ceil(ue_count / 5000)
+                for i in range(range_count):
+                    querysetlist = []
+                    userID_list = ue_filter.values_list('userID_id', flat=True)
+                    for urd in userID_list:
+                        querysetlist.append(SysMsgModel(userID_id=urd, msg=msg, addTime=nowTime, updTime=nowTime))
+                    SysMsgModel.objects.bulk_create(querysetlist)
+                return response.json(0)
+            else:
+                return response.json(444, 'app_list')
         else:
-            return response.json(444, 'app_list')
-        
+            return response.json(404)
 
     def do_push_msg_feed_back(self, userID, request_dict, response):
         own_perm = ModelService.check_perm(userID, 10)

+ 1 - 0
Model/models.py

@@ -512,6 +512,7 @@ class App_Info(models.Model):
     add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
     update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
     downloadLink = models.TextField(blank=True, default='', verbose_name='升级')
+    img = models.CharField(default='', max_length=128, verbose_name='图片路径')
 
     def __str__(self):
         return self.id