feat: 小程序客服话术表与自动回复接口

- 新增 MiniappScriptScene / MiniappScriptAutoReply 模型与迁移
- 新增 /peizhi/huashuhq、/peizhi/huashu_match 接口及 Admin 配置

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-01 11:59:21 +08:00
parent c7270bcff7
commit b2fcff303b
5 changed files with 222 additions and 7 deletions

View File

@@ -520,3 +520,50 @@ class ClubPindaoImage(QModel):
def __str__(self):
return f'{self.club_id} 频道图{self.sort_order}'
class MiniappScriptScene(QModel):
"""小程序固定场景话术(欢迎语、发图确认等)"""
club_id = models.CharField(max_length=16, default='xq', db_index=True, verbose_name='俱乐部ID')
scene_key = models.CharField(max_length=64, db_index=True, verbose_name='场景键')
title = models.CharField(max_length=128, blank=True, default='', verbose_name='标题')
content = models.TextField(blank=True, default='', verbose_name='正文')
confirm_text = models.CharField(max_length=16, blank=True, default='', verbose_name='确认按钮')
cancel_text = models.CharField(max_length=16, blank=True, default='', verbose_name='取消按钮')
enabled = models.BooleanField(default=True, verbose_name='启用')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'miniapp_script_scene'
verbose_name = '小程序场景话术'
verbose_name_plural = verbose_name
unique_together = [['club_id', 'scene_key']]
def __str__(self):
return f'{self.club_id}:{self.scene_key}'
class MiniappScriptAutoReply(QModel):
"""客服关键词自动回复(支持文本/图片)"""
REPLY_TEXT = 'text'
REPLY_IMAGE = 'image'
REPLY_TYPE_CHOICES = [(REPLY_TEXT, '文本'), (REPLY_IMAGE, '图片')]
club_id = models.CharField(max_length=16, default='xq', db_index=True, verbose_name='俱乐部ID')
keyword = models.CharField(max_length=200, verbose_name='关键词')
reply_type = models.CharField(max_length=16, default=REPLY_TEXT, choices=REPLY_TYPE_CHOICES, verbose_name='回复类型')
reply_content = models.TextField(verbose_name='回复内容(文本或图片URL)')
sort_order = models.IntegerField(default=0, verbose_name='排序(大优先)')
enabled = models.BooleanField(default=True, verbose_name='启用')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'miniapp_script_auto_reply'
verbose_name = '客服自动回复规则'
verbose_name_plural = verbose_name
ordering = ['-sort_order', 'id']
def __str__(self):
return f'{self.club_id}:{self.keyword}'