|
@@ -1,5 +1,4 @@
|
|
from itertools import chain
|
|
from itertools import chain
|
|
-from Service.CommonService import CommonService
|
|
|
|
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
|
|
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
|
|
from django.db import models
|
|
from django.db import models
|
|
from django.utils import six, timezone
|
|
from django.utils import six, timezone
|
|
@@ -22,7 +21,7 @@ class PermissionsManager(models.Manager):
|
|
|
|
|
|
class RoleManager(models.Manager):
|
|
class RoleManager(models.Manager):
|
|
"""
|
|
"""
|
|
- The manager for the auth's Role model.
|
|
|
|
|
|
+ The manager for the auth's Role model..
|
|
"""
|
|
"""
|
|
use_in_migrations = True
|
|
use_in_migrations = True
|
|
|
|
|
|
@@ -120,6 +119,21 @@ class Role(models.Model):
|
|
return permslist
|
|
return permslist
|
|
|
|
|
|
|
|
|
|
|
|
+class RegionCountryModel(models.Model):
|
|
|
|
+ number = models.IntegerField(primary_key=True, verbose_name='唯一标识')
|
|
|
|
+ region_id = models.IntegerField(verbose_name='大洲编号')
|
|
|
|
+ name = models.CharField(max_length=50, verbose_name=u'名称')
|
|
|
|
+ cn = models.CharField(blank=True, max_length=64, verbose_name=u'中文名称')
|
|
|
|
+ en = models.CharField(blank=True, max_length=64, verbose_name=u'英文名称')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'region_country'
|
|
|
|
+ verbose_name = '地区表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
class Device_User(AbstractBaseUser):
|
|
class Device_User(AbstractBaseUser):
|
|
userID = models.CharField(blank=True, max_length=32, primary_key=True,
|
|
userID = models.CharField(blank=True, max_length=32, primary_key=True,
|
|
verbose_name=u'用户ID', unique=True)
|
|
verbose_name=u'用户ID', unique=True)
|
|
@@ -149,8 +163,9 @@ class Device_User(AbstractBaseUser):
|
|
phone = models.CharField(max_length=16, verbose_name=u'手机号', default='', blank=True)
|
|
phone = models.CharField(max_length=16, verbose_name=u'手机号', default='', blank=True)
|
|
fingerprint_enable = models.SmallIntegerField(default=0, verbose_name=u'是否开启了指纹登录') # 0:未开启,1:已开启
|
|
fingerprint_enable = models.SmallIntegerField(default=0, verbose_name=u'是否开启了指纹登录') # 0:未开启,1:已开启
|
|
fingerprint_key = models.CharField(max_length=128, default='', verbose_name=u'客户端用于解码的密钥等信息')
|
|
fingerprint_key = models.CharField(max_length=128, default='', verbose_name=u'客户端用于解码的密钥等信息')
|
|
- is_local = models.BooleanField(blank=True, default=False, verbose_name=u'是否是本地登录用户')
|
|
|
|
- subscribe_email = models.SmallIntegerField(default=0, verbose_name=u'是否订阅营销邮件') # 0:未订阅,1:订阅,2:不订阅
|
|
|
|
|
|
+ is_local = models.BooleanField(blank=True, default=False, verbose_name=u'是否是本地登录用户') # False:账号登录,1:本地登录
|
|
|
|
+ subscribe_email = models.SmallIntegerField(default=0, verbose_name=u'是否订阅营销邮件') # 0:未订阅,1:订阅,2:不订阅
|
|
|
|
+ region_country = models.IntegerField(blank=True, default=0, verbose_name='地区表唯一标识')
|
|
objects = UserManager()
|
|
objects = UserManager()
|
|
|
|
|
|
USERNAME_FIELD = 'userID' # 必须有一个唯一标识
|
|
USERNAME_FIELD = 'userID' # 必须有一个唯一标识
|
|
@@ -206,6 +221,7 @@ class Device_User(AbstractBaseUser):
|
|
|
|
|
|
# 设备表是建项目开发者设计的,自己看着办
|
|
# 设备表是建项目开发者设计的,自己看着办
|
|
# 谢谢提醒!我选择凉拌。
|
|
# 谢谢提醒!我选择凉拌。
|
|
|
|
+# 我选择狗带
|
|
class Device_Info(models.Model):
|
|
class Device_Info(models.Model):
|
|
id = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
id = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
|
|
userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
|
|
@@ -228,6 +244,8 @@ class Device_Info(models.Model):
|
|
help_text=u'是否为共享获取的设备', default=False)
|
|
help_text=u'是否为共享获取的设备', default=False)
|
|
primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
|
|
primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
|
|
primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
|
|
primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
|
|
|
|
+ vodPrimaryUserID = models.CharField(blank=True, verbose_name='云存主用户id', max_length=32, default='')
|
|
|
|
+ vodPrimaryMaster = models.CharField(max_length=64, verbose_name=u'云存主用户名', default='')
|
|
data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
|
|
data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
|
|
|
|
|
|
@@ -238,6 +256,9 @@ class Device_Info(models.Model):
|
|
iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)', default=False)
|
|
iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)', default=False)
|
|
isVod = models.SmallIntegerField(blank=True, default=0, verbose_name='是否支持云存') # 是否支持云存设备
|
|
isVod = models.SmallIntegerField(blank=True, default=0, verbose_name='是否支持云存') # 是否支持云存设备
|
|
isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除') # 是否被删除了(需主用户交互) 1存在,0不存在,2设备被重置
|
|
isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除') # 是否被删除了(需主用户交互) 1存在,0不存在,2设备被重置
|
|
|
|
+ isCameraOpenCloud = models.SmallIntegerField(blank=True, default=1, verbose_name='是否开启云存') # 0:不开启 1:开启
|
|
|
|
+ endpoint = models.CharField(blank=True, max_length=256, default='', verbose_name=u'iot端点')
|
|
|
|
+ token_iot_number = models.CharField(blank=True, default='', max_length=50, verbose_name='连接iot令牌')
|
|
###
|
|
###
|
|
REQUIRED_FIELDS = []
|
|
REQUIRED_FIELDS = []
|
|
|
|
|
|
@@ -290,7 +311,7 @@ class Equipment_Info(models.Model):
|
|
alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
|
|
alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
|
|
eventTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'设备报警时间')
|
|
eventTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'设备报警时间')
|
|
receiveTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'接收到报警时间')
|
|
receiveTime = models.CharField(blank=True, default='', max_length=16, verbose_name=u'接收到报警时间')
|
|
- userID_id = models.CharField(default='', db_index=True,blank=True, max_length=32, verbose_name=u'用户ID')
|
|
|
|
|
|
+ userID_id = models.CharField(default='', db_index=True, blank=True, max_length=32, verbose_name=u'用户ID')
|
|
is_st = models.SmallIntegerField(default=0, verbose_name='是否截图') # 0 否,1 是图,2,视频
|
|
is_st = models.SmallIntegerField(default=0, verbose_name='是否截图') # 0 否,1 是图,2,视频
|
|
# message_id = models.CharField(blank=True, max_length=32, default='', verbose_name='第三方推送服务器返回的id')
|
|
# message_id = models.CharField(blank=True, max_length=32, default='', verbose_name='第三方推送服务器返回的id')
|
|
# push_type = models.SmallIntegerField(blank=True, default=0, verbose_name='第三方推送服务器标志。0:APNS推送,1:谷歌推送,2:极光推送')
|
|
# push_type = models.SmallIntegerField(blank=True, default=0, verbose_name='第三方推送服务器标志。0:APNS推送,1:谷歌推送,2:极光推送')
|
|
@@ -308,7 +329,6 @@ class Equipment_Info(models.Model):
|
|
ordering = ('-id',)
|
|
ordering = ('-id',)
|
|
app_label = "db2"
|
|
app_label = "db2"
|
|
|
|
|
|
-
|
|
|
|
class StatResModel(models.Model):
|
|
class StatResModel(models.Model):
|
|
id = models.AutoField(primary_key=True, verbose_name='自动ID')
|
|
id = models.AutoField(primary_key=True, verbose_name='自动ID')
|
|
name = models.CharField(default='', max_length=120, verbose_name='图片名称', unique=True)
|
|
name = models.CharField(default='', max_length=120, verbose_name='图片名称', unique=True)
|
|
@@ -391,17 +411,19 @@ class User_Brand(models.Model):
|
|
# 存储通表
|
|
# 存储通表
|
|
class VodBucketModel(models.Model):
|
|
class VodBucketModel(models.Model):
|
|
id = models.AutoField(primary_key=True, verbose_name='主键')
|
|
id = models.AutoField(primary_key=True, verbose_name='主键')
|
|
- bucket = models.CharField(max_length=30, verbose_name='设备UID')
|
|
|
|
|
|
+ bucket = models.CharField(max_length=30, verbose_name='存储桶名称')
|
|
storeDay = models.IntegerField(default=0, verbose_name='存储生命周期(天)')
|
|
storeDay = models.IntegerField(default=0, verbose_name='存储生命周期(天)')
|
|
content = models.TextField(verbose_name='描述', default='')
|
|
content = models.TextField(verbose_name='描述', default='')
|
|
endpoint = models.CharField(max_length=125, default='', verbose_name='存储节点')
|
|
endpoint = models.CharField(max_length=125, default='', verbose_name='存储节点')
|
|
area = models.CharField(max_length=16, default='', verbose_name='区域')
|
|
area = models.CharField(max_length=16, default='', verbose_name='区域')
|
|
region = models.CharField(max_length=16, default='', verbose_name='regionID')
|
|
region = models.CharField(max_length=16, default='', verbose_name='regionID')
|
|
|
|
+ is_free = models.SmallIntegerField(default=0, verbose_name='是否为免费存储桶[0:否,1:是]')
|
|
|
|
|
|
addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
updTime = models.IntegerField(verbose_name='更新时间', default=0)
|
|
updTime = models.IntegerField(verbose_name='更新时间', default=0)
|
|
|
|
|
|
mold = models.SmallIntegerField(default=0, verbose_name='存储区域类型') # 0:国内阿里 1:国外aws
|
|
mold = models.SmallIntegerField(default=0, verbose_name='存储区域类型') # 0:国内阿里 1:国外aws
|
|
|
|
+ region_id = models.IntegerField(default=1, verbose_name='大洲编号')
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.id
|
|
return self.id
|
|
@@ -415,18 +437,32 @@ class VodBucketModel(models.Model):
|
|
|
|
|
|
class Store_Meal(models.Model):
|
|
class Store_Meal(models.Model):
|
|
id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
|
|
id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
|
|
- title = models.CharField(blank=True, max_length=32, verbose_name=u'标题')
|
|
|
|
- currency = models.CharField(blank=True, default='USD', max_length=32, verbose_name=u'货币')
|
|
|
|
|
|
+ # title = models.CharField(blank=True, max_length=32, verbose_name=u'标题')
|
|
|
|
+ currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币符号')
|
|
|
|
+ symbol = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'符号')
|
|
price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
|
|
price = models.CharField(blank=True, max_length=32, verbose_name=u'价格')
|
|
- day = models.IntegerField(default=0, blank=True, verbose_name=u'套餐天数')
|
|
|
|
- content = models.TextField(blank=True, null=True, verbose_name=u'描述')
|
|
|
|
|
|
+ virtual_price = models.CharField(blank=True, max_length=32, verbose_name=u'虚拟价格')
|
|
|
|
+ is_discounts = models.SmallIntegerField(default=0, verbose_name=u'该套餐是否有优惠 [0=否,1是]') # 0没有;1有
|
|
|
|
+ discount_price = models.CharField(blank=True, max_length=32, verbose_name=u'第二年优惠价格')
|
|
|
|
+ day = models.IntegerField(default=0, blank=True, verbose_name=u'云存录像保存天数(循环)') # 7,30,180,360
|
|
|
|
+ expire = models.IntegerField(default=0, blank=True, verbose_name=u'有效期') #单位月
|
|
|
|
+ # content = models.TextField(blank=True, null=True, verbose_name=u'描述')
|
|
add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
add_time = models.DateTimeField(blank=True, null=True, verbose_name=u'加入时间', auto_now_add=True)
|
|
- type = models.SmallIntegerField(default=0, verbose_name='付款类型') # 0 是paypal,1为支付宝
|
|
|
|
|
|
+ # type = models.SmallIntegerField(default=0, verbose_name='付款类型') # 0是paypal,1为支付宝
|
|
|
|
+ pay_type = models.ManyToManyField(to='Pay_Type', verbose_name='付款类型', db_table='store_meal_pay')
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE,
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE,
|
|
default=1, verbose_name='存储空间')
|
|
default=1, verbose_name='存储空间')
|
|
commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型') # 0:事件型 1:连续型
|
|
commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型') # 0:事件型 1:连续型
|
|
commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
|
|
commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
|
|
|
|
+ # lang = models.CharField(default='', max_length=20, verbose_name='语言/国家')
|
|
|
|
+ lang = models.ManyToManyField(to='Lang', verbose_name='套餐语言', db_table='store_meal_lang')
|
|
|
|
+
|
|
|
|
+ # 备用字段
|
|
|
|
+ spare_1 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段1')
|
|
|
|
+ spare_2 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段2')
|
|
|
|
+ spare_3 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段3')
|
|
|
|
+ spare_4 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段4')
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.id
|
|
return self.id
|
|
@@ -438,6 +474,38 @@ class Store_Meal(models.Model):
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
|
|
|
|
|
|
+class Pay_Type(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增ID')
|
|
|
|
+ payment = models.CharField(max_length=32, verbose_name=u'支付方式')
|
|
|
|
+
|
|
|
|
+ def __str__(self):
|
|
|
|
+ return self.id
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'pay_type'
|
|
|
|
+ verbose_name = u'付款类型'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ ordering = ('id',)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# 套餐语言表
|
|
|
|
+class Lang(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name='自增ID')
|
|
|
|
+ lang = models.CharField(default='', max_length=20, db_index=True, verbose_name='语言/国家')
|
|
|
|
+ title = models.CharField(blank=True, max_length=320, verbose_name='标题')
|
|
|
|
+ content = models.TextField(blank=True, null=True, verbose_name='描述')
|
|
|
|
+ discount_content = models.CharField(blank=True, max_length=320, verbose_name=u'优惠信息描述')
|
|
|
|
+
|
|
|
|
+ def __str__(self):
|
|
|
|
+ return self.id
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'lang'
|
|
|
|
+ verbose_name = '套餐语言'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ ordering = ('id',)
|
|
|
|
+
|
|
|
|
+
|
|
class Equipment_Version(models.Model):
|
|
class Equipment_Version(models.Model):
|
|
eid = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
eid = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
|
|
ESN = models.CharField(blank=True, max_length=32, verbose_name=u'设备规格名称')
|
|
@@ -516,17 +584,19 @@ class App_Colophon(models.Model):
|
|
|
|
|
|
class Order_Model(models.Model):
|
|
class Order_Model(models.Model):
|
|
orderID = models.CharField(blank=True, max_length=20, primary_key=True, verbose_name=u'订单id')
|
|
orderID = models.CharField(blank=True, max_length=20, primary_key=True, verbose_name=u'订单id')
|
|
|
|
+ trade_no = models.CharField(blank=True, max_length=32, default='', verbose_name='第三方订单号')
|
|
# 订单关联用户
|
|
# 订单关联用户
|
|
userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
|
|
userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
|
|
UID = models.CharField(max_length=20, verbose_name='设备UID')
|
|
UID = models.CharField(max_length=20, verbose_name='设备UID')
|
|
channel = models.SmallIntegerField(default=0, verbose_name=u'通道数')
|
|
channel = models.SmallIntegerField(default=0, verbose_name=u'通道数')
|
|
desc = models.CharField(max_length=50, default='', verbose_name='商品描述')
|
|
desc = models.CharField(max_length=50, default='', verbose_name='商品描述')
|
|
price = models.CharField(default='', max_length=16, verbose_name='价格')
|
|
price = models.CharField(default='', max_length=16, verbose_name='价格')
|
|
- currency = models.CharField(blank=True, default='USD', max_length=32, verbose_name=u'货币')
|
|
|
|
|
|
+ currency = models.CharField(blank=True, default='$', max_length=32, verbose_name=u'货币')
|
|
addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
updTime = models.IntegerField(verbose_name='更新时间', default=0)
|
|
updTime = models.IntegerField(verbose_name='更新时间', default=0)
|
|
- endTime = models.IntegerField(verbose_name='结束时间', default=0)
|
|
|
|
- status = models.SmallIntegerField(default=0, verbose_name='付款状态') # 0:否,1:成功
|
|
|
|
|
|
+ # endTime = models.IntegerField(verbose_name='结束时间', default=0)
|
|
|
|
+ isSelectDiscounts = models.SmallIntegerField(default=0, verbose_name=u'用户是否选择了第二年优惠 [0=否,1是]')
|
|
|
|
+ status = models.SmallIntegerField(default=0, verbose_name='付款状态') # 0:待支付,1:成功,2:取消,3:已退款, 9:处理中,10:付款失败
|
|
payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
|
|
payType = models.SmallIntegerField(default=0, verbose_name='付款类型0:paypal,1:alipay')
|
|
payTime = models.IntegerField(verbose_name='支付成功时间', default=0)
|
|
payTime = models.IntegerField(verbose_name='支付成功时间', default=0)
|
|
rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')
|
|
rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')
|
|
@@ -534,9 +604,14 @@ class Order_Model(models.Model):
|
|
uid_bucket_id = models.IntegerField(default=0, verbose_name='关联uid_bucket的字段')
|
|
uid_bucket_id = models.IntegerField(default=0, verbose_name='关联uid_bucket的字段')
|
|
commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型')
|
|
commodity_type = models.SmallIntegerField(default=0, verbose_name='云存储套餐类型')
|
|
commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
|
|
commodity_code = models.CharField(default='', max_length=32, verbose_name='套餐规格码')
|
|
- pay_url = models.CharField(max_length=500, default='', verbose_name='支付url')
|
|
|
|
|
|
+ pay_url = models.CharField(max_length=2000, default='', verbose_name='支付url')
|
|
paypal = models.CharField(max_length=500, null=True, blank=True, verbose_name='支付批准url')
|
|
paypal = models.CharField(max_length=500, null=True, blank=True, verbose_name='支付批准url')
|
|
|
|
|
|
|
|
+ # 备用字段
|
|
|
|
+ spare_1 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段1')
|
|
|
|
+ spare_2 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段2')
|
|
|
|
+ spare_3 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段3')
|
|
|
|
+ spare_4 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段4')
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
return self.orderID
|
|
return self.orderID
|
|
@@ -550,14 +625,14 @@ class Order_Model(models.Model):
|
|
|
|
|
|
class VodHlsModel(models.Model):
|
|
class VodHlsModel(models.Model):
|
|
id = models.AutoField(primary_key=True, verbose_name='回放列表主键')
|
|
id = models.AutoField(primary_key=True, verbose_name='回放列表主键')
|
|
- uid = models.CharField(max_length=20, verbose_name='设备UID')
|
|
|
|
|
|
+ uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
|
|
channel = models.SmallIntegerField(default=0, verbose_name='通道')
|
|
channel = models.SmallIntegerField(default=0, verbose_name='通道')
|
|
time = models.IntegerField(verbose_name='播放列表名字时间戳', default=0, db_index=True)
|
|
time = models.IntegerField(verbose_name='播放列表名字时间戳', default=0, db_index=True)
|
|
- endTime = models.IntegerField(verbose_name='删除时间', default=0)
|
|
|
|
|
|
+ endTime = models.IntegerField(verbose_name='云存储删除时间(周期)', default=0)
|
|
sec = models.IntegerField(verbose_name='秒数', default=0)
|
|
sec = models.IntegerField(verbose_name='秒数', default=0)
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, default=1,
|
|
verbose_name='存储空间')
|
|
verbose_name='存储空间')
|
|
- fg = models.SmallIntegerField(default=0,verbose_name='时间片段数') # 0为阿里云存储方案 >0为亚马逊方案
|
|
|
|
|
|
+ fg = models.CharField(max_length=20,verbose_name='ts个数,时间描述片段数') # 阿里为时间片段数,亚马逊为一个32bit整型,前28bit代表ts文件的时长
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
def __str__(self):
|
|
@@ -615,7 +690,11 @@ class UID_Bucket(models.Model):
|
|
channel = models.SmallIntegerField(default=0, verbose_name='通道')
|
|
channel = models.SmallIntegerField(default=0, verbose_name='通道')
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
|
|
bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
|
|
status = models.SmallIntegerField(default=0, verbose_name='状态[0:开启,1:关闭]')
|
|
status = models.SmallIntegerField(default=0, verbose_name='状态[0:开启,1:关闭]')
|
|
- endTime = models.IntegerField(verbose_name='结束时间', default=0)
|
|
|
|
|
|
+ endTime = models.BigIntegerField(verbose_name='套餐结束时间', db_index=True, default=0)
|
|
|
|
+ addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
|
|
+ updateTime = models.BigIntegerField(verbose_name='更新时间', default=0)
|
|
|
|
+ use_status = models.IntegerField(verbose_name='使用状态[1:使用中,2已过期]', default=0)
|
|
|
|
+ has_unused = models.SmallIntegerField(default=0, verbose_name='是否拥有其它未使用的套餐[0:否,1:是]')
|
|
|
|
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'vod_uid_bucket'
|
|
db_table = 'vod_uid_bucket'
|
|
@@ -623,6 +702,23 @@ class UID_Bucket(models.Model):
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|
|
ordering = ('id',)
|
|
ordering = ('id',)
|
|
|
|
|
|
|
|
+class Unused_Uid_Meal(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
|
|
+ uid = models.CharField(max_length=20, verbose_name='设备UID')
|
|
|
|
+ channel = models.SmallIntegerField(default=0, verbose_name='通道')
|
|
|
|
+ bucket = models.ForeignKey(VodBucketModel, blank=True, to_field='id', on_delete=models.CASCADE, verbose_name='存储空间')
|
|
|
|
+ addTime = models.IntegerField(verbose_name='添加时间', default=0)
|
|
|
|
+ expire = models.IntegerField(verbose_name='存储桶存储时长[月份]', default=0)
|
|
|
|
+ num = models.IntegerField(verbose_name='个数', default=0)
|
|
|
|
+ # effect_time = models.BigIntegerField(verbose_name='生效时间', db_index=True, default=0)
|
|
|
|
+ # uid_bucket = models.ForeignKey(UID_Bucket, blank=True, to_field='id', on_delete=models.CASCADE, default=0,
|
|
|
|
+ # verbose_name='uid_bucket关联')
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'unused_uid_Meal'
|
|
|
|
+ verbose_name = '未使用的设备关联套餐表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ ordering = ('id',)
|
|
|
|
+
|
|
|
|
|
|
class UID_Preview(models.Model):
|
|
class UID_Preview(models.Model):
|
|
id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|
|
@@ -671,7 +767,7 @@ class UidSetModel(models.Model):
|
|
version = models.CharField(max_length=32, verbose_name='设备版本', default='')
|
|
version = models.CharField(max_length=32, verbose_name='设备版本', default='')
|
|
p2p_region = models.CharField(max_length=16, verbose_name='设备p2p区域', default='ALL') # ALL CN EU US
|
|
p2p_region = models.CharField(max_length=16, verbose_name='设备p2p区域', default='ALL') # ALL CN EU US
|
|
cloud_vod = models.SmallIntegerField(default=2, verbose_name='云存开关') # 0,关闭,1开启,2,不支持
|
|
cloud_vod = models.SmallIntegerField(default=2, verbose_name='云存开关') # 0,关闭,1开启,2,不支持
|
|
- tz = models.CharField(default='', max_length=16, verbose_name='设备时区') # +8
|
|
|
|
|
|
+ tz = models.CharField(default='', max_length=16, verbose_name ='设备时区') # +8
|
|
video_code = models.SmallIntegerField(default=0, verbose_name='编码类型') # 0:264,1:265
|
|
video_code = models.SmallIntegerField(default=0, verbose_name='编码类型') # 0:264,1:265
|
|
nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
|
|
nickname = models.CharField(default='', max_length=64, verbose_name='设备昵称')
|
|
ip = models.CharField(max_length=20, default='', verbose_name=u'设备ip')
|
|
ip = models.CharField(max_length=20, default='', verbose_name=u'设备ip')
|
|
@@ -1013,6 +1109,22 @@ class AppLogModel(models.Model):
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
|
|
|
|
|
|
+class EquipmentInfoExStatisticsModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ push_type = models.SmallIntegerField(default=0, verbose_name='第三方推送服务器标志。0:APNS推送,1:谷歌推送,2:极光推送')
|
|
|
|
+ number_of_successes = models.IntegerField(default=0, verbose_name='推送成功数量')
|
|
|
|
+ number_of_failures = models.IntegerField(default=0, verbose_name='推送失败数量')
|
|
|
|
+ number_of_arrival = models.IntegerField(default=0, verbose_name='推送到达数量')
|
|
|
|
+ statistics_date = models.IntegerField(default=0, verbose_name='属于哪天、哪月的统计')
|
|
|
|
+ date_type = models.SmallIntegerField(default=0, verbose_name='统计日期的类型。0:天,1:月')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'equipment_info_ex_statistics'
|
|
|
|
+ verbose_name = '推送消息统计表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
class CountryIPModel(models.Model):
|
|
class CountryIPModel(models.Model):
|
|
id = models.AutoField(primary_key=True)
|
|
id = models.AutoField(primary_key=True)
|
|
ip = models.CharField(default='', max_length=32, verbose_name='ip')
|
|
ip = models.CharField(default='', max_length=32, verbose_name='ip')
|
|
@@ -1027,6 +1139,33 @@ class CountryIPModel(models.Model):
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
|
|
|
|
|
|
+class ZositechHelpModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ locale = models.CharField(default='', db_index=True, max_length=50, verbose_name='语言')
|
|
|
|
+ label_names = models.CharField(default='', db_index=True, max_length=50, verbose_name='标签')
|
|
|
|
+ origin = models.CharField(default='', db_index=True ,max_length=50, verbose_name='来源')
|
|
|
|
+ # author_id = models.CharField(default='', max_length=50, verbose_name='管理员id')
|
|
|
|
+ # body = models.TextField(default='', blank=True, verbose_name='内容')
|
|
|
|
+ # comments_disabled = models.CharField(default='', max_length=10, verbose_name='comments')
|
|
|
|
+ # created_at = models.CharField(default='', max_length=50, verbose_name='创建时间')
|
|
|
|
+ # draft = models.CharField(default='', max_length=10, verbose_name='草稿')
|
|
|
|
+ # edited_at = models.CharField(default='',max_length=50, verbose_name='修改时间')
|
|
|
|
+ # html_url = models.CharField(default='', blank=True, verbose_name='跳转路径')
|
|
|
|
+ # body = models.CharField(default='', blank=True, verbose_name='标签')
|
|
|
|
+ # body = models.CharField(default='', blank=True, verbose_name='标签')
|
|
|
|
+ # body = models.TextField(default='', blank=True, verbose_name='标签')
|
|
|
|
+ # body = models.TextField(default='', blank=True, verbose_name='标签')
|
|
|
|
+ # body = models.CharField(default='', blank=True, verbose_name='标签')
|
|
|
|
+ # body = models.CharField(default='', blank=True, verbose_name='标签')
|
|
|
|
+
|
|
|
|
+ content = models.TextField(blank=True, default='', verbose_name=u'内容')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'zositech_help'
|
|
|
|
+ verbose_name = '周视使用帮助表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
class EquipmentVersionLimitModel(models.Model):
|
|
class EquipmentVersionLimitModel(models.Model):
|
|
id = models.AutoField(primary_key=True)
|
|
id = models.AutoField(primary_key=True)
|
|
type = models.SmallIntegerField(default=0, verbose_name='限制类型')
|
|
type = models.SmallIntegerField(default=0, verbose_name='限制类型')
|
|
@@ -1042,6 +1181,40 @@ class EquipmentVersionLimitModel(models.Model):
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
|
|
|
|
|
|
+class ExperienceContextModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ experience_type = models.SmallIntegerField(default=0,verbose_name='体验类型') # 0: 免费体验套餐, 1: 激活码
|
|
|
|
+ uid = models.CharField(max_length=20, default='', verbose_name='设备uid')
|
|
|
|
+ do_time = models.IntegerField(default=0, verbose_name='激活时间')
|
|
|
|
+ # is_experience = models.SmallIntegerField(default=0, verbose_name=u'是否云存体验用户') # 0:不是体验用户,1:是体验用户
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'experience_context'
|
|
|
|
+ verbose_name = '设备体验表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+class CDKcontextModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ cdk = models.CharField(max_length=50,unique=True,verbose_name='激活码')
|
|
|
|
+ create_time = models.IntegerField(default=0, verbose_name='创建时间')
|
|
|
|
+ valid_time = models.IntegerField(default=0, verbose_name='有效期间') #超过有效期激活码不可在激活 ,0:永久
|
|
|
|
+ is_activate = models.SmallIntegerField(default=0, verbose_name='是否已激活') #0 未激活 1 已激活
|
|
|
|
+ rank = models.ForeignKey(Store_Meal, to_field='id', default='', on_delete=models.CASCADE, verbose_name='套餐类型')
|
|
|
|
+ # order = models.ForeignKey(Order_Model, blank=True, max_length=20, to_field='orderID', on_delete=models.CASCADE, verbose_name='订单id', unique=True)
|
|
|
|
+ order = models.CharField(max_length=20, blank=True, unique=True, verbose_name='订单id')
|
|
|
|
+
|
|
|
|
+ # 备用字段
|
|
|
|
+ spare_1 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段1')
|
|
|
|
+ spare_2 = models.CharField(default='', blank=True, max_length=64, verbose_name=u'备用字段2')
|
|
|
|
+ spare_3 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段3')
|
|
|
|
+ spare_4 = models.CharField(default='', blank=True, max_length=64, db_index=True, verbose_name=u'备用字段4')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'cdk_context'
|
|
|
|
+ verbose_name = '激活码表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
class VoicePromptModel(models.Model):
|
|
class VoicePromptModel(models.Model):
|
|
id = models.AutoField(primary_key=True)
|
|
id = models.AutoField(primary_key=True)
|
|
title = models.CharField(max_length=128, default='', verbose_name='语音标题')
|
|
title = models.CharField(max_length=128, default='', verbose_name='语音标题')
|
|
@@ -1073,4 +1246,313 @@ class DeviceTypeModel(models.Model):
|
|
class Meta:
|
|
class Meta:
|
|
db_table = 'device_type'
|
|
db_table = 'device_type'
|
|
verbose_name = '设备类型表'
|
|
verbose_name = '设备类型表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class OperatingLogsModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ userId = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作人')
|
|
|
|
+ operatingtime = models.DateTimeField(blank=True, verbose_name=u'操作时间', auto_now=True)
|
|
|
|
+ operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
|
|
|
|
+ operatingtype = models.CharField(blank=True, verbose_name=u'操作类型', max_length=32)
|
|
|
|
+ is_saveprocessinfo = models.SmallIntegerField(default=1, verbose_name=u'是否保存过程信息。1:保存,2:不保存')
|
|
|
|
+ devUid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备ID')
|
|
|
|
+ userIp = models.CharField(blank=True, max_length=20, default='', verbose_name=u'用户ip')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'operating_logs'
|
|
|
|
+ verbose_name = '操作数据表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class ProcessInfoLogsModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ userId = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作人')
|
|
|
|
+ devUid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备ID')
|
|
|
|
+ operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
|
|
|
|
+ operatingtime = models.DateTimeField(blank=True, verbose_name=u'操作时间', auto_now=True)
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'processinfo_logs'
|
|
|
|
+ verbose_name = '过程信息表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+class EquipmentLogModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ user = models.CharField(blank=False, max_length=32, db_index=True, verbose_name=u'操作用户')
|
|
|
|
+ uid = models.CharField(default='', blank=True, max_length=32, verbose_name=u'设备uid')
|
|
|
|
+ equipmentid = models.CharField(blank=False, max_length=100, db_index=True, verbose_name=u'设备主键id')
|
|
|
|
+ NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
|
|
|
|
+ ip = models.CharField(max_length=100, default='', db_index=True, blank=True, verbose_name=u'访问ip地址')
|
|
|
|
+ time = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name=u'访问时间')
|
|
|
|
+ operatingcontent = models.TextField(blank=True, default='', verbose_name=u'操作内容')
|
|
|
|
+ url = models.CharField(max_length=150, default='', blank=True, verbose_name=u'访问路径')
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'equipment_log'
|
|
|
|
+ verbose_name = '设备日志表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class UserModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ username = models.CharField(unique=True, max_length=128, null=False, verbose_name='用户名')
|
|
|
|
+ password = models.CharField(max_length=128, null=False, verbose_name='密码')
|
|
|
|
+ permission = models.CharField(max_length=24, null=False, verbose_name='权限')
|
|
|
|
+ login_time = models.IntegerField(blank=True, default=0, verbose_name='登录时间')
|
|
|
|
+ online = models.SmallIntegerField(default=0, verbose_name='是否在线')
|
|
|
|
+ phone = models.CharField(max_length=11, default='', verbose_name='手机号')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ verbose_name = '用户表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'user'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CompanyModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ name = models.CharField(max_length=64, unique=True, default='', verbose_name='企业名称')
|
|
|
|
+ mark = models.CharField(max_length=3, unique=True, default='', verbose_name='企业标志,用于序列号的后三位')
|
|
|
|
+ secret = models.CharField(max_length=10, db_index=True, default='', verbose_name='企业秘钥')
|
|
|
|
+ quantity = models.IntegerField(default=0, verbose_name='已购买的序列号的数量')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_company'
|
|
|
|
+ verbose_name = '企业表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class RegionModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ name = models.CharField(max_length=32, default='', verbose_name='区域名称')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_region'
|
|
|
|
+ verbose_name = '区域表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class VPGModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ name = models.CharField(max_length=32, default='', verbose_name='群组名称')
|
|
|
|
+ region = models.ForeignKey(RegionModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='群组用于的地区')
|
|
|
|
+ company = models.ForeignKey(CompanyModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联企业表')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_vpg'
|
|
|
|
+ verbose_name = 'vpg表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class UIDModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ uid = models.CharField(max_length=20, null=False, db_index=True, unique=True, verbose_name='设备id')
|
|
|
|
+ mac = models.CharField(max_length=17, null=False, default='', verbose_name='设备id对应的mac地址')
|
|
|
|
+ uid_extra = models.TextField(default='', verbose_name='uid的额外描述')
|
|
|
|
+ status = models.SmallIntegerField(default=0, verbose_name='使用状态')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+ area = models.SmallIntegerField(default=0, verbose_name='区域') #0:国内;1:国外
|
|
|
|
+ vpg = models.ForeignKey(VPGModel, to_field='id', default=1, on_delete=models.DO_NOTHING, verbose_name='关联VPG表的id')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ ordering = ('-add_time',)
|
|
|
|
+ verbose_name = 'uid表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'uid'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class UserUIDModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ user = models.ForeignKey(UserModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联用户表id')
|
|
|
|
+ uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联uid表id')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ verbose_name = '用户与UID的关联表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'user_uid'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class PermissionModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ type = models.SmallIntegerField(null=False, verbose_name='权限枚举')
|
|
|
|
+ description = models.TextField(default='', verbose_name='权限描述')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ verbose_name = '权限表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'permission'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class LogModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ operation = models.CharField(max_length=100, default='', verbose_name='操作描述')
|
|
|
|
+ time = models.IntegerField(default=0, verbose_name='操作时间')
|
|
|
|
+ ip = models.CharField(default='', max_length=24, verbose_name='用户ip')
|
|
|
|
+ user = models.ForeignKey(UserModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联用户id')
|
|
|
|
+ content = models.TextField(default='', verbose_name='请求参数')
|
|
|
|
+ status = models.IntegerField(default=0, verbose_name='请求状态')
|
|
|
|
+ url = models.CharField(max_length=150, default='', verbose_name='请求路径')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ ordering = ('-time',)
|
|
|
|
+ verbose_name = '日志表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'log'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class HistoryUIDModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ uid = models.CharField(max_length=20, null=False, db_index=True, verbose_name='设备id')
|
|
|
|
+ uid_extra = models.TextField(default='', verbose_name='uid的额外描述')
|
|
|
|
+ status = models.SmallIntegerField(default=0, verbose_name='使用状态')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+ area = models.SmallIntegerField(default=0, verbose_name='区域') # 0:国内;1:国外
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ verbose_name = '历史UID表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'history_uid'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class MacModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ value = models.CharField(max_length=17, null=False, verbose_name='最新的mac地址')
|
|
|
|
+ is_active = models.BooleanField(default=True, verbose_name='当前mac地址是否可用')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ verbose_name = '最新的mac地址表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+ db_table = 'tb_mac'
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class OrderTaskModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ order_number = models.CharField(max_length=32, verbose_name='订单号')
|
|
|
|
+ board = models.CharField(max_length=32, verbose_name='主板')
|
|
|
|
+ plan = models.CharField(max_length=32, verbose_name='配置方案')
|
|
|
|
+ checksum = models.CharField(max_length=32, verbose_name='校验和')
|
|
|
|
+ ic_model = models.CharField(max_length=32, verbose_name='ic型号')
|
|
|
|
+ quantity = models.IntegerField(default=0, verbose_name='通知单上的生成数量')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'order_task'
|
|
|
|
+ verbose_name = '订单任务表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class OrderUIDModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ uid = models.ForeignKey(UIDModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联uid表')
|
|
|
|
+ order = models.ForeignKey(OrderTaskModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联订单任务表')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'order_uid'
|
|
|
|
+ verbose_name = '订单与uid关联表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CountryModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ number = models.IntegerField(unique=True, verbose_name='区号')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+ region = models.ForeignKey(RegionModel, to_field='id', on_delete=models.DO_NOTHING, verbose_name='关联区域表')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_country'
|
|
|
|
+ verbose_name = '地区表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class LanguageModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ lang = models.CharField(max_length=16, default='', verbose_name='语种')
|
|
|
|
+ lang_youdao = models.CharField(max_length=16, default='', verbose_name='有道的语种')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_language'
|
|
|
|
+ verbose_name = '语言表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class CountryLanguageModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ country_name = models.CharField(max_length=64, default='', verbose_name='国家名称')
|
|
|
|
+ language = models.ForeignKey(LanguageModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联语言表的id')
|
|
|
|
+ country = models.ForeignKey(CountryModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联地区表的id')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_country_language'
|
|
|
|
+ verbose_name = '不同语言的地区名称表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class SerialNumberModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ serial_number = models.CharField(max_length=9, db_index=True, verbose_name='序列号')
|
|
|
|
+ status = models.SmallIntegerField(default=1, verbose_name='可用状态。0:不可用,1:可用')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_serial_number'
|
|
|
|
+ verbose_name = '序列号表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+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')
|
|
|
|
+ status = models.SmallIntegerField(default=0, verbose_name='序列号的状态。0:未使用,1:已使用,2:已和UID关联')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_company_serial'
|
|
|
|
+ verbose_name = '企业关联序列号表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+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')
|
|
|
|
+ add_time = models.IntegerField(default=0, verbose_name='添加时间')
|
|
|
|
+ update_time = models.IntegerField(default=0, verbose_name='更新时间')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'tb_uid_company_serial'
|
|
|
|
+ verbose_name = 'UID关联【企业关联序列号】表'
|
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class iotdeviceInfoModel(models.Model):
|
|
|
|
+ id = models.AutoField(primary_key=True)
|
|
|
|
+ uid = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备uid')
|
|
|
|
+ certificateId = models.CharField(blank=True, max_length=256, default='', verbose_name=u'证书id')
|
|
|
|
+ certificatePem = models.TextField(blank=True, default='', verbose_name=u'证书项目')
|
|
|
|
+ publicKey = models.TextField(blank=True, default='', verbose_name=u'公有密钥')
|
|
|
|
+ privateKey = models.TextField(blank=True, default='', verbose_name=u'私有密钥')
|
|
|
|
+ Thingname = models.CharField(blank=True, max_length=256, default='', verbose_name=u'IoT Thing Name')
|
|
|
|
+
|
|
|
|
+ class Meta:
|
|
|
|
+ db_table = 'iot_deviceInfo'
|
|
|
|
+ verbose_name = 'iot设备信息表'
|
|
verbose_name_plural = verbose_name
|
|
verbose_name_plural = verbose_name
|