164 lines
3.8 KiB
Python
164 lines
3.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
domain_info_model.py
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
import json
|
|
from datetime import datetime
|
|
|
|
from peewee import CharField, IntegerField, DateTimeField, AutoField, BooleanField, TextField
|
|
|
|
from domain_admin.model.base_model import BaseModel
|
|
from domain_admin.utils import time_util, datetime_util
|
|
|
|
|
|
class DomainInfoModel(BaseModel):
|
|
"""
|
|
域名信息表
|
|
@since 1.4.0
|
|
"""
|
|
id = AutoField(primary_key=True)
|
|
|
|
# 用户id
|
|
user_id = IntegerField(null=False)
|
|
|
|
# 分组
|
|
group_id = IntegerField(default=0, null=False)
|
|
|
|
# 备注
|
|
comment = CharField(default="")
|
|
|
|
# 域名
|
|
domain = CharField(null=False)
|
|
|
|
# 域名注册商
|
|
domain_registrar = CharField(default="")
|
|
|
|
# 域名注册商地址
|
|
domain_registrar_url = CharField(default="")
|
|
|
|
# 域名注册时间
|
|
domain_start_time = DateTimeField(default=None, null=True)
|
|
|
|
# 域名过期时间
|
|
domain_expire_time = DateTimeField(default=None, null=True)
|
|
|
|
# 域名过期剩余天数,仅用于排序
|
|
domain_expire_days = IntegerField(default=0, null=False)
|
|
|
|
# 域名信息自动更新
|
|
is_auto_update = BooleanField(default=True)
|
|
|
|
# 域名过期监测
|
|
is_expire_monitor = BooleanField(default=True)
|
|
|
|
# 主办单位名称 @since 1.5.2
|
|
icp_company = CharField(default="")
|
|
|
|
# ICP备案/许可证号 @since 1.5.2
|
|
icp_licence = CharField(default="")
|
|
|
|
# 标签list @since 1.5.2
|
|
tags_raw = TextField(default=None, null=True)
|
|
|
|
# 数据版本号 @since 1.6.3
|
|
version = IntegerField(default=0, null=False)
|
|
|
|
# 创建时间
|
|
create_time = DateTimeField(default=datetime.now)
|
|
|
|
# 更新时间
|
|
update_time = DateTimeField(default=datetime.now)
|
|
|
|
class Meta:
|
|
table_name = 'tb_domain_info'
|
|
|
|
indexes = (
|
|
# 唯一索引
|
|
(('user_id', 'domain'), True), # Note the trailing comma!
|
|
)
|
|
|
|
@property
|
|
def domain_start_date(self):
|
|
if self.domain_start_time and isinstance(self.domain_start_time, datetime):
|
|
return self.domain_start_time.strftime('%Y-%m-%d')
|
|
|
|
start_date = domain_start_date
|
|
|
|
@property
|
|
def domain_expire_date(self):
|
|
if self.domain_expire_time and isinstance(self.domain_expire_time, datetime):
|
|
return self.domain_expire_time.strftime('%Y-%m-%d')
|
|
|
|
expire_date = domain_expire_date
|
|
|
|
@property
|
|
def real_domain_expire_days(self):
|
|
"""
|
|
域名过期天数,用于前端显示
|
|
:return: int
|
|
"""
|
|
return time_util.get_diff_days(datetime.now(), self.domain_expire_time)
|
|
|
|
expire_days = real_domain_expire_days
|
|
|
|
@property
|
|
def update_time_label(self):
|
|
return datetime_util.time_for_human(self.update_time)
|
|
|
|
@property
|
|
def tags(self):
|
|
if self.tags_raw:
|
|
return json.loads(self.tags_raw)
|
|
|
|
@tags.setter
|
|
def tags(self, value):
|
|
self.tags_raw = json.dumps(value, ensure_ascii=False)
|
|
|
|
@property
|
|
def tags_str(self):
|
|
if self.tags:
|
|
return '、'.join(self.tags)
|
|
|
|
|
|
# 数据导入导出字段关系
|
|
FIELD_MAPPING = [
|
|
{
|
|
'name': '域名',
|
|
'field': 'domain',
|
|
},
|
|
{
|
|
'name': '注册时间',
|
|
'field': 'domain_start_date',
|
|
},
|
|
{
|
|
'name': '到期时间',
|
|
'field': 'domain_expire_date',
|
|
},
|
|
{
|
|
'name': '剩余天数',
|
|
'field': 'real_domain_expire_days',
|
|
},
|
|
{
|
|
'name': '分组',
|
|
'field': 'group_name',
|
|
},
|
|
{
|
|
'name': '标签',
|
|
'field': 'tags_str',
|
|
},
|
|
{
|
|
'name': '主办单位名称',
|
|
'field': 'icp_company',
|
|
},
|
|
{
|
|
'name': 'ICP备案/许可证号',
|
|
'field': 'icp_licence',
|
|
},
|
|
{
|
|
'name': '备注',
|
|
'field': 'comment',
|
|
},
|
|
]
|