Files
hfb_sys/backend/internal/modules/chat/support_scene.go
T
yml2213 66ca2693b3 支持客服入口按业务场景分流到客服分组
联系客服支持 scene(general/mohong),按用户与场景复用会话;摸大红入口走摸大红分组选人。
2026-07-16 20:05:10 +08:00

45 lines
1.3 KiB
Go

package chat
import (
"strings"
"hfb_sys/backend/internal/modules/supportgroup"
"gorm.io/gorm"
)
// 客服入口业务场景(与前端 POST /chats/support 的 scene 对齐)。
const (
SupportSceneGeneral = "general"
SupportSceneMohong = "mohong"
)
// resolveSupportScene 规范化场景并返回标题、客服分组 code、欢迎语。
// groupCode 为空时表示不走分组,使用默认客服选取逻辑。
func resolveSupportScene(raw string) (scene, title, groupCode, welcome string) {
switch strings.ToLower(strings.TrimSpace(raw)) {
case SupportSceneMohong:
return SupportSceneMohong,
"摸大红客服",
supportgroup.GroupCodeMohong,
"您好,这里是摸大红客服。请直接描述问题,可将订单信息复制后发送。"
default:
// 未知场景回落平台客服,避免随意 scene 绕开分配策略
return SupportSceneGeneral,
"平台客服",
"",
"您好,客服会尽快回复,请直接描述您遇到的问题。"
}
}
// pickSupportAdminForScene 按分组选人;分组无成员或失败时回退默认客服逻辑。
func pickSupportAdminForScene(tx *gorm.DB, groupCode string) uint64 {
groupCode = strings.TrimSpace(groupCode)
if groupCode != "" {
if id, err := supportgroup.PickSupportAdmin(tx, groupCode); err == nil && id > 0 {
return id
}
}
return defaultSupportAdminID(tx)
}