浏览代码

Merge branch 'dev' into lang

lang 4 年之前
父节点
当前提交
6f779595d3

+ 37 - 3
Controller/CloudStorage.py

@@ -40,7 +40,7 @@ from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, OSS_ROLE_AR
     JPUSH_CONFIG, FCM_CONFIG, OAUTH_ACCESS_TOKEN_SECRET
 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
+    Unused_Uid_Meal, UIDMainUser
 from Object.AliPayObject import AliPayObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -775,6 +775,14 @@ class CloudStorageView(View):
                         }
                         dvq.update(**dvq_set_update_dict)
 
+                    uid_main_exist = UIDMainUser.objects.filter(UID=UID)
+                    if not uid_main_exist.exists():
+                        uid_main_dict = {
+                            'UID': UID,
+                            'user_id': userid
+                        }
+                        UIDMainUser.objects.create(**uid_main_dict)
+
                     order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
                     sys_msg_text_list = ['成功购买云存', 'Successful purchase of cloud storage']
                     self.do_vod_msg_Notice(UID, channel, userid, lang, sys_msg_text_list)
@@ -871,6 +879,15 @@ class CloudStorageView(View):
                         'vodPrimaryMaster': username
                     }
                     dvq.update(**dvq_set_update_dict)
+
+                uid_main_exist = UIDMainUser.objects.filter(UID=UID)
+                if not uid_main_exist.exists():
+                    uid_main_dict = {
+                        'UID': UID,
+                        'user_id': userid
+                    }
+                    UIDMainUser.objects.create(**uid_main_dict)
+
                 order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
                 sys_msg_text_list = ['成功购买云存','Successful purchase of cloud storage']
                 self.do_vod_msg_Notice(UID, channel, userid, lang, sys_msg_text_list)
@@ -962,6 +979,15 @@ class CloudStorageView(View):
                             'vodPrimaryMaster': username
                         }
                         dvq.update(**dvq_set_update_dict)
+
+                    uid_main_exist = UIDMainUser.objects.filter(UID=UID)
+                    if not uid_main_exist.exists():
+                        uid_main_dict = {
+                            'UID': UID,
+                            'user_id': userid
+                        }
+                        UIDMainUser.objects.create(**uid_main_dict)
+
                     order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
                     sys_msg_text_list = ['成功购买云存', 'Successful purchase of cloud storage']
                     self.do_vod_msg_Notice(UID, channel, userid, lang, sys_msg_text_list)
@@ -1234,6 +1260,14 @@ class CloudStorageView(View):
                     }
                     dvq.update(**dvq_set_update_dict)
 
+                uid_main_exist = UIDMainUser.objects.filter(UID=uid)
+                if not uid_main_exist.exists():
+                    uid_main_dict = {
+                        'UID': uid,
+                        'user_id': userID
+                    }
+                    UIDMainUser.objects.create(**uid_main_dict)
+
                 sys_msg_text_list = ['成功购买云存', 'Successful purchase of cloud storage']
                 # return response.json(0)
                 returnurl = "{SERVER_DOMAIN_SSL}cloudstorage/payOK?lang={lang}".format(SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL,lang=lang)
@@ -1605,7 +1639,7 @@ def updateUnusedUidBucket(request):
     expired_uid_buckets = UID_Bucket.objects.filter(endTime__lte=now_time,has_unused=1).values("id","uid")[0:1000]
     for expired_uid_bucket in expired_uid_buckets:
         unuseds = Unused_Uid_Meal.objects.filter(uid=expired_uid_bucket['uid']).values("id","uid","channel","addTime","expire",
-                                                                  "num","bucket_id","userID_id").order_by('addTime')[0:1]
+                                                                  "num","bucket_id").order_by('addTime')[0:1]
         if not unuseds.exists():
             continue
         unused = unuseds[0]
@@ -1615,7 +1649,7 @@ def updateUnusedUidBucket(request):
                 has_unused = 1 if count_unused>1 else 0
                 endTime = CommonService.calcMonthLater(unused['expire'] * unused['num'])
                 UID_Bucket.objects.filter(uid=expired_uid_bucket['uid']).update(channel=unused['channel'],endTime=endTime,bucket_id=unused['bucket_id']
-                                                          ,updateTime=now_time,use_status=1,userID_id=unused['userID_id'],
+                                                          ,updateTime=now_time,use_status=1,
                                                           has_unused=has_unused)
                 Unused_Uid_Meal.objects.filter(id=unused['id']).delete()
                 StsCrdModel.objects.filter(uid=expired_uid_bucket['uid']).delete()  # 删除sts记录

+ 16 - 1
Controller/CloudTransfer.py

@@ -14,7 +14,7 @@ from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Object.ResponseObject import ResponseObject
 from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, StsCrdModel, VodHlsModel, Unused_Uid_Meal, \
-    VodBucketModel
+    VodBucketModel, UIDMainUser
 
 
 class cloudTestView(View):
@@ -75,6 +75,13 @@ class cloudTestView(View):
             vodPrimaryUserID = old_deviceInfo_qs[0]['vodPrimaryUserID']
             if vodPrimaryUserID != '' and vodPrimaryUserID != oldUserID:
                 return response.json(10037)
+
+            uid_mian = UIDMainUser.objects.filter(UID=uid).values('UID', 'user_id')
+            if uid_mian.exists():
+                vodPrimaryUserID = uid_mian[0]['user_id']
+                if vodPrimaryUserID != '' and vodPrimaryUserID != oldUserID:
+                    return response.json(10037)
+
             # 判断新用户是否已有此设备
             new_deviceInfo_qs = Device_Info.objects.filter(userID_id=newUserID, UID=uid, isExist=1)
             if new_deviceInfo_qs:
@@ -91,6 +98,14 @@ class cloudTestView(View):
                 # 更新设备的主用户信息
                 Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
                 VodHlsModel.objects.filter(uid=uid).delete()
+
+                UIDMainUser.objects.filter(UID=uid).delete()
+                uid_main_dict = {
+                    'UID': uid,
+                    'user_id': newUserID
+                }
+                UIDMainUser.objects.create(**uid_main_dict)
+
         except Exception as e:
             # print(e)
             return response.json(500, repr(e))

+ 28 - 4
Controller/EquipmentManager.py

@@ -8,7 +8,7 @@ import requests
 import simplejson as json
 from django.utils import timezone
 from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, \
-    UIDCompanySerialModel, iotdeviceInfoModel
+    UIDCompanySerialModel, iotdeviceInfoModel, UIDMainUser
 from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -405,13 +405,32 @@ def addInterface(request):
                 is_bind = Device_Info.objects.filter(UID=UID, isShare=False).values('userID__userID', 'vodPrimaryUserID')
                 # 判断是否有已绑定用户
                 isvodPrimaryUserID = ''
-
                 for forbind in is_bind:
                     if forbind['vodPrimaryUserID'] != '':
                         isvodPrimaryUserID = forbind['vodPrimaryUserID']
 
+                if isCheckMainUser != '1':
+                    if main_exist.exists():
+                        vodPrimaryUserID = main_exist[0]['vodPrimaryUserID']
+                        vodPrimaryMaster = main_exist[0]['vodPrimaryMaster']
+                    else:
+                        vodPrimaryUserID = ''
+                        vodPrimaryMaster = ''
+
+                isusermain = False
+                if is_bind and isvodPrimaryUserID != userID and isvodPrimaryUserID != '':
+                    isusermain = True
+
+                uid_main_exist = UIDMainUser.objects.filter(UID=UID).values('UID', 'user_id')
+                if uid_main_exist.exists():
+                    vodPrimaryUserID = uid_main_exist[0]['user_id']
+                    vodPrimaryMaster = Device_User.objects.get(userID=vodPrimaryUserID).username
+
+                    if vodPrimaryUserID != userID:
+                        isusermain = True
+
                 # 判断是否有已绑定用户
-                if is_bind and isCheckMainUser == '1' and isvodPrimaryUserID != userID and isvodPrimaryUserID != '':
+                if isCheckMainUser == '1' and isusermain:
                     res = {
                         'id': pk,
                         'userID': userID,
@@ -477,7 +496,12 @@ def addInterface(request):
                     else:
                         Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                    vodPrimaryMaster=vodPrimaryMaster)
-
+                    if isCheckMainUser == '1':
+                        uid_main_dict = {
+                            'UID': UID,
+                            'user_id': vodPrimaryUserID
+                        }
+                        UIDMainUser.objects.create(**uid_main_dict)
                 # redisObj = RedisObject(db=8)
                     # redisObj.del_data(key='uid_qs_' + userID)
                 except Exception as e:

+ 37 - 2
Controller/EquipmentManagerV3.py

@@ -12,7 +12,7 @@ from django.views.generic.base import View
 from Object.RedisObject import RedisObject
 from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, BASE_DIR
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel, \
-    Device_User, iotdeviceInfoModel, UIDCompanySerialModel
+    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDMainUser
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -114,8 +114,30 @@ class EquipmentManagerV3(View):
                         if forbind['vodPrimaryUserID'] != '':
                             isvodPrimaryUserID = forbind['vodPrimaryUserID']
 
+                    if isCheckMainUser != '1' :
+                        if main_exist.exists():
+                            vodPrimaryUserID = main_exist[0]['vodPrimaryUserID']
+                            vodPrimaryMaster = main_exist[0]['vodPrimaryMaster']
+                        else:
+                            vodPrimaryUserID = ''
+                            vodPrimaryMaster = ''
+
+                    isusermain = False
+                    if is_bind and isvodPrimaryUserID != userID and isvodPrimaryUserID != '':
+                        isusermain = True
+
+                    uid_main_exist = UIDMainUser.objects.filter(UID=UID).values('UID', 'user_id')
+                    if uid_main_exist.exists():
+                        vodPrimaryUserID = uid_main_exist[0]['user_id']
+                        vodPrimaryMaster = Device_User.objects.get(userID=vodPrimaryUserID).username
+
+                        if vodPrimaryUserID != userID:
+                            isusermain = True
+
+
+
                     # 判断是否有已绑定用户
-                    if is_bind and isCheckMainUser == '1' and isvodPrimaryUserID != userID and isvodPrimaryUserID != '':
+                    if isCheckMainUser == '1' and isusermain:
                         res = {
                             'id': pk,
                             'userID': userID,
@@ -183,6 +205,13 @@ class EquipmentManagerV3(View):
                             Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                        vodPrimaryMaster=vodPrimaryMaster)
 
+                        if isCheckMainUser == '1':
+                            uid_main_dict = {
+                                'UID': UID,
+                                'user_id': vodPrimaryUserID
+                            }
+                            UIDMainUser.objects.create(**uid_main_dict)
+
                         if not us_qs.exists():
                             us_qs = UidSetModel.objects.filter(uid=UID)
 
@@ -709,6 +738,12 @@ class EquipmentManagerV3(View):
             qs = Device_User.objects.filter(userID=dvq[0]['vodPrimaryUserID']).values('userID', 'NickName', 'username', 'userEmail', 'phone')
             qs = CommonService.qs_to_list(qs)
 
+        if not qs:
+            uidq = UIDMainUser.objects.filter(UID=UID).values('user_id')
+            if uidq.exists():
+                qs = Device_User.objects.filter(userID=uidq[0]['user_id']).values('userID', 'NickName', 'username', 'userEmail', 'phone')
+                qs = CommonService.qs_to_list(qs)
+
         return response.json(0, qs)
 
     def do_get_device_features(self, request_dict, response):

+ 9 - 5
Controller/RegionController.py

@@ -145,24 +145,28 @@ class RegionView(View):
         number = request_dict.get('number', None)
         region_id = request_dict.get('region_id', None)
         countries = request_dict.get('countries', None)
+        countries_en = request_dict.get('countries_en', None)
 
         if number and region_id and countries:
-
+            res = {
+                '1': countries,
+                '2': countries_en
+            }
             now_time = int(time.time())
-            countries = json.loads(countries)
+            # countries = json.loads(countries)
 
             country_qs =CountryModel.objects.filter(number=number)
             if not country_qs.exists():
-                country = CountryModel(number=number, region_id=region_id, add_time=now_time, update_time=now_time)
+                country = CountryModel(number=number, region_id=region_id, add_time=now_time, update_time=now_time, country_name=countries)
                 country.save()
             else:
                 country = country_qs[0]
 
-            for item in countries:
+            for item in res:
                 country_language_qs = CountryLanguageModel.objects.filter(language_id=item, country_id=country.id)
                 if not country_language_qs.exists():
                     countryLanguage = CountryLanguageModel(
-                        country_name=countries[item], language_id=item, country_id=country.id, add_time=now_time, update_time=now_time)
+                        country_name=res[item], language_id=item, country_id=country.id, add_time=now_time, update_time=now_time)
                     countryLanguage.save()
             return response.json(0)
         else:

+ 9 - 0
Model/models.py

@@ -1548,4 +1548,13 @@ class iotdeviceInfoModel(models.Model):
     class Meta:
         db_table = 'iot_deviceInfo'
         verbose_name = 'iot设备信息表'
+        verbose_name_plural = verbose_name
+
+class UIDMainUser(models.Model):
+    id = models.AutoField(primary_key=True)
+    UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID', default='')
+    user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户ID', default='')
+    class Meta:
+        db_table = 'uid_mainuser'
+        verbose_name = '设备主用户表'
         verbose_name_plural = verbose_name