累死了,删除了所有跨平台逻辑,进行了表迁移
This commit is contained in:
152
config/models.py
152
config/models.py
@@ -270,112 +270,6 @@ class WithdrawConfig(models.Model):
|
||||
|
||||
|
||||
|
||||
class Club(models.Model):
|
||||
"""合作俱乐部/平台信息表"""
|
||||
# 自己的俱乐部ID(6位字符)
|
||||
club_id = models.CharField(max_length=6, db_index=True, verbose_name='本俱乐部ID')
|
||||
# 对方的俱乐部ID(6位字符)
|
||||
partner_club_id = models.CharField(max_length=6, unique= True,verbose_name='对方俱乐部ID')
|
||||
# 是否开启平台互通(双方互相同意才可传递订单)
|
||||
is_interop_enabled = models.BooleanField(default=False, verbose_name='是否开启平台互通')
|
||||
# 是否同意接收对方订单(对方同意我方发单,但接收订单需我方同意)
|
||||
is_receive_enabled = models.BooleanField(default=False, verbose_name='是否同意接收对方订单')
|
||||
# 打手分红费率(默认100%,即原金额,对方平台打手分成 = 我方打手分成 × 费率)
|
||||
dashou_rate = models.DecimalField(max_digits=5, decimal_places=4, default=1.0000, verbose_name='打手分红费率')
|
||||
# 新增字段:接收对方订单时打手分红费率(默认100%)
|
||||
receive_rate = models.DecimalField(max_digits=5, decimal_places=4, default=1.0000, verbose_name='接收打手分红费率')
|
||||
|
||||
|
||||
# 对方服务器域名(完整 URL,如 https://api.partner.com)
|
||||
partner_domain = models.URLField(max_length=200, 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 = 'club'
|
||||
verbose_name = '俱乐部'
|
||||
verbose_name_plural = '俱乐部'
|
||||
indexes = [
|
||||
models.Index(fields=['club_id']),
|
||||
models.Index(fields=['partner_club_id']),
|
||||
]
|
||||
|
||||
|
||||
class OrderTypeMapping(models.Model):
|
||||
"""对方订单类型 → 我方订单类型 映射表"""
|
||||
partner_club_id = models.CharField(max_length=6, db_index=True, verbose_name='对方俱乐部ID')
|
||||
partner_type_id = models.PositiveIntegerField(verbose_name='对方订单类型ID')
|
||||
partner_type_name = models.CharField(max_length=100, verbose_name='对方订单类型名称')
|
||||
our_type_id = models.PositiveIntegerField(verbose_name='我方订单类型ID')
|
||||
our_type_name = models.CharField(max_length=100, 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 = 'order_type_mapping'
|
||||
verbose_name = '订单类型映射'
|
||||
verbose_name_plural = '订单类型映射'
|
||||
unique_together = (('partner_club_id', 'partner_type_id'),)
|
||||
|
||||
|
||||
class ClubConfig(models.Model):
|
||||
"""
|
||||
俱乐部配置信息表
|
||||
存储俱乐部(我方或对方)的详细配置,如昵称、头像、API密钥等
|
||||
"""
|
||||
# 俱乐部ID(6位字符,与 Club 表中的 club_id 或 partner_club_id 对应)
|
||||
club_id = models.CharField(max_length=6, db_index=True, verbose_name='俱乐部ID')
|
||||
|
||||
# 俱乐部昵称
|
||||
club_nickname = models.CharField(max_length=50, blank=True, default='', verbose_name='俱乐部昵称')
|
||||
|
||||
# 俱乐部头像地址(URL)
|
||||
club_avatar = models.CharField(max_length=500, blank=True, default='', verbose_name='俱乐部头像地址')
|
||||
|
||||
# 俱乐部后台域名(用于API请求)
|
||||
backend_domain = models.CharField(max_length=200, blank=True, default='', verbose_name='后台域名')
|
||||
|
||||
# 聊天API密钥
|
||||
chat_api_key = models.CharField(max_length=200, blank=True, default='', verbose_name='聊天API密钥')
|
||||
|
||||
# 聊天API ID
|
||||
chat_api_id = models.CharField(max_length=200, blank=True, default='', verbose_name='聊天API ID')
|
||||
|
||||
# 客服路径
|
||||
customer_service_api_url = models.CharField(max_length=200, blank=True, default='', verbose_name='客服API URL')
|
||||
customer_service_corp_id = models.CharField(max_length=100, blank=True, default='', verbose_name='客服企业ID')
|
||||
|
||||
# 存储桶域名(如腾讯云COS、阿里云OSS的访问域名)
|
||||
storage_bucket_domain = models.CharField(max_length=500, blank=True, default='', verbose_name='存储桶域名')
|
||||
storage_bucket_name = models.CharField(max_length=100, blank=True, default='', verbose_name='存储桶名称')
|
||||
|
||||
# 标识是我方还是对方俱乐部:1=我方,0=对方(默认0)
|
||||
is_self = models.SmallIntegerField(
|
||||
choices=((0, '对方'), (1, '我方')),
|
||||
default=0,
|
||||
db_index=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 = 'club_config'
|
||||
verbose_name = '俱乐部配置'
|
||||
verbose_name_plural = '俱乐部配置'
|
||||
# 联合唯一约束:同一个俱乐部ID只能有一条记录(无论我方对方),若需要分开则可不加
|
||||
# 但通常一个俱乐部只会存在一种身份,所以加联合唯一约束更安全
|
||||
unique_together = [['club_id']] # 确保每个club_id只有一条配置记录
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.club_nickname or self.club_id} ({'我方' if self.is_self else '对方'})"
|
||||
|
||||
|
||||
class AccountPermission(models.Model):
|
||||
"""账号权限表:记录每个账号拥有的权限及开关状态"""
|
||||
account_id = models.CharField(max_length=11, db_index=True, verbose_name='账号ID')
|
||||
@@ -396,52 +290,6 @@ class AccountPermission(models.Model):
|
||||
|
||||
|
||||
|
||||
# apps/dingdan/models.py (添加新模型)
|
||||
class DailyDispatchStat(models.Model):
|
||||
"""
|
||||
每日派单统计表
|
||||
记录每天向各合作俱乐部派单的数据,用于替代俱乐部表中的累计字段。
|
||||
"""
|
||||
# 日期相关字段(便于快速筛选)
|
||||
date = models.DateField(verbose_name='统计日期', db_index=True)
|
||||
year = models.PositiveSmallIntegerField(verbose_name='年份')
|
||||
month = models.PositiveSmallIntegerField(verbose_name='月份')
|
||||
day = models.PositiveSmallIntegerField(verbose_name='日期')
|
||||
# 派单方向:1=我方派单(我方订单被对方抢单),2=对方派单(对方订单被我方抢单)
|
||||
direction = models.PositiveSmallIntegerField(choices=[(1, '我方派单'), (2, '对方派单')], verbose_name='派单方向')
|
||||
# 对方俱乐部ID
|
||||
partner_club_id = models.CharField(max_length=6, db_index=True, verbose_name='对方俱乐部ID')
|
||||
# 派单数
|
||||
dispatch_count = models.PositiveIntegerField(default=0, verbose_name='派单数')
|
||||
# 派单总额(打手分成 * 费率)
|
||||
dispatch_amount = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='派单总额')
|
||||
# 抢单统计(我方实际抢到的对方派单数/金额)
|
||||
claimed_count = models.PositiveIntegerField(default=0, verbose_name='抢单数')
|
||||
claimed_amount = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, verbose_name='抢单总额')
|
||||
# 成交订单数(预留,当前暂不更新)
|
||||
success_count = models.PositiveIntegerField(default=0, verbose_name='成交订单数')
|
||||
# 成交总额(预留)
|
||||
success_amount = models.DecimalField(max_digits=12, decimal_places=2, default=0.00, 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 = 'daily_dispatch_stat'
|
||||
verbose_name = '每日派单统计'
|
||||
verbose_name_plural = verbose_name
|
||||
indexes = [
|
||||
models.Index(fields=['year', 'month', 'day', 'direction', 'partner_club_id']),
|
||||
models.Index(fields=['date']),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.date} - 方向{self.direction} - 俱乐部{self.partner_club_id} - 派单{self.dispatch_count}次"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# apps/dingdan/models.py (新增模型)
|
||||
|
||||
class DailyIncomeStat(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user