241 lines
13 KiB
Python
241 lines
13 KiB
Python
|
import uuid
|
||
|
|
||
|
from .choices import *
|
||
|
from apps.user.models import User
|
||
|
|
||
|
|
||
|
class PaymentRecord(models.Model):
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='payment_records')
|
||
|
pay_type = models.IntegerField(
|
||
|
choices=PaymentType.choices, verbose_name="付费类型")
|
||
|
activity_type = models.IntegerField(
|
||
|
choices=PaymentActivityType.choices, verbose_name="活动类型")
|
||
|
pay_amount = models.IntegerField(verbose_name="付费金额")
|
||
|
pay_time = models.DateTimeField(verbose_name="付费时间")
|
||
|
expire_time = models.DateTimeField(verbose_name="到期时间")
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = "py_payment_record"
|
||
|
verbose_name = "付费记录"
|
||
|
verbose_name_plural = verbose_name
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class Activity(models.Model):
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='activities',
|
||
|
db_index=True)
|
||
|
template = models.ForeignKey('Activity',
|
||
|
on_delete=models.DO_NOTHING, verbose_name="模板", db_constraint=False,
|
||
|
related_name='children', null=True, blank=True)
|
||
|
title = models.CharField(max_length=100, verbose_name="标题")
|
||
|
remark = models.TextField(verbose_name="备注", null=True, blank=True)
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
pv = models.IntegerField(verbose_name="pv", default=0)
|
||
|
# business_domain = models.ForeignKey('Domain', to_field='domain', db_constraint=False, on_delete=models.DO_NOTHING,
|
||
|
# verbose_name='业务域名', related_name='business_activities', null=True,
|
||
|
# blank=True,
|
||
|
# db_column='business_domain')
|
||
|
# short_chain_domain = models.ForeignKey('Domain', to_field='domain', db_constraint=False,
|
||
|
# on_delete=models.DO_NOTHING, null=True, blank=True,
|
||
|
# verbose_name='短链域名', related_name='short_chain_activities',
|
||
|
# db_column='short_chain_domain')
|
||
|
domain = models.ForeignKey('Domain', db_constraint=False, on_delete=models.DO_NOTHING,
|
||
|
verbose_name='业务域名', related_name='activities', null=True, blank=True)
|
||
|
business_domain = models.CharField(
|
||
|
max_length=100, verbose_name="业务域名", null=True, blank=True)
|
||
|
short_chain_domain = models.CharField(
|
||
|
max_length=100, verbose_name="短链域名", null=True, blank=True)
|
||
|
activity_type = models.IntegerField(choices=ActivityType.choices,
|
||
|
verbose_name="活动类型")
|
||
|
link_type = models.IntegerField(choices=ActivityLinkType.choices,
|
||
|
verbose_name="链接类型")
|
||
|
is_top = models.BooleanField(default=False, verbose_name="是否置顶")
|
||
|
create_json = models.JSONField(
|
||
|
verbose_name="创建json", null=True, blank=True)
|
||
|
request_json = models.JSONField(
|
||
|
verbose_name="请求json", null=True, blank=True)
|
||
|
response_json = models.JSONField(
|
||
|
verbose_name="响应json", null=True, blank=True)
|
||
|
platform_id = models.IntegerField(
|
||
|
verbose_name="平台id", null=True, blank=True)
|
||
|
is_quick_code = models.BooleanField(default=False, verbose_name="是否是快码")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
corpid = models.CharField(max_length=32, verbose_name="企业微信corpid", null=True, blank=True)
|
||
|
externaluserid = models.CharField(
|
||
|
max_length=32, verbose_name="外部联系人id", null=True, blank=True)
|
||
|
tklexpiretime = models.DateTimeField(
|
||
|
verbose_name="淘口令过期时间", null=True, blank=True)
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_activity'
|
||
|
verbose_name = '活动表'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
def add_activity_history(self):
|
||
|
activity_history = ActivityHistory()
|
||
|
activity_history.activity = self
|
||
|
for field in self._meta.fields:
|
||
|
if field.name in ['id']:
|
||
|
continue
|
||
|
|
||
|
if hasattr(activity_history, field.name):
|
||
|
setattr(activity_history, field.name, getattr(self, field.name))
|
||
|
activity_history.save()
|
||
|
|
||
|
|
||
|
class ActivityHistory(models.Model):
|
||
|
activity = models.ForeignKey('Activity',
|
||
|
on_delete=models.DO_NOTHING, verbose_name="活动", db_constraint=False,
|
||
|
related_name='history')
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='history_activities',
|
||
|
db_index=True)
|
||
|
template = models.ForeignKey('Activity',
|
||
|
on_delete=models.DO_NOTHING, verbose_name="模板", db_constraint=False,
|
||
|
related_name='history_templates', null=True, blank=True)
|
||
|
title = models.CharField(max_length=100, verbose_name="标题")
|
||
|
remark = models.TextField(verbose_name="备注", null=True, blank=True)
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
pv = models.IntegerField(verbose_name="pv", default=0)
|
||
|
domain = models.ForeignKey('Domain', db_constraint=False, on_delete=models.DO_NOTHING,
|
||
|
verbose_name='业务域名', related_name='history_activities', null=True, blank=True)
|
||
|
business_domain = models.CharField(
|
||
|
max_length=100, verbose_name="业务域名", null=True, blank=True)
|
||
|
short_chain_domain = models.CharField(
|
||
|
max_length=100, verbose_name="短链域名", null=True, blank=True)
|
||
|
activity_type = models.IntegerField(choices=ActivityType.choices,
|
||
|
verbose_name="活动类型")
|
||
|
link_type = models.IntegerField(choices=ActivityLinkType.choices,
|
||
|
verbose_name="链接类型")
|
||
|
is_top = models.BooleanField(default=False, verbose_name="是否置顶")
|
||
|
create_json = models.JSONField(
|
||
|
verbose_name="创建json", null=True, blank=True)
|
||
|
request_json = models.JSONField(
|
||
|
verbose_name="请求json", null=True, blank=True)
|
||
|
response_json = models.JSONField(
|
||
|
verbose_name="响应json", null=True, blank=True)
|
||
|
platform_id = models.IntegerField(
|
||
|
verbose_name="平台id", null=True, blank=True)
|
||
|
is_quick_code = models.BooleanField(default=False, verbose_name="是否是快码")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_activity_history'
|
||
|
verbose_name = '历史表'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class Domain(models.Model):
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='domains',
|
||
|
db_index=True
|
||
|
)
|
||
|
domain = models.CharField(
|
||
|
max_length=100, verbose_name="域名", null=True, blank=True)
|
||
|
business_type = models.IntegerField(
|
||
|
verbose_name="业务类型", choices=DomainBusinessType.choices)
|
||
|
is_system = models.BooleanField(verbose_name="是否是系统", default=False)
|
||
|
domain_type = models.IntegerField(
|
||
|
verbose_name="域名类型", choices=DomainType.choices)
|
||
|
app_key = models.CharField(
|
||
|
max_length=100, verbose_name="app_key", null=True, blank=True)
|
||
|
secret = models.CharField(
|
||
|
max_length=100, verbose_name="secret", null=True, blank=True)
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_domain'
|
||
|
verbose_name = '域名表'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class Authorization(models.Model):
|
||
|
name = models.CharField(max_length=100, verbose_name="名称")
|
||
|
remark = models.TextField(verbose_name="备注", blank=True, null=True)
|
||
|
cookie_key = models.CharField(
|
||
|
verbose_name="cookie key", max_length=32, null=True, blank=True, default=lambda: uuid.uuid4().hex)
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False, related_name='authorizations',
|
||
|
db_index=True)
|
||
|
platform_type = models.IntegerField(
|
||
|
verbose_name="平台类型", choices=AuthorizationPlatformType.choices)
|
||
|
uid = models.CharField(
|
||
|
max_length=100, verbose_name="平台uid", null=True, blank=True)
|
||
|
# authorization_type = models.IntegerField(
|
||
|
# verbose_name="授权类型", choices=AuthorizationType.choices)
|
||
|
account = models.CharField(
|
||
|
max_length=100, verbose_name="账号", null=True, blank=True)
|
||
|
password = models.CharField(
|
||
|
max_length=100, verbose_name="密码", null=True, blank=True)
|
||
|
app_key_secret_info = models.JSONField(
|
||
|
null=True, blank=True, verbose_name="app_key_secret授权信息")
|
||
|
cookie_info = models.JSONField(
|
||
|
null=True, blank=True, verbose_name="cookie授权信息")
|
||
|
auth_info = models.JSONField(null=True, blank=True, verbose_name="授权信息")
|
||
|
is_delete = models.BooleanField(default=False, verbose_name="是否删除")
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
cookie_update_time = models.DateTimeField(
|
||
|
null=True, blank=True, verbose_name="cookie更新时间")
|
||
|
auth_update_time = models.DateTimeField(
|
||
|
null=True, blank=True, verbose_name="授权更新时间")
|
||
|
app_key_secret_update_time = models.DateTimeField(
|
||
|
null=True, blank=True, verbose_name="授权更新时间")
|
||
|
cookie_warning_setting = models.IntegerField(verbose_name='cookie报警设置', null=True, blank=True)
|
||
|
cookie_check_result = models.IntegerField(verbose_name='cookie检测结果', null=True, blank=True,
|
||
|
choices=AuthorizationCookieCheckResultChoices.choices)
|
||
|
cookie_check_time = models.DateTimeField(verbose_name='cookie检测时间', null=True, blank=True)
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_authorization'
|
||
|
verbose_name = '授权表'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class ComplaintPageRecord(models.Model):
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False,
|
||
|
related_name='complaint_page_records', db_index=True)
|
||
|
activity = models.ForeignKey('Activity', on_delete=models.DO_NOTHING,
|
||
|
verbose_name="活动", db_constraint=False, related_name='complaint_page_records',
|
||
|
db_index=True)
|
||
|
info = models.JSONField(null=True, blank=True, verbose_name="投诉信息")
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_complaint_page_record'
|
||
|
verbose_name = '投诉页记录'
|
||
|
ordering = ['-create_time']
|
||
|
|
||
|
|
||
|
class QuickCode(models.Model):
|
||
|
user = models.ForeignKey(
|
||
|
User, on_delete=models.DO_NOTHING, verbose_name="用户", db_constraint=False,
|
||
|
related_name='quick_codes', db_index=True)
|
||
|
activity = models.ForeignKey('Activity', on_delete=models.DO_NOTHING,
|
||
|
verbose_name="活动", db_constraint=False, related_name='quick_codes',
|
||
|
db_index=True)
|
||
|
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||
|
create_method = models.IntegerField(
|
||
|
choices=QuickCodeCreateMethodType.choices, default=QuickCodeCreateMethodType.MANUAL, verbose_name="创建方式")
|
||
|
quick_code_url = models.CharField(
|
||
|
max_length=255, null=True, blank=True, verbose_name="快码url")
|
||
|
converted_url = models.CharField(
|
||
|
max_length=255, null=True, blank=True, verbose_name="被转链url")
|
||
|
quick_code_type = models.IntegerField(
|
||
|
choices=QuickCodeType.choices, default=QuickCodeType.OFFICIAL, verbose_name="快码类型")
|
||
|
|
||
|
class Meta:
|
||
|
db_table = 'py_quick_code'
|
||
|
verbose_name = '快码记录'
|
||
|
ordering = ['-create_time']
|