소스 검색

序列号表独立部署
修改model映射

lang 4 년 전
부모
커밋
d0b7840f9d

+ 2 - 3
Ansjer/formal_settings.py

@@ -107,7 +107,7 @@ DATABASES = {
 }
 DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']
 DATABASE_APPS_MAPPING = {
-    'db1': 'default',
+    'Model': 'default',
     'db2': 'mysql02',
 }
 
@@ -170,8 +170,7 @@ CORS_ALLOW_HEADERS = (
 '''
 # 管理员邮箱
 ADMINS = (
-    ('admin', 'chanjunkai@163.com'),
-    ('admin', '1379072853@qq.com'),
+    ('admin', 'sonalh@foxmail.com'),
 )
 
 # 非空链接,却发生404错误,发送通知MANAGERS

+ 23 - 3
Ansjer/test_settings.py

@@ -17,6 +17,8 @@ INSTALLED_APPS = [
     'corsheaders',
     'imagekit',
     'Model',
+    'PushModel',
+    'SerialModel',
 ]
 
 MIDDLEWARE = [
@@ -74,16 +76,24 @@ WSGI_APPLICATION = 'Ansjer.test_wsgi.application'
 
 
 # 服务器类型
+#业务数据库
 DATABASE_DATA = 'AnsjerTest'
 SERVER_HOST = 'database-2.clraczw4p0yj.us-west-1.rds.amazonaws.com'
 DATABASES_USER = 'azrds'
 DATABASES_PASS = 'azrds.x.x'
 
+#推送数据库
 DATABASE_DATA2 = 'AnsjerTest'
 SERVER_HOST2 = 'ansjerpush.clraczw4p0yj.us-west-1.rds.amazonaws.com'
 DATABASES_USER2 = 'azrds'
 DATABASES_PASS2 = 'azrds.x.x'
 
+#序列号公共数据库
+DATABASE_DATA3 = 'AnsjerTest'
+SERVER_HOST3 = 'serial-uid.clraczw4p0yj.us-west-1.rds.amazonaws.com'
+DATABASES_USER3 = 'azrds'
+DATABASES_PASS3 = 't1ApWed1FPPQbWmclZKp'
+
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql',
@@ -104,12 +114,23 @@ DATABASES = {
         'PORT': '3306',
         'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
         'AUTOCOMMIT': True
+    },
+    'mysql03': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': DATABASE_DATA3,
+        'USER': DATABASES_USER3,
+        'PASSWORD': DATABASES_PASS3,
+        'HOST': SERVER_HOST3,
+        'PORT': '3306',
+        'OPTIONS': {'charset': 'utf8mb4', 'use_unicode': True, 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
+        'AUTOCOMMIT': True
     }
 }
 DATABASE_ROUTERS = ['Ansjer.database_router.DatabaseAppsRouter']
 DATABASE_APPS_MAPPING = {
     'Model': 'default',
-    'db2': 'mysql02',
+    'PushModel': 'mysql02',
+    'SerialModel': 'mysql03',
 }
 
 AUTH_PASSWORD_VALIDATORS = [
@@ -170,8 +191,7 @@ CORS_ALLOW_HEADERS = (
 '''
 # 管理员邮箱
 ADMINS = (
-    ('admin', 'chanjunkai@163.com'),
-    ('admin', '1379072853@qq.com'),
+    ('admin', 'sonalh@foxmail.com'),
 )
 
 # 非空链接,却发生404错误,发送通知MANAGERS

+ 3 - 2
Controller/CompanyController.py

@@ -153,9 +153,10 @@ class CompanyView(View):
                         for item in serial_qs:
                             data.append(CompanySerialModel(
                                 company_id=company.id,
-                                serial_number_id=item.id,
+                                serial_number=item.serial_number,
                                 add_time=now_time,
-                                update_time=now_time
+                                update_time=now_time,
+                                p2p=p2p
                             ))
 
                             if len(data) == 5000:

+ 4 - 4
Controller/EquipmentManager.py

@@ -494,7 +494,7 @@ def addInterface(request):
                         uid_serial = uid_serial_qs[0]
                         Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                    vodPrimaryMaster=vodPrimaryMaster,
-                                                                   serial_number=uid_serial.company_serial.serial_number.serial_number + uid_serial.company_serial.company.mark)
+                                                                   serial_number=uid_serial.company_serial.serial_number + uid_serial.company_serial.company.mark)
                     else:
                         Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                    vodPrimaryMaster=vodPrimaryMaster)
@@ -524,7 +524,7 @@ def addInterface(request):
 
 
                     # 新增获取IOT证书内容
-                    iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number=dvql[0]['serial_number'])
+                    iotqs = iotdeviceInfoModel.objects.filter(serial_number=dvql[0]['serial_number'])
                     if iotqs.exists():
                         res['iot'].append(
                             {
@@ -882,7 +882,7 @@ def queryInterface(request):
 
 
         #新增获取IOT证书内容
-        iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number__in=serial_number_list)
+        iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -904,7 +904,7 @@ def queryInterface(request):
             #新增IOT
             p['iot'] = []
             for iot in iotqs:
-                if p['serial_number'][0:6] == iot.serial_number.serial_number:
+                if p['serial_number'][0:6] == iot.serial_number:
                         p['iot'].append(
                             {
                                 'endpoint':iot.endpoint,

+ 3 - 3
Controller/EquipmentManagerV2.py

@@ -163,7 +163,7 @@ class EquipmentManagerV2(View):
                 serial_number_list.append(dvl['serial_number'][0:6])
 
             # 新增获取IOT证书内容
-            iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number__in=serial_number_list)
+            iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
             ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
                 values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -188,7 +188,7 @@ class EquipmentManagerV2(View):
                 # 新增云分配UID
                 p['iot'] = []
                 for iot in iotqs:
-                    if p['serial_number'][0:6] == iot.serial_number.serial_number:
+                    if p['serial_number'][0:6] == iot.serial_number:
                         p['iot'].append(
                             {
                                 'endpoint': iot.endpoint,
@@ -250,7 +250,7 @@ class EquipmentManagerV2(View):
             serial_number_list.append(dvl['serial_number'])
 
         # 新增获取IOT证书内容
-        iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number__in=serial_number_list)
+        iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')

+ 6 - 6
Controller/EquipmentManagerV3.py

@@ -200,7 +200,7 @@ class EquipmentManagerV3(View):
                             uid_serial = uid_serial_qs[0]
                             Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                        vodPrimaryMaster=vodPrimaryMaster,
-                                                                       serial_number=uid_serial.company_serial.serial_number.serial_number + uid_serial.company_serial.company.mark)
+                                                                       serial_number=uid_serial.company_serial.serial_number + uid_serial.company_serial.company.mark)
                         else:
                             Device_Info.objects.filter(UID=UID).update(vodPrimaryUserID=vodPrimaryUserID,
                                                                        vodPrimaryMaster=vodPrimaryMaster)
@@ -240,7 +240,7 @@ class EquipmentManagerV3(View):
                         res = dvql[0]
                         res['vod'] = list(ubqs)
 
-                        iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number=dvql[0]['serial_number'])
+                        iotqs = iotdeviceInfoModel.objects.filter(serial_number=dvql[0]['serial_number'])
                         if iotqs.exists():
                             res['iot'].append(
                                 {
@@ -367,7 +367,7 @@ class EquipmentManagerV3(View):
                 serial_number_list.append(dvl['serial_number'][0:6])
 
             # 新增获取IOT证书内容
-            iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number__in=serial_number_list)
+            iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
             ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
                 values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -445,7 +445,7 @@ class EquipmentManagerV3(View):
                 # 新增IOT
                 p['iot'] = []
                 for iot in iotqs:
-                    if p['serial_number'][0:6] == iot.serial_number.serial_number:
+                    if p['serial_number'][0:6] == iot.serial_number:
                         p['iot'].append(
                             {
                                 'endpoint': iot.endpoint,
@@ -559,7 +559,7 @@ class EquipmentManagerV3(View):
                     serial_number_list.append(dvl['serial_number'][0:6])
 
                 # 新增获取IOT证书内容
-                iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number__in=serial_number_list)
+                iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
                 ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
                     values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -626,7 +626,7 @@ class EquipmentManagerV3(View):
                     # 新增IOT
                     p['iot'] = []
                     for iot in iotqs:
-                        if p['serial_number'][0:6] == iot.serial_number.serial_number:
+                        if p['serial_number'][0:6] == iot.serial_number:
                             p['iot'].append(
                                 {
                                     'endpoint': iot.endpoint,

+ 7 - 3
Controller/IotCoreController.py

@@ -71,7 +71,7 @@ class IotCoreView(View):
 
             serial = serial_number[0:6]
 
-            iotqs = iotdeviceInfoModel.objects.filter(serial_number__serial_number=serial)
+            iotqs = iotdeviceInfoModel.objects.filter(serial_number=serial)
 
             # 判断设备是否已注册证书
             if not iotqs.exists():
@@ -83,9 +83,13 @@ class IotCoreView(View):
                 nowTime = int(time.time())
                 token_iot_number = hashlib.md5((str(uuid.uuid1()) + str(nowTime)).encode('utf-8')).hexdigest()
 
-                sn = SerialNumberModel.objects.get(serial_number=serial)
+                # sn = SerialNumberModel.objects.get(serial_number=serial)
+                try:
+                    sn = SerialNumberModel.objects.get(serial_number=serial)
+                except:
+                    return response.json(444)
 
-                iotdeviceInfoModel.objects.create(serial_number=sn,
+                iotdeviceInfoModel.objects.create(serial_number=serial,
                                                   endpoint=res[0]['endpoint'],
                                                   certificate_id=res[0]['certificateId'],
                                                   certificate_pem=res[0]['certificatePem'],

+ 3 - 4
Controller/SerialNumberController.py

@@ -119,8 +119,7 @@ class SerialNumberView(View):
 
             quantity = int(quantity)
 
-            company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_id, status=0,
-                                                                  serial_number__p2p=p2p_type)
+            company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_id, status=0, p2p=p2p_type)
             if not company_serial_qs.exists():
                 redisObject.rpush(key, value)
                 return response.json(373)
@@ -133,7 +132,7 @@ class SerialNumberView(View):
             ids = []
             for serial in company_serial_qs:
                 ids.append(serial.id)
-                data.append(serial.serial_number.serial_number + serial.company.mark)
+                data.append(serial.serial_number + serial.company.mark)
             CompanySerialModel.objects.filter(id__in=ids).update(status=1)
             redisObject.rpush(key, value)
             return response.json(0, data)
@@ -208,7 +207,7 @@ class SerialNumberView(View):
 
                     # 判断序列号是否已和企业关联
                     company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_id,
-                                                                          serial_number__serial_number=serial)
+                                                                          serial_number=serial)
                     if not company_serial_qs.exists():
                         return response.json(173)
 

+ 6 - 4
Model/models.py

@@ -734,7 +734,7 @@ class SysMsgModel(models.Model):
         verbose_name = '系统消息'
         verbose_name_plural = verbose_name
         ordering = ('-id',)
-        app_label = "db2"
+        app_label = "PushModel"
 
 
 # 设备推送重构
@@ -1507,13 +1507,15 @@ class SerialNumberModel(models.Model):
         db_table = 'tb_serial_number'
         verbose_name = '序列号表'
         verbose_name_plural = verbose_name
+        app_label = 'SerialModel'
 
 
 class CompanySerialModel(models.Model):
     id = models.AutoField(primary_key=True)
     company = models.ForeignKey(CompanyModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联企业表的id')
-    serial_number = models.ForeignKey(SerialNumberModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联序列号表的id')
+    serial_number = models.CharField(max_length=11, db_index=True, blank=True, default='', verbose_name=u'6位数序列号')
     status = models.SmallIntegerField(default=0, verbose_name='序列号的状态。0:未使用,1:已使用,2:已和UID关联')
+    p2p = models.SmallIntegerField(default=0, verbose_name='p2p类型。0:无,1:宸云,2:tutk')
     add_time = models.IntegerField(default=0, verbose_name='添加时间')
     update_time = models.IntegerField(default=0, verbose_name='更新时间')
 
@@ -1526,7 +1528,7 @@ class CompanySerialModel(models.Model):
 class UIDCompanySerialModel(models.Model):
     id = models.AutoField(primary_key=True)
     uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联UID表')
-    company_serial = models.ForeignKey(CompanySerialModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联【企业关联序列号表】的id')
+    company_serial = models.ForeignKey(CompanySerialModel, to_field='id', on_delete=models.CASCADE, verbose_name='6位数序列号')
     add_time = models.IntegerField(default=0, verbose_name='添加时间')
     update_time = models.IntegerField(default=0, verbose_name='更新时间')
 
@@ -1538,7 +1540,7 @@ class UIDCompanySerialModel(models.Model):
 
 class iotdeviceInfoModel(models.Model):
     id = models.AutoField(primary_key=True)
-    serial_number = models.ForeignKey(SerialNumberModel, to_field='id', default='', on_delete=models.CASCADE, verbose_name='关联序列号表的id')
+    serial_number = models.CharField(max_length=11, blank=True, default='', db_index=True, verbose_name=u'关联序列号表的id')
     certificate_id = models.CharField(blank=True, max_length=256, default='', verbose_name=u'证书id')
     certificate_pem = models.TextField(blank=True, default='', verbose_name=u'证书项目')
     public_key = models.TextField(blank=True, default='', verbose_name=u'公有密钥')