支持被投诉对象、平台介入、协商中状态与组长投诉;提现硬拦含管事向上牵连组长,默认仅 lxs 开启。 Co-authored-by: Cursor <cursoragent@cursor.com>
94 lines
4.9 KiB
Python
94 lines
4.9 KiB
Python
"""投诉工单模型:主单 + 证据图 + 升级补充说明 + 俱乐部开关。"""
|
||
from django.db import models
|
||
from gvsdsdk.model_base import QModel
|
||
|
||
from gongdan.constants import STATUS_PROCESSING, TYPE_CHOICES, STATUS_CHOICES
|
||
|
||
|
||
class Gongdan(QModel):
|
||
"""投诉工单主表。"""
|
||
gongdan_id = models.CharField(max_length=32, unique=True, db_index=True, verbose_name='工单号')
|
||
leixing = models.IntegerField(db_index=True, choices=TYPE_CHOICES, verbose_name='投诉类型')
|
||
order_id = models.CharField(max_length=64, null=True, blank=True, db_index=True, verbose_name='订单ID')
|
||
chongzhi_id = models.CharField(max_length=64, null=True, blank=True, db_index=True, verbose_name='充值单ID')
|
||
fadan_id = models.CharField(max_length=32, null=True, blank=True, db_index=True, verbose_name='罚单ID')
|
||
guanshi_id = models.CharField(max_length=32, null=True, blank=True, db_index=True, verbose_name='被投诉管事UID(兼容)')
|
||
|
||
# 通用被投诉对象(存库;接口对普通端脱敏不展示 UID)
|
||
target_role = models.CharField(max_length=16, blank=True, default='', db_index=True, verbose_name='被投诉角色')
|
||
target_user_id = models.CharField(max_length=32, blank=True, default='', db_index=True, verbose_name='被投诉人UID')
|
||
|
||
shuoming = models.CharField(max_length=500, verbose_name='投诉说明')
|
||
shenqingren_id = models.CharField(max_length=32, db_index=True, verbose_name='申请人UserUID')
|
||
club_id = models.CharField(max_length=16, null=True, blank=True, db_index=True, verbose_name='俱乐部')
|
||
|
||
zhuangtai = models.IntegerField(
|
||
default=STATUS_PROCESSING, db_index=True, choices=STATUS_CHOICES, verbose_name='状态',
|
||
)
|
||
chuli_jieguo = models.CharField(max_length=500, null=True, blank=True, verbose_name='处理结果说明')
|
||
chuliren_id = models.CharField(max_length=32, null=True, blank=True, db_index=True, verbose_name='处理人UID')
|
||
chuliren_name = models.CharField(max_length=64, null=True, blank=True, verbose_name='处理人展示名')
|
||
chuli_time = models.DateTimeField(null=True, blank=True, verbose_name='处理时间')
|
||
|
||
# 平台介入(对外只展示「平台已介入」,不露客服 UID)
|
||
platform_intervened = models.BooleanField(default=False, db_index=True, verbose_name='平台已介入')
|
||
intervene_at = models.DateTimeField(null=True, blank=True, verbose_name='介入时间')
|
||
intervene_by = models.CharField(max_length=32, blank=True, default='', verbose_name='介入操作人UID(仅存库)')
|
||
intervene_reason = models.CharField(max_length=32, blank=True, default='', verbose_name='介入原因码')
|
||
|
||
shengji_cishu = models.IntegerField(default=0, verbose_name='升级次数')
|
||
CreateTime = models.DateTimeField(auto_now_add=True, db_index=True)
|
||
UpdateTime = models.DateTimeField(auto_now=True)
|
||
|
||
class Meta:
|
||
db_table = 'gongdan'
|
||
verbose_name = '投诉工单'
|
||
ordering = ['-CreateTime']
|
||
|
||
|
||
class GongdanImage(QModel):
|
||
"""工单证据图(最多9张)。"""
|
||
gongdan = models.ForeignKey(
|
||
Gongdan, on_delete=models.CASCADE, related_name='images', db_column='gongdan_pk',
|
||
)
|
||
gongdan_hao = models.CharField(max_length=32, db_index=True, verbose_name='工单号冗余')
|
||
url = models.CharField(max_length=512, verbose_name='图片URL')
|
||
paixu = models.IntegerField(default=0, verbose_name='排序')
|
||
CreateTime = models.DateTimeField(auto_now_add=True)
|
||
|
||
class Meta:
|
||
db_table = 'gongdan_image'
|
||
verbose_name = '工单证据图'
|
||
ordering = ['paixu', 'id']
|
||
|
||
|
||
class GongdanShengji(QModel):
|
||
"""升级/继续投诉补充说明。"""
|
||
gongdan = models.ForeignKey(
|
||
Gongdan, on_delete=models.CASCADE, related_name='shengji_list', db_column='gongdan_pk',
|
||
)
|
||
gongdan_hao = models.CharField(max_length=32, db_index=True, verbose_name='工单号冗余')
|
||
cishu = models.IntegerField(verbose_name='第几次升级')
|
||
shuoming = models.CharField(max_length=500, verbose_name='补充说明')
|
||
shenqingren_id = models.CharField(max_length=32, db_index=True, verbose_name='申请人')
|
||
CreateTime = models.DateTimeField(auto_now_add=True)
|
||
|
||
class Meta:
|
||
db_table = 'gongdan_shengji'
|
||
verbose_name = '工单升级记录'
|
||
ordering = ['cishu', 'id']
|
||
unique_together = [['gongdan', 'cishu']]
|
||
|
||
|
||
class ClubGongdanConfig(QModel):
|
||
"""俱乐部工单相关开关(默认全关,仅种子打开的俱乐部生效)。"""
|
||
club_id = models.CharField(max_length=16, unique=True, db_index=True, verbose_name='俱乐部')
|
||
# 未结清被投诉/牵连时禁止提现
|
||
complaint_withdraw_block = models.BooleanField(default=False, verbose_name='投诉拦截提现')
|
||
CreateTime = models.DateTimeField(auto_now_add=True)
|
||
UpdateTime = models.DateTimeField(auto_now=True)
|
||
|
||
class Meta:
|
||
db_table = 'club_gongdan_config'
|
||
verbose_name = '俱乐部工单配置'
|