feat: 投诉工单支持填写QQ/微信/手机联系方式
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
26
gongdan/migrations/0004_gongdan_contact.py
Normal file
26
gongdan/migrations/0004_gongdan_contact.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('gongdan', '0003_club_human_kefu'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gongdan',
|
||||||
|
name='contact_qq',
|
||||||
|
field=models.CharField(blank=True, default='', max_length=32, verbose_name='联系QQ'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gongdan',
|
||||||
|
name='contact_wechat',
|
||||||
|
field=models.CharField(blank=True, default='', max_length=64, verbose_name='联系微信'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gongdan',
|
||||||
|
name='contact_phone',
|
||||||
|
field=models.CharField(blank=True, default='', max_length=20, verbose_name='联系手机'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -19,6 +19,10 @@ class Gongdan(QModel):
|
|||||||
target_user_id = models.CharField(max_length=32, blank=True, default='', db_index=True, verbose_name='被投诉人UID')
|
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='投诉说明')
|
shuoming = models.CharField(max_length=500, verbose_name='投诉说明')
|
||||||
|
# 投诉人自填联系方式(选填,便于客服回访)
|
||||||
|
contact_qq = models.CharField(max_length=32, blank=True, default='', verbose_name='联系QQ')
|
||||||
|
contact_wechat = models.CharField(max_length=64, blank=True, default='', verbose_name='联系微信')
|
||||||
|
contact_phone = models.CharField(max_length=20, blank=True, default='', verbose_name='联系手机')
|
||||||
shenqingren_id = models.CharField(max_length=32, db_index=True, verbose_name='申请人UserUID')
|
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='俱乐部')
|
club_id = models.CharField(max_length=16, null=True, blank=True, db_index=True, verbose_name='俱乐部')
|
||||||
|
|
||||||
|
|||||||
@@ -333,6 +333,9 @@ def serialize_gongdan(gd, include_images=True, include_shengji=False, *, viewer_
|
|||||||
'chongzhi_id': gd.chongzhi_id or '',
|
'chongzhi_id': gd.chongzhi_id or '',
|
||||||
'fadan_id': gd.fadan_id or '',
|
'fadan_id': gd.fadan_id or '',
|
||||||
'shuoming': gd.shuoming or '',
|
'shuoming': gd.shuoming or '',
|
||||||
|
'contact_qq': getattr(gd, 'contact_qq', '') or '',
|
||||||
|
'contact_wechat': getattr(gd, 'contact_wechat', '') or '',
|
||||||
|
'contact_phone': getattr(gd, 'contact_phone', '') or '',
|
||||||
'club_id': gd.club_id or '',
|
'club_id': gd.club_id or '',
|
||||||
'zhuangtai': gd.zhuangtai,
|
'zhuangtai': gd.zhuangtai,
|
||||||
'zhuangtai_label': STATUS_LABELS.get(gd.zhuangtai, str(gd.zhuangtai)),
|
'zhuangtai_label': STATUS_LABELS.get(gd.zhuangtai, str(gd.zhuangtai)),
|
||||||
@@ -601,6 +604,9 @@ def create_gongdan(
|
|||||||
target_role=None,
|
target_role=None,
|
||||||
target_user_id=None,
|
target_user_id=None,
|
||||||
image_urls=None,
|
image_urls=None,
|
||||||
|
contact_qq=None,
|
||||||
|
contact_wechat=None,
|
||||||
|
contact_phone=None,
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
leixing = int(leixing)
|
leixing = int(leixing)
|
||||||
@@ -640,6 +646,9 @@ def create_gongdan(
|
|||||||
target_role=t_role or '',
|
target_role=t_role or '',
|
||||||
target_user_id=t_uid or '',
|
target_user_id=t_uid or '',
|
||||||
shuoming=text,
|
shuoming=text,
|
||||||
|
contact_qq=_trim(contact_qq or '', 32),
|
||||||
|
contact_wechat=_trim(contact_wechat or '', 64),
|
||||||
|
contact_phone=_trim(contact_phone or '', 20),
|
||||||
shenqingren_id=yonghuid,
|
shenqingren_id=yonghuid,
|
||||||
club_id=club_id or None,
|
club_id=club_id or None,
|
||||||
zhuangtai=STATUS_PROCESSING,
|
zhuangtai=STATUS_PROCESSING,
|
||||||
|
|||||||
@@ -108,6 +108,9 @@ class GongdanCreateView(APIView):
|
|||||||
target_role=d.get('target_role'),
|
target_role=d.get('target_role'),
|
||||||
target_user_id=d.get('target_user_id') or d.get('zuzhang_id') or d.get('guanshi_id'),
|
target_user_id=d.get('target_user_id') or d.get('zuzhang_id') or d.get('guanshi_id'),
|
||||||
image_urls=images,
|
image_urls=images,
|
||||||
|
contact_qq=d.get('contact_qq') or d.get('qq') or '',
|
||||||
|
contact_wechat=d.get('contact_wechat') or d.get('wechat') or d.get('wx') or '',
|
||||||
|
contact_phone=d.get('contact_phone') or d.get('phone') or d.get('mobile') or '',
|
||||||
)
|
)
|
||||||
return _ok(
|
return _ok(
|
||||||
serialize_gongdan(gd, include_images=True, include_shengji=True, viewer_uid=request.user.UserUID),
|
serialize_gongdan(gd, include_images=True, include_shengji=True, viewer_uid=request.user.UserUID),
|
||||||
|
|||||||
Reference in New Issue
Block a user