102 lines
2.5 KiB
Python
102 lines
2.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
certificate_model.py
|
|
"""
|
|
from __future__ import print_function, unicode_literals, absolute_import, division
|
|
|
|
from datetime import datetime
|
|
|
|
from peewee import IntegerField, DateTimeField, AutoField, TextField, CharField
|
|
from playhouse.shortcuts import model_to_dict
|
|
|
|
from domain_admin.model.base_model import BaseModel
|
|
from domain_admin.utils import datetime_util, time_util
|
|
|
|
|
|
class CertificateModel(BaseModel):
|
|
"""
|
|
证书托管表
|
|
@since v1.6.12
|
|
"""
|
|
id = AutoField(primary_key=True)
|
|
|
|
# 用户id
|
|
user_id = IntegerField(default=0)
|
|
|
|
# 域名
|
|
domain = CharField(null=False)
|
|
|
|
# SSL证书
|
|
ssl_certificate = TextField(default=None, null=True)
|
|
|
|
# SSL证书私钥
|
|
ssl_certificate_key = TextField(default=None, null=True)
|
|
|
|
# SSL签发时间
|
|
start_time = DateTimeField(default=None, null=True)
|
|
|
|
# SSL过期时间
|
|
expire_time = DateTimeField(default=None, null=True)
|
|
|
|
# 备注
|
|
comment = CharField(default="")
|
|
|
|
# 数据版本号
|
|
version = IntegerField(default=0, null=False)
|
|
|
|
# 创建时间
|
|
create_time = DateTimeField(default=datetime.now)
|
|
|
|
# 更新时间
|
|
update_time = DateTimeField(default=datetime.now)
|
|
|
|
class Meta:
|
|
|
|
table_name = 'tb_certificate'
|
|
|
|
@property
|
|
def certificate_id(self):
|
|
return self.id
|
|
|
|
@property
|
|
def create_time_label(self):
|
|
return datetime_util.time_for_human(self.create_time)
|
|
|
|
@property
|
|
def update_time_label(self):
|
|
return datetime_util.time_for_human(self.update_time)
|
|
|
|
@property
|
|
def start_date(self):
|
|
if self.start_time and isinstance(self.start_time, datetime):
|
|
return self.start_time.strftime('%Y-%m-%d')
|
|
|
|
@property
|
|
def expire_date(self):
|
|
if self.expire_time and isinstance(self.expire_time, datetime):
|
|
return self.expire_time.strftime('%Y-%m-%d')
|
|
|
|
@property
|
|
def real_time_expire_days(self):
|
|
"""
|
|
实时ssl过期剩余天数
|
|
expire_days 是更新数据时所计算的时间,有滞后性
|
|
:return: int
|
|
"""
|
|
return time_util.get_diff_days(datetime.now(), self.expire_time)
|
|
|
|
def to_dict(self):
|
|
data = model_to_dict(
|
|
model=self,
|
|
extra_attrs=[
|
|
'create_time_label',
|
|
'update_time_label',
|
|
'real_time_expire_days',
|
|
'start_date',
|
|
'expire_date',
|
|
'certificate_id',
|
|
]
|
|
)
|
|
|
|
return data
|