feat: 投诉工单正规化(介入/牵连提现拦截,仅俱乐部开关)
支持被投诉对象、平台介入、协商中状态与组长投诉;提现硬拦含管事向上牵连组长,默认仅 lxs 开启。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
"""投诉工单模型:主单 + 证据图 + 升级补充说明。"""
|
||||
"""投诉工单模型:主单 + 证据图 + 升级补充说明 + 俱乐部开关。"""
|
||||
from django.db import models
|
||||
from gvsdsdk.model_base import QModel
|
||||
|
||||
@@ -9,11 +9,14 @@ 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='投诉类型')
|
||||
# 按类型选填关联业务 ID(字符串统一存,便于展示与复制)
|
||||
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')
|
||||
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')
|
||||
@@ -27,6 +30,12 @@ class Gongdan(QModel):
|
||||
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)
|
||||
@@ -38,11 +47,10 @@ class Gongdan(QModel):
|
||||
|
||||
|
||||
class GongdanImage(QModel):
|
||||
"""工单证据图(最多9张,以主单当前版本为准;升级时可整体替换)。"""
|
||||
"""工单证据图(最多9张)。"""
|
||||
gongdan = models.ForeignKey(
|
||||
Gongdan, on_delete=models.CASCADE, related_name='images', db_column='gongdan_pk',
|
||||
)
|
||||
# 冗余业务工单号(勿命名 gongdan_id,会与 FK 访问器冲突)
|
||||
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='排序')
|
||||
@@ -55,7 +63,7 @@ class GongdanImage(QModel):
|
||||
|
||||
|
||||
class GongdanShengji(QModel):
|
||||
"""升级/继续投诉补充说明(只记文字与次数;图片改主表 images)。"""
|
||||
"""升级/继续投诉补充说明。"""
|
||||
gongdan = models.ForeignKey(
|
||||
Gongdan, on_delete=models.CASCADE, related_name='shengji_list', db_column='gongdan_pk',
|
||||
)
|
||||
@@ -70,3 +78,16 @@ class GongdanShengji(QModel):
|
||||
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 = '俱乐部工单配置'
|
||||
|
||||
Reference in New Issue
Block a user