瀏覽代碼

Merge remote-tracking branch 'origin/test'

locky 3 年之前
父節點
當前提交
eb86507190
共有 5 個文件被更改,包括 71 次插入2 次删除
  1. 35 1
      AdminController/DeviceManagementController.py
  2. 2 0
      Ansjer/urls.py
  3. 19 1
      Controller/CloudStorage.py
  4. 1 0
      Controller/SerialNumberController.py
  5. 14 0
      Model/models.py

+ 35 - 1
AdminController/DeviceManagementController.py

@@ -14,7 +14,7 @@ from django.views.generic.base import View
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Model.models import Device_Info, UidSetModel, LogModel, UID_Bucket, Unused_Uid_Meal, Order_Model, StsCrdModel, \
-    VodHlsModel, ExperienceContextModel, DeviceTypeModel
+    VodHlsModel, ExperienceContextModel, DeviceTypeModel, Equipment_Info, UidUserModel
 
 
 class DeviceManagement(View):
@@ -33,6 +33,8 @@ class DeviceManagement(View):
         response = ResponseObject(language, 'pc')
         if operation == 'addDeviceType':
             return self.addDeviceType(request, request_dict, response)
+        elif operation == 'delDeviceData':
+            return self.delDeviceData(request_dict, response)
         else:
             tko = TokenObject(
                 request.META.get('HTTP_AUTHORIZATION'),
@@ -258,3 +260,35 @@ class DeviceManagement(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    # 删除设备数据
+    def delDeviceData(self, request_dict, response):
+        uidList = request_dict.get('uidList', None)
+        delDataOptions = request_dict.get('delDataOptions', None)
+
+        if not all([uidList, delDataOptions]):
+            return response.json(444)
+        try:
+            with transaction.atomic():
+                uidList = uidList.splitlines()      # 按行('\r', '\r\n', \n')切割字符串返回列表
+                # 根据删除项删除相关数据
+                if '设备信息数据' in delDataOptions:
+                    Device_Info.objects.filter(UID__in=uidList).delete()
+                if '设备配置数据' in delDataOptions:
+                    UidSetModel.objects.filter(uid__in=uidList).delete()
+                if '设备推送数据' in delDataOptions:
+                    Equipment_Info.objects.filter(devUid__in=uidList).delete()
+                if '设备AP信息数据' in delDataOptions:
+                    UidUserModel.objects.filter(UID__in=uidList).delete()
+                if '设备云存数据' in delDataOptions:
+                    UID_Bucket.objects.filter(uid__in=uidList).delete()
+                    Unused_Uid_Meal.objects.filter(uid__in=uidList).delete()
+                    Order_Model.objects.filter(UID__in=uidList).delete()
+                    StsCrdModel.objects.filter(uid__in=uidList).delete()
+                    VodHlsModel.objects.filter(uid__in=uidList).delete()
+                    ExperienceContextModel.objects.filter(uid__in=uidList).delete()
+                    Device_Info.objects.filter(UID__in=uidList).update(vodPrimaryUserID='', vodPrimaryMaster='')
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 2 - 0
Ansjer/urls.py

@@ -234,6 +234,8 @@ urlpatterns = [
     url(r'^user/ex/(?P<operation>.*)$', UserExController.UserExView.as_view()),
 	url(r'^v3/equipment/(?P<operation>.*)$', EquipmentManagerV3.EquipmentManagerV3.as_view()),
 	url(r'^cloudstorage/(?P<operation>.*)$', CloudStorage.CloudStorageView.as_view()),
+    url(r'^payCycle/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()), #周期扣款
+	url(r'^paypalCycleNotify/(?P<operation>.*)$', PaymentCycle.PaypalCycleNotify.as_view()), #paypal周期扣款订阅通知
 
     #新增解密的接口
     url(r'^v3/account/changePwd$', UserController.v3ChangePwdView.as_view()),

+ 19 - 1
Controller/CloudStorage.py

@@ -40,7 +40,7 @@ from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_AR
 from Controller.CheckUserData import DataValid
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, OssCrdModel, UID_Bucket, StsCrdModel, \
     ExperienceContextModel, Pay_Type, CDKcontextModel, Device_User, SysMassModel, SysMsgModel, UidPushModel, \
-    Unused_Uid_Meal, UIDMainUser, UserModel, PromotionRuleModel
+    Unused_Uid_Meal, UIDMainUser, UserModel, PromotionRuleModel, VideoPlaybackTimeModel
 from Object.AWS.S3Email import S3Email
 from Object.AliPayObject import AliPayObject
 from Object.AliSmsObject import AliSmsObject
@@ -144,6 +144,8 @@ class CloudStorageView(View):
                 return self.switch_device_commodity(request_dict, userID, response)
             elif operation == 'hasvod':  #APP的回放界面,日历表显示当天有无录像
                 return self.has_vod(request_dict, userID, response)
+            elif operation == 'videoPlaybackTime':    # 记录app播放时间
+                return self.videoPlaybackTime(request_dict, userID, response)
             else:
                 return response.json(414)
 
@@ -1578,6 +1580,22 @@ class CloudStorageView(View):
 
         return response.json(0, had_vod_list)
 
+    def videoPlaybackTime(self, request_dict, userID, response):
+        parms = request_dict.get('parms', None)
+
+        if not parms:
+            return response.json(444)
+
+        try:
+            parms = eval(parms)
+            for parm in parms:
+                parm['userID'] = userID
+                VideoPlaybackTimeModel.objects.create(**parm)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
     # 云存操作系统消息
     def do_vod_msg_Notice(self, uid, channel, userID, lang, sys_msg_text_list, sms):
         try:

+ 1 - 0
Controller/SerialNumberController.py

@@ -150,6 +150,7 @@ class SerialNumberView(View):
         try:
             if not country_id:
                 ip = CommonService.get_ip_address(request)
+                ip = '67.220.90.13'     # 仅用于模拟国外环境测试
                 country_id = Device_Region().get_device_region(ip)
 
             # 判断序列号是否已和企业关联

+ 14 - 0
Model/models.py

@@ -1698,6 +1698,20 @@ class CloudLogModel(models.Model):
         verbose_name_plural = verbose_name
 
 
+class VideoPlaybackTimeModel(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    userID = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'用户ID')
+    uid = models.CharField(max_length=32, default='', db_index=True, verbose_name=u'uid')
+    playMode = models.CharField(max_length=10, default='', verbose_name=u'播放模式')
+    startTime = models.IntegerField(default=0, verbose_name=u'开始播放时间')
+    duration = models.SmallIntegerField(default=0, verbose_name='播放时长')
+
+    class Meta:
+        db_table = 'video_playback_time'
+        verbose_name = '视频播放时长表'
+        verbose_name_plural = verbose_name
+
+
 class PctestjobModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     jobname = models.CharField(blank=True, max_length=32, verbose_name=u'岗位名字')