Przeglądaj źródła

Merge branch 'test' of http://192.168.136.99:3000/servers/ASJServer

locky 3 lat temu
rodzic
commit
3d4d1f40a8

+ 127 - 1
AdminController/VersionManagementController.py

@@ -2,10 +2,12 @@
 # -*- coding: utf-8 -*-
 import os
 import hashlib
+import time
+
 from django.views.generic.base import View
 
 from Ansjer.config import BASE_DIR
-from Model.models import Equipment_Version
+from Model.models import Equipment_Version, App_Info, AppSetModel
 from Object.TokenObject import TokenObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
@@ -41,6 +43,16 @@ class VersionManagement(View):
                 return self.editVersionInformation(request_dict, response)
             elif operation == 'deleteEquipmentVersion':
                 return self.deleteEquipmentVersion(request_dict, response)
+            elif operation == 'getAppVersionList':
+                return self.getAppVersionList(request_dict, response)
+            elif operation == 'addOrEditAppInfo':
+                return self.addOrEditAppInfo(request_dict, response)
+            elif operation == 'deleteAppVersion':
+                return self.deleteAppVersion(request_dict, response)
+            elif operation == 'getAppSet':
+                return self.getAppSet(request_dict, response)
+            elif operation == 'editAppSet':
+                return self.editAppSet(request_dict, response)
             else:
                 return response.json(404)
 
@@ -178,3 +190,117 @@ class VersionManagement(View):
             print(e)
             return response.json(500, repr(e))
 
+    def getAppVersionList(self, request_dict, response):
+        app_type = request_dict.get('app_type', None)
+        appName = request_dict.get('appName', None)
+        version = request_dict.get('version', None)
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+
+        try:
+            app_info_qs = App_Info.objects.filter()
+            if app_type:
+                if app_type == 'IOS':
+                    app_type = 1
+                elif app_type == '安卓':
+                    app_type = 2
+                else:
+                    app_type = 3
+                app_info_qs = app_info_qs.filter(app_type=app_type)
+            if appName:
+                app_info_qs = app_info_qs.filter(appName__contains=appName)
+            if version:
+                app_info_qs = app_info_qs.filter(version__contains=version)
+
+            total = app_info_qs.count()
+            app_info_qs = app_info_qs.values()[(page - 1) * line:page * line]
+            app_info_list = CommonService.qs_to_list(app_info_qs)
+            return response.json(0, {'list': app_info_list, 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def addOrEditAppInfo(self, request_dict, response):
+        id = request_dict.get('id', None)
+        appName = request_dict.get('appName', '')
+        appBundleId = request_dict.get('appBundleId', '')
+        bundleVersion = request_dict.get('bundleVersion', '')
+        newAppversion = request_dict.get('newAppversion', '')
+        minAppversion = request_dict.get('minAppversion', '')
+        content = request_dict.get('content', '')
+        app_type = request_dict.get('app_type', '')
+        downloadLink = request_dict.get('downloadLink', '')
+
+        try:
+            app_type = int(app_type)
+            data_dict = {'appName': appName, 'appBundleId': appBundleId, 'bundleVersion': bundleVersion,
+                         'newAppversion': newAppversion, 'minAppversion': minAppversion, 'content': content,
+                         'app_type': app_type, 'downloadLink': downloadLink}
+            if not id:      # 添加
+                App_Info.objects.create(**data_dict)
+            else:           # 编辑
+                app_info_qs = App_Info.objects.filter(id=id)
+                if not app_info_qs.exists():
+                    return response.json(173)
+                app_info_qs.update(**data_dict)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def deleteAppVersion(self, request_dict, response):
+        appBundleId = request_dict.get('appBundleId', None)
+
+        if not appBundleId:
+            return response.json(444)
+
+        try:
+            App_Info.objects.filter(appBundleId=appBundleId).delete()
+            AppSetModel.objects.filter(appBundleId=appBundleId).delete()
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def getAppSet(self, request_dict, response):
+        appBundleId = request_dict.get('appBundleId', None)
+
+        if not appBundleId:
+            return response.json(444)
+
+        try:
+            app_set_qs = AppSetModel.objects.filter(appBundleId=appBundleId).values('content')
+            if app_set_qs.exists():
+                content = app_set_qs[0]['content']
+                return response.json(0, {'content': content})
+            else:
+                nowTime = int(time.time())
+                AppSetModel.objects.create(
+                    appBundleId=appBundleId,
+                    addTime=nowTime,
+                    updTime=nowTime
+                )
+                return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def editAppSet(self, request_dict, response):
+        appBundleId = request_dict.get('appBundleId', None)
+        content = request_dict.get('content', None)
+
+        if not all([appBundleId, content]):
+            return response.json(444)
+
+        try:
+            AppSetModel.objects.filter(appBundleId=appBundleId).update(content=content)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 8 - 1
Controller/AppSetController.py

@@ -12,7 +12,7 @@
 @Contact: chanjunkai@163.com
 """
 from Ansjer.config import SERVER_TYPE
-from Model.models import AppSetModel
+from Model.models import AppSetModel,PromotionRuleModel
 from django.views.generic.base import View
 from Object.RedisObject import RedisObject
 from Object.TokenObject import TokenObject
@@ -67,6 +67,13 @@ class AppSetView(View):
             if not app_set_qs[0]['content']:
                 return response.json(0)
             dict_json = json.loads(app_set_qs[0]['content'])
+            #加入促销弹窗
+            promotion = PromotionRuleModel.objects.filter(status=1).values('startTime','endTime','popups')
+            if promotion.exists():
+                dict_json['popupsStartTime'] = promotion[0]['startTime']
+                dict_json['popupsEndTime'] = promotion[0]['endTime']
+                dict_json['popupsContent'] = json.loads(promotion[0]['popups']).get(lang,'')
+                dict_json['nowTime'] = int(time.time())
             if 'editionUpgrading' in dict_json:
                 if dict_json['editionUpgrading'] == 1:
                     if lang == 'cn':

+ 23 - 6
Controller/CloudStorage.py

@@ -235,8 +235,21 @@ class CloudStorageView(View):
             #是否促销
             nowTime = int(time.time())
             promotion = PromotionRuleModel.objects.filter(status=1, startTime__lte=nowTime,
-                                                          endTime__gte=nowTime).values('id','ruleConfig')
-            is_promotion = 1 if promotion.exists() else 0
+                                                          endTime__gte=nowTime).values('id','ruleConfig','ruleName',
+                                                                                       'startTime','endTime','ruleDesc')
+            if promotion.exists():
+                promotion = {
+                    'is_promotion': 1,
+                    'promotionStartTime': promotion[0]['startTime'],
+                    'promotionEndTime': promotion[0]['endTime'],
+                    'promotionName': json.loads(promotion[0]['ruleName']).get(lang, ''),
+                    'promotionDesc': json.loads(promotion[0]['ruleDesc']).get(lang, ''),
+                    'nowTime':int(time.time())
+                }
+            else:
+                promotion = {
+                    'is_promotion': 0
+                }
             result = {
                 'meals': res,
                 'extra':
@@ -244,7 +257,7 @@ class CloudStorageView(View):
                         'cloud_banner': SERVER_DOMAIN+'web/images/cloud_cn_banner.png',
                         'cloud_en_baner': SERVER_DOMAIN_SSL+'web/images/cloud_en_banner.png'
                     },
-                'is_promotion':is_promotion
+                'promotion':promotion
             }
             return response.json(0, result)
         else:
@@ -418,9 +431,13 @@ class CloudStorageView(View):
         bv_qs = UID_Bucket.objects.filter(uid=uid, endTime__gte=now_time ,channel=channel).values('bucket_id').order_by('addTime')
         if not bv_qs.exists():
             return response.json(10030)
+        # vh_qs = VodHlsModel.objects.filter \
+        #     (uid=uid, channel=channel, endTime__gte=now_time,time__range=(startTime, endTime), bucket_id=bv_qs[0]['bucket_id']). \
+        #     values("id", "time", "sec", "bucket__bucket", "fg", "bucket__endpoint", "bucket__region", "bucket__mold")
         vh_qs = VodHlsModel.objects.filter \
-            (uid=uid, channel=channel, endTime__gte=now_time,time__range=(startTime, endTime), bucket_id=bv_qs[0]['bucket_id']). \
+            (uid=uid, channel=channel, endTime__gte=now_time, time__range=(startTime, endTime)). \
             values("id", "time", "sec", "bucket__bucket", "fg", "bucket__endpoint", "bucket__region", "bucket__mold")
+
         vod_play_list = []
         if not vh_qs.exists():
             return response.json(0, vod_play_list)
@@ -1512,7 +1529,7 @@ class CloudStorageView(View):
                                                               ,updateTime=nowTime,use_status=1, has_unused=has_unused)
                     Unused_Uid_Meal.objects.filter(id=unused_id).delete()
                     StsCrdModel.objects.filter(uid=uid).delete()  # 删除sts记录
-                    VodHlsModel.objects.filter(uid=uid).delete()  # 删除播放列表,后期数据量多时应该考虑延后删除
+                    # VodHlsModel.objects.filter(uid=uid).delete()  # 删除播放列表,后期数据量多时应该考虑延后删除
             except Exception:
                 return response.json(474)
             return response.json(0)
@@ -1885,7 +1902,7 @@ def updateUnusedUidBucket(request):
                                                           has_unused=has_unused)
                 Unused_Uid_Meal.objects.filter(id=unused['id']).delete()
                 StsCrdModel.objects.filter(uid=expired_uid_bucket['uid']).delete()  # 删除sts记录
-                VodHlsModel.objects.filter(uid=expired_uid_bucket['uid']).delete()  # 删除播放列表,后期数据量多时应该考虑延后删除
+                # VodHlsModel.objects.filter(uid=expired_uid_bucket['uid']).delete()  # 删除播放列表,后期数据量多时应该考虑延后删除
         except Exception:
             continue
     # UID_Bucket.objects.filter(id__in=list(id_list)).update(use_status=2)  # 更新过期云存关联套餐状态

+ 5 - 2
Controller/EquipmentManagerV3.py

@@ -267,6 +267,7 @@ class EquipmentManagerV3(View):
             return response.json(444, {'param': 'uidContent'})
 
         try:
+            deviceNumber = 0            # 添加成功数量
             add_success_flag = False    # 添加成功标识
             exception_flag = False      # 异常标识
             exists_flag = False         # 已存在标识
@@ -285,8 +286,8 @@ class EquipmentManagerV3(View):
                 View_Account = uid_content['viewAccount']
                 encryptPassword = uid_content['encryptPassword']
                 View_Password = self.decode_pwd(encryptPassword)
-                if not all([UID, NickName, View_Account, Type, ChannelIndex]):  # Type和ChannelIndex可能为0
-                    return response.json(444, {'param': 'UID, NickName, View_Account, Type, ChannelIndex'})
+                if not all([UID, NickName, View_Account]):  # Type和ChannelIndex可能为0
+                    return response.json(444, {'param': 'UID, NickName, View_Account'})
 
                 if not re_uid.match(UID):   # 检查uid长度
                     return response.json(444, {'error uid length': UID})
@@ -449,6 +450,8 @@ class EquipmentManagerV3(View):
                 iotqs = iotdeviceInfoModel.objects.filter(serial_number=dvql[0]['serial_number'])
                 if iotqs.exists():
                     success_res['iot'] = {'endpoint': iotqs[0].endpoint, 'token_iot_number': iotqs[0].endpoint}
+                deviceNumber += 1
+                success_res['deviceNumber'] = deviceNumber
                 add_success_flag = True
         except Exception as e:
             print(e)

+ 5 - 2
Model/models.py

@@ -641,11 +641,14 @@ class Order_Model(models.Model):
 
 class PromotionRuleModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='主键')
-    ruleName = models.CharField(max_length=50, default='', verbose_name='规则名字')
-    ruleConfig = models.CharField(max_length=2000, default='', verbose_name='规则配置')
+    ruleName = models.TextField(default='', verbose_name='规则名字')                     #json格式, 例: {"cn":"黑色星期五","en":"Black Friday"}
+    ruleDesc = models.TextField(default='', verbose_name='规则描述')                     #json格式,   例:  {"cn":"买一送一","en":"buy one get one free"}
+    ruleConfig = models.CharField(max_length=2000, default='', verbose_name='规则配置')  #json格式, 例: {"buy": 1, "get": 1}
     startTime = models.IntegerField(verbose_name='促销活动开始时间', default=0)
     endTime = models.IntegerField(verbose_name='促销活动结束时间', default=0)
     status = models.SmallIntegerField(default=0, verbose_name='活动状态:0未进行;1进行中')
+    remark = models.CharField(max_length=50, default='', verbose_name='备注')
+    popups = models.CharField(max_length=2000, default='', verbose_name='app弹窗消息')   #json格式 ,例: {"cn":"买一送一","en":"buy one get one free"}
 
     def __str__(self):
         return self.id