Browse Source

获取app信息数组

chenjunkai 5 năm trước cách đây
mục cha
commit
a49e6fd121

+ 1 - 0
Ansjer/urls.py

@@ -149,6 +149,7 @@ urlpatterns = [
     url(r'^deviceShadow/update', EquipmentManager.update_device_shadow),
 
     url(r'^log/getUploadUrl', EquipmentStatus.getUploadLogUrl),
+    url(r'^app/getIdData', AppInfo.AppIdDataView.as_view()),
     # 分区分流
     path('Test', Test.Test.as_view()),
     # 路由加参数参考

+ 20 - 30
Controller/AppInfo.py

@@ -11,7 +11,7 @@ from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
-from Ansjer.config import BASE_DIR,SERVER_DOMAIN
+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
@@ -173,7 +173,7 @@ class AppInfo(View):
             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']
+                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)
@@ -266,40 +266,30 @@ class AppVersionView(View):
         return render_to_response('appVerList.html', locals())
 
 
-class SysMsgView(View):
+class AppIdDataView(View):
 
-    def get(self, request, *args, **kwargs):
+    def get(self, request):
         request.encoding = 'utf-8'
-        operation = kwargs.get('operation', None)
-        return self.validation(request.GET, operation)
+        return self.validation(request_dict=request.GET)
 
-    def post(self, request, *args, **kwargs):
+    def post(self, request):
         request.encoding = 'utf-8'
-        operation = kwargs.get('operation', None)
-        return self.validation(request.POST, operation)
+        return self.validation(request_dict=request.POST)
 
-    def validation(self, request_dict, operation):
+    def validation(self, request_dict):
         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
+            # 获取appbulidID
+            res = {'ios': [], 'android': []}
+            qs = App_Info.objects.filter().values('appBundleId', 'appName', 'app_type')
+            print(qs)
+            for q in qs:
+                if q['app_type'] == 1:
+                    res['ios'].append({'appBundleId': q['appBundleId'], 'appName': q['appName']})
+                if q['app_type'] == 2:
+                    res['android'].append({'appBundleId': q['appBundleId'], 'appName': q['appName']})
+            return response.json(0, res)
+        else:
+            return response.json(tko.code)

+ 26 - 0
Controller/SysManage.py

@@ -50,3 +50,29 @@ def updateLog(request):
         pass
     return response.json(0)
 
+
+# 文件流下载
+@csrf_exempt
+def downloadOTAInterface(request, fullPath, *callback_args, **callback_kwargs):
+    res = ResponseObject()
+    print('fullPath:')
+    print(fullPath)
+    if fullPath:
+        if os.path.isfile(fullPath):
+            try:
+                wrapper = FileWrapper(open(fullPath, 'rb'))
+                response = HttpResponse(wrapper, content_type="application/octet-stream")
+                response['Content-Length'] = os.path.getsize(fullPath)
+                response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(fullPath)
+                response['Content-MD5'] = getMD5orSHA265(fullPath)
+                # 校验文件md5值
+                response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
+                response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
+                response['Content-Error'] = res.formal(0)
+                return response
+            except Exception as e:
+                return res.json(906, repr(e))
+        else:
+            return res.json(907)
+    else:
+        return res.json(444, 'fullPath')

+ 8 - 2
Controller/SysMsg.py

@@ -19,6 +19,7 @@ from Model.models import SysMsgModel, FeedBackModel, UserExtendModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.ModelService import ModelService
+from django.db.models import Q
 
 
 class SysMsgView(View):
@@ -61,12 +62,17 @@ class SysMsgView(View):
     def do_mass_push(self, userID, request_dict, response):
         own_perm = ModelService.check_perm(userID, 10)
         if own_perm:
-            app_list = request_dict.get('app_list')
-            msg = request_dict.get('msg')
+            app_list = request_dict.get('app_list', None)
+            msg = request_dict.get('msg', None)
             app_list = app_list.split(',')
+            region = request_dict.get('region', None)  # en英文 cn中文
             nowTime = int(time.time())
             if app_list:
                 ue_filter = UserExtendModel.objects.filter(appBundleId__in=app_list)
+                if region == 'cn':
+                    ue_filter.filter(userID__language=region)
+                elif region == 'en':
+                    ue_filter.filter(~Q(userID__language='cn'))
                 ue_count = ue_filter.count()
                 range_count = math.ceil(ue_count / 5000)
                 for i in range(range_count):

+ 2 - 17
Controller/UserBrandController.py

@@ -19,9 +19,9 @@ from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic.base import View
 
-from Ansjer.config import DOMAIN_HOST, AWS_DynamoDB_REGION, AWS_DynamoDB_ACCESS_KEY, AWS_DynamoDB_SECRET_KEY, \
+from Ansjer.config import AWS_DynamoDB_REGION, AWS_DynamoDB_ACCESS_KEY, AWS_DynamoDB_SECRET_KEY, \
     USER_BRAND, USER_BRAND_ALL
-from Model.models import Device_User, UserExtendModel
+from Model.models import Device_User
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -509,21 +509,6 @@ class UserBrandInfo(View):
                 'ip': self.clientIP
             }
             # 增加用户扩展信息
-            user_extend_qs = UserExtendModel.objects.filter(userID_id=userID)
-            if user_extend_qs.exists():
-                update_dict = {
-                    'updTime': addTime,
-                    'appBundleId': appId
-                }
-                user_extend_qs.update(**update_dict)
-            else:
-                create_dict = {
-                    'addTime': addTime,
-                    'updTime': addTime,
-                    'appBundleId': appId,
-                    'userID_id': userID
-                }
-                UserExtendModel.objects.create(**create_dict)
             redisObj = RedisObject()
             add_user_brand_all_data = json.dumps(add_data)
             logKey = USER_BRAND_ALL

+ 21 - 2
Controller/UserController.py

@@ -13,7 +13,7 @@
 """
 import datetime
 import traceback
-
+import time
 import simplejson as json
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from django.db.models import Q
@@ -26,7 +26,7 @@ from ratelimit.decorators import ratelimit
 
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
-from Model.models import Device_User, Role, SysMsgModel, UidPushModel, UidSetModel
+from Model.models import Device_User, Role, SysMsgModel, UidPushModel, UidSetModel, UserExtendModel
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -1265,6 +1265,8 @@ class InitInfoView(View):
         push_type = request_dict.get('push_type', None)
         appBundleId = request_dict.get('appBundleId', None)
         tz = request_dict.get('tz', None)
+        is_cn = request_dict.get('is_cn', None)
+        nowTime = int(time.time())
         if all([token_val, push_type, appBundleId]):
             if push_type == 0:
                 if appBundleId not in APNS_CONFIG.keys():
@@ -1289,6 +1291,23 @@ class InitInfoView(View):
                     }
                     UidPushModel.objects.filter(userID_id=userID, m_code=m_code, uid_set_id__in=uid_set_id_list). \
                         update(**update_dict)
+            if appBundleId:
+                user_extend_qs = UserExtendModel.objects.filter(userID_id=userID)
+                if user_extend_qs.exists():
+                    update_dict = {
+                        'updTime': nowTime,
+                        'appBundleId': appBundleId,
+                        # 'is_cn':
+                    }
+                    user_extend_qs.update(**update_dict)
+                else:
+                    create_dict = {
+                        'addTime': nowTime,
+                        'updTime': nowTime,
+                        'appBundleId': appBundleId,
+                        'userID_id': userID
+                    }
+                    UserExtendModel.objects.create(**create_dict)
         res = {
             'usmsg': sm_count
         }

+ 1 - 1
Service/MiscellService.py

@@ -201,7 +201,7 @@ else:
     user_brand = 'test_access_log'
 
 # my.table_delete(user_brand)
-my.access_log_table_create(user_brand)
+# my.access_log_table_create(user_brand)