Преглед изворни кода

Merge branch 'lang' into test

lang пре 3 година
родитељ
комит
92e2af01fb
3 измењених фајлова са 87 додато и 43 уклоњено
  1. 9 8
      Controller/CouponController.py
  2. 4 0
      Controller/PaymentCycle.py
  3. 74 35
      Controller/TestApi.py

+ 9 - 8
Controller/CouponController.py

@@ -50,25 +50,26 @@ class CouponView(View):
         username = request_dict.get('username', None)
         num = request_dict.get('num', None)
         userID = Device_User.objects.filter(username=username).values('userID')[0]['userID']
+        coupon_config_id = request_dict.get('coupon_config_id', 1)
 
         try:
             data = []
             # CouponConfigModel.objects.create(type=1, use_range=1, coupon_discount=8)
-            # CouponLang.objects.create(
-            #     lang='en',
-            #     instruction='for the first month of the Auto-renewal plan',
-            #     quota='20.0%',
-            #     unit='off',
-            #     remark='This coupon can be used on each device once only.'
+            # CouponLangObj = CouponLang.objects.create(
+            #     lang='cn',
+            #     instruction='用于自动续费套餐的首月',
+            #     quota='',
+            #     unit='',
+            #     remark='每台摄像机上只能用一次'
             # )
-            # CouponConfigModel.objects.get(id=1).lang.add(1)
+            # CouponConfigModel.objects.get(id=1).lang.add(CouponLangObj.id)
             now_time = int(time.time())
             CouponModel.objects.create(
                 use_status=0,
                 distribute_time=now_time,
                 valid_time=now_time+10000000,
                 userID=userID,
-                coupon_config_id=1,
+                coupon_config_id=coupon_config_id,
                 update_time=now_time,
                 create_time=now_time
             )

+ 4 - 0
Controller/PaymentCycle.py

@@ -197,6 +197,10 @@ class PaypalCycleNotify(View):
                          ))
             logger.info('billing_agreement_state')
             logger.info(state)
+            red_url = "{SERVER_DOMAIN_SSL}web/paid2/fail.html".format(SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL)
+            if lang != 'cn':
+                red_url = "{SERVER_DOMAIN_SSL}web/paid2/en_fail.html".format(SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL)
+            return HttpResponseRedirect(red_url)
         try:
             userid = order_list[0]['userID__userID']
             username = order_list[0]['userID__username']

+ 74 - 35
Controller/TestApi.py

@@ -56,10 +56,7 @@ from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Object.m3u8generate import PlaylistGenerator
 from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel
-from Ansjer.config import PAYPAL_CRD,SERVER_DOMAIN,SERVER_DOMAIN_SSL,PAYPAL_WEB_HOOK_ID
-
-
-
+from Ansjer.config import PAYPAL_CRD, SERVER_DOMAIN, SERVER_DOMAIN_SSL, PAYPAL_WEB_HOOK_ID
 
 SERVER_DOMAIN = 'http://test.dvema.com/'
 ACCESS_KEY = "AKIA2E67UIMD3CYTIWPA"
@@ -86,7 +83,7 @@ class testView(View):
         request.encoding = 'utf-8'
         operation = kwargs.get('operation')
         response = ResponseObject()
-        return response.json(0,request.body)
+        return response.json(0, request.body)
 
     def validation(self, request_dict, request, operation):
         response = ResponseObject()
@@ -97,7 +94,7 @@ class testView(View):
             logger = logging.getLogger('info')
             logger.info('测试打印')
             res = make_password(123456)
-            return JsonResponse(status=200, data=res,safe=False)
+            return JsonResponse(status=200, data=res, safe=False)
         elif operation == 'testMiddleWare':
             a = int('a')
             return JsonResponse(status=200, safe=False)
@@ -126,13 +123,13 @@ class testView(View):
             return self.queryInterface(request_dict, userID, response)
         elif operation == 'generateToken':
             userID = '158943604783713800138000'
-            return self.generate_token(request_dict,userID)
+            return self.generate_token(request_dict, userID)
         elif operation == 'test_upload_s3':
             userID = '158943604783713800138000'
             return self.test_upload_s3(request_dict, response)
         elif operation == 'rekognition':
             userID = '158943604783713800138000'
-            return self.testRekognition(request,request_dict)
+            return self.testRekognition(request, request_dict)
         elif operation == 'ip':
             return self.ip(response)
         elif operation == 'configType':
@@ -141,10 +138,32 @@ class testView(View):
             return self.createData(request_dict, response)
         elif operation == 'findPaypalOrder':
             return self.findPaypalOrder(request_dict, response)
+        elif operation == 'comb':
+            return self.do_comb(request_dict, response)
+        elif operation == 'count_ts':
+            return self.count_ts(request_dict, response)
         else:
             return 123
 
-    def findPaypalOrder(self,request_dict, response):
+    def do_comb(self, request_dict, response):
+        import itertools
+        list1 = [1, 2, 3, 4]
+        list2 = []
+        for i in range(1, len(list1) + 1):
+            iter = itertools.combinations(list1, i)
+            list2.append(list(iter))
+        list3 = []
+        for list_ in list2:
+            for val in list_:
+                print('-------------list')
+                print(type(val))
+                comb = [str(i) for i in val]
+                comb_int = int("".join(comb))
+                list3.append(comb_int)
+
+        return HttpResponse(json.dumps(list3))
+
+    def findPaypalOrder(self, request_dict, response):
         from paypalrestsdk import Order, ResourceNotFound
         PAYPAL_CRD = {
             "mode": "sandbox",  # sandbox or live
@@ -178,11 +197,9 @@ class testView(View):
         # print(related_resources)
         # return HttpResponse(sale)
 
-
-
     def createBucket(self):
 
-        #查看桶列表
+        # 查看桶列表
         # url = "https://azvod1.s3-ap-northeast-1.amazonaws.com"
         # session = Session(ACCESS_KEY, SECRET_KEY)
         # s3_client = session.client('s3', endpoint_url=url)
@@ -193,10 +210,10 @@ class testView(View):
         session = Session(ACCESS_KEY, SECRET_KEY)
         s3_client = session.client('s3')
 
-        #上传
+        # 上传
         # s3_client.put_object(Bucket="azvod1", Key="file/rule.txt", Body=open(r"E:\download\Shadowsocks-4.1.10.0\user-rule.txt", 'rb').read())
 
-        #下载
+        # 下载
         resp = s3_client.get_object(Bucket="azvod1", Key="file/rule.txt")
         with open('local.txt', 'wb') as f:
             f.write(resp['Body'].read())
@@ -219,7 +236,7 @@ class testView(View):
         if uid:
             dvqs = dvqs.filter(UID=uid)
         # count = dvqs.count()
-        #分页
+        # 分页
         dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
                                                           'View_Password', 'ChannelIndex', 'Type', 'isShare',
                                                           'primaryUserID', 'primaryMaster', 'data_joined',
@@ -273,8 +290,7 @@ class testView(View):
             data.append(p)
         return response.json(0, data)
 
-
-    #获取播放列表
+    # 获取播放列表
     def do_test_query_vod_list(self, userID, ip, request_dict, response):
         uid = 'GZL2PEFJPLY7W6BG111A'
         channel = 2
@@ -315,7 +331,7 @@ class testView(View):
             'sec': 12})
         return response.json(0, vod_play_list)
 
-    #生成m3u8列表
+    # 生成m3u8列表
     def do_sign_play_m3u8(self, request_dict, response):
         uid = 'GZL2PEFJPLY7W6BG111A'
         channel = 2
@@ -653,9 +669,6 @@ class testView(View):
                 return HttpResponse(json.dumps(res, ensure_ascii=False),
                                     content_type="application/json,charset=utf-8")
 
-
-
-
     def do_pay_by_ali(self, request_dict, userID, response):
         uid = request_dict.get('uid', None)
         rank = request_dict.get('rank', None)
@@ -755,24 +768,23 @@ class testView(View):
             vod_play_list.append({'name': vod['time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec']})
         return response.json(0, vod_play_list)
 
-    def generate_token(self,request_dict,userID):
+    def generate_token(self, request_dict, userID):
         # UserIdToken
         tko = TokenObject()
-        userID = request_dict.get('userID',None)
-        username = request_dict.get('username',None)
+        userID = request_dict.get('userID', None)
+        username = request_dict.get('username', None)
         res = tko.generate(
             data={'userID': userID, 'lang': 'cn', 'user': username, 'm_code': username})
-        #uidToken
+        # uidToken
         # utko = UidTokenObject()
         # res = utko.generate(data={'uid': '4UZSEDP93MJ3X7YB111A','channel': 1})
 
         # from Object.ETkObject import ETkObject
         # etkObj = ETkObject(etk='')
         # res = etkObj.encrypt("4UZSEDP93MJ3X7YB111A")
-        return JsonResponse(status=200, data=res,safe=False)
-
+        return JsonResponse(status=200, data=res, safe=False)
 
-    def test_upload_s3(self,request_dict , response):
+    def test_upload_s3(self, request_dict, response):
         aws_s3_guonei = boto3.client(
             's3',
             aws_access_key_id=AWS_ACCESS_KEY_ID[0],
@@ -791,8 +803,7 @@ class testView(View):
         )
         return response.json(0, {'datas': response_url, 'count': 1})
 
-
-    def testRekognition(self,request,request_dict):
+    def testRekognition(self, request, request_dict):
         # ip = CommonService.get_ip_address(request)
         # ipInfo = CommonService.getIpIpInfo(ip,"CN")
         # # print(type(ipInfo))
@@ -807,15 +818,15 @@ class testView(View):
         # client = boto3.client('s3', aws_access_key_id='AKIA2E67UIMD45Y3HL53',aws_secret_access_key='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',region_name='us-east-1')
         # exit(request.FILES)
 
-
         files = request.FILES.get('image')
-        labels = int(request_dict.get('labels',5))
-        minConfidence = int(request_dict.get('minConfidence',99))
+        labels = int(request_dict.get('labels', 5))
+        minConfidence = int(request_dict.get('minConfidence', 99))
         if not files:
             return HttpResponse('请上传图片!!!!')
-        client = boto3.client('rekognition', aws_access_key_id='AKIA2E67UIMD6JD6TN3J',aws_secret_access_key='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',region_name='us-east-1')
+        client = boto3.client('rekognition', aws_access_key_id='AKIA2E67UIMD6JD6TN3J',
+                              aws_secret_access_key='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', region_name='us-east-1')
         # image = open('E:/photo/a615fa40b8c476bab0f6eeb332e62a5a-1000.jpg', "rb")
-        response = client.detect_labels(Image={'Bytes':files.read()},MaxLabels=labels,MinConfidence=minConfidence)
+        response = client.detect_labels(Image={'Bytes': files.read()}, MaxLabels=labels, MinConfidence=minConfidence)
         # for obj in response['Labels']:
         #     exit(obj)
         #     if obj['Name'] == 'Person':
@@ -839,3 +850,31 @@ class testView(View):
         # qs = DeviceLogModel.objects.filter(add_time__lt=filter_date)
         DeviceLogModel.objects.create(uid=uid)
         return response.json(0)
+
+    def count_ts(self, request_dict, response):
+        year = request_dict.get('year', None)
+        month = request_dict.get('month', None)
+        if not year:
+            year = CommonService.timestamp_to_str(int(time.time()), '%Y')
+        if not month:
+            month = CommonService.timestamp_to_str(int(time.time()), '%m')
+        year = int(year)
+        month = int(month)
+        startTime = CommonService.str_to_timestamp('{year}-{month}'.format(year=year, month=month), '%Y-%m')
+        endTime = CommonService.str_to_timestamp('{year}-{month}'.format(year=year, month=month + 1), '%Y-%m') - 1
+        qsTs = VodHlsModel.objects.filter(time__gte=startTime, time__lte=endTime).values('fg')
+        if not qsTs.exists():
+            return HttpResponse('查无数据')
+        sumTs = 0  # 总ts个数
+        sumSec = 0  # 总秒数
+        for val in qsTs:
+            fg = int(val['fg'])
+            sumTs += fg & 0xf
+            for i in range(15):
+                shift = (i + 1) * 4
+                sumSec += (fg >> shift) & 0xf
+        size = 0
+        return HttpResponse(
+            "{year}年{month}月 </br>上传的TS总数:{sumTs} </br> 总秒数:{sumSec} </br> 总大小:{size}GB (1秒约等150KB计算)".format(year=year, month=month,
+                                                                                           sumTs=sumTs, sumSec=sumSec,
+                                                                                           size=size))