Init
This commit is contained in:
Vendored
+144
@@ -0,0 +1,144 @@
|
||||
package quickreply
|
||||
|
||||
import (
|
||||
"cs-agent/internal/models"
|
||||
"cs-agent/internal/pkg/enums"
|
||||
"cs-agent/internal/repositories"
|
||||
"time"
|
||||
|
||||
"github.com/mlogclub/simple/sqls"
|
||||
)
|
||||
|
||||
func Init() error {
|
||||
seed := []struct {
|
||||
id int64
|
||||
groupName string
|
||||
title string
|
||||
content string
|
||||
status enums.Status
|
||||
sortNo int
|
||||
}{
|
||||
{
|
||||
id: 1,
|
||||
groupName: "新客接待",
|
||||
title: "首次接入欢迎语",
|
||||
content: "您好,欢迎来到贝壳AI客服中心,我是今天为您服务的顾问。您可以直接告诉我您想了解的产品、价格或接入方式,我这边先帮您快速判断。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 100,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
groupName: "产品咨询",
|
||||
title: "产品能力概览",
|
||||
content: "我们当前支持智能问答、知识库检索、会话转人工、标签体系、快捷回复和客服工作台管理。如果您已经有业务场景,我可以按场景给您拆方案。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 95,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
groupName: "产品咨询",
|
||||
title: "部署方式说明",
|
||||
content: "系统支持私有化部署和云端部署两种方式。若您对数据合规要求较高,建议优先评估私有化;如果希望快速上线,可以先从云端版本开始。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 90,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
groupName: "报价跟进",
|
||||
title: "报价前信息收集",
|
||||
content: "为了给您更准确的报价,麻烦提供一下预计坐席人数、日均会话量、是否需要知识库和是否有私有化部署需求,我整理后尽快给您反馈。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 85,
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
groupName: "报价跟进",
|
||||
title: "报价已发送提醒",
|
||||
content: "您好,方案和报价单已经发送给您了,您方便的时候可以先看下。若您希望我同步讲解功能边界、实施周期和交付方式,我可以直接给您安排。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 80,
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
groupName: "实施上线",
|
||||
title: "排查前确认信息",
|
||||
content: "收到,我先帮您排查。麻烦补充一下问题出现时间、影响范围、具体报错截图,以及最近是否做过配置调整,这样能更快定位。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 75,
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
groupName: "实施上线",
|
||||
title: "配置生效说明",
|
||||
content: "配置已经更新完成,通常 1 到 3 分钟内会生效。建议您刷新页面后重新发起一次测试,如果还有异常,我继续跟进处理。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 70,
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
groupName: "售后支持",
|
||||
title: "问题升级告知",
|
||||
content: "这个问题我已经记录并升级给技术同学处理,当前优先级已标为高。预计今天内会给您第一轮结论,有进展我会第一时间同步。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 65,
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
groupName: "售后支持",
|
||||
title: "版本更新通知模板",
|
||||
content: "您好,本周四晚间会进行一次版本更新,主要涉及知识库检索优化和工作台体验改进。更新期间可能出现短时波动,我们会提前做好回滚预案。",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 60,
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
groupName: "回访运营",
|
||||
title: "试用期回访",
|
||||
content: "您好,想跟您确认一下这几天的试用体验。当前最常用的是哪几个功能?有没有遇到理解成本高、配置复杂或效果不稳定的地方?",
|
||||
status: enums.StatusOk,
|
||||
sortNo: 55,
|
||||
},
|
||||
}
|
||||
|
||||
return sqls.WithTransaction(func(ctx *sqls.TxContext) error {
|
||||
now := time.Now()
|
||||
for _, row := range seed {
|
||||
existing := repositories.QuickReplyRepository.Get(ctx.Tx, row.id)
|
||||
if existing == nil {
|
||||
item := &models.QuickReply{
|
||||
ID: row.id,
|
||||
GroupName: row.groupName,
|
||||
Title: row.title,
|
||||
Content: row.content,
|
||||
Status: row.status,
|
||||
SortNo: row.sortNo,
|
||||
AuditFields: models.AuditFields{
|
||||
CreatedAt: now,
|
||||
CreateUserID: 0,
|
||||
CreateUserName: "system",
|
||||
UpdatedAt: now,
|
||||
UpdateUserID: 0,
|
||||
UpdateUserName: "system",
|
||||
},
|
||||
}
|
||||
if err := repositories.QuickReplyRepository.Create(ctx.Tx, item); err != nil {
|
||||
return err
|
||||
}
|
||||
continue
|
||||
}
|
||||
if err := repositories.QuickReplyRepository.Updates(ctx.Tx, row.id, map[string]any{
|
||||
"group_name": row.groupName,
|
||||
"title": row.title,
|
||||
"content": row.content,
|
||||
"status": row.status,
|
||||
"sort_no": row.sortNo,
|
||||
"updated_at": now,
|
||||
"update_user_id": 0,
|
||||
"update_user_name": "system",
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user