初始化项目
This commit is contained in:
39
customerserver/consts/account/platform.go
Normal file
39
customerserver/consts/account/platform.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package account
|
||||
|
||||
import "github.com/gogf/gf/v2/util/gconv"
|
||||
|
||||
var (
|
||||
PlatformXHS = newPlatform(gconv.PtrString("xiaohongshu"), "小红书")
|
||||
PlatformDY = newPlatform(gconv.PtrString("douyin"), "抖音")
|
||||
PlatformKS = newPlatform(gconv.PtrString("kuaishou"), "快手")
|
||||
)
|
||||
|
||||
type Platform *string
|
||||
|
||||
type platform struct {
|
||||
code Platform
|
||||
desc string
|
||||
}
|
||||
|
||||
func (s platform) Code() Platform {
|
||||
return s.code
|
||||
}
|
||||
func (s platform) Desc() string {
|
||||
return s.desc
|
||||
}
|
||||
|
||||
func newPlatform(code Platform, desc string) platform {
|
||||
return platform{code: code, desc: desc}
|
||||
}
|
||||
|
||||
func GetDescByCode(code Platform) string {
|
||||
switch *code {
|
||||
case *PlatformXHS.Code():
|
||||
return PlatformXHS.Desc()
|
||||
case *PlatformDY.Code():
|
||||
return PlatformDY.Desc()
|
||||
case *PlatformKS.Code():
|
||||
return PlatformKS.Desc()
|
||||
}
|
||||
return "未知平台"
|
||||
}
|
||||
26
customerserver/consts/account/status.go
Normal file
26
customerserver/consts/account/status.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package account
|
||||
|
||||
import "github.com/gogf/gf/v2/util/gconv"
|
||||
|
||||
var (
|
||||
StatusDisable = newStatus(gconv.PtrInt8(0), "disable")
|
||||
StatusEnable = newStatus(gconv.PtrInt8(1), "enable")
|
||||
)
|
||||
|
||||
type Status *int8
|
||||
|
||||
type status struct {
|
||||
code Status
|
||||
desc string
|
||||
}
|
||||
|
||||
func (s status) Code() Status {
|
||||
return s.code
|
||||
}
|
||||
func (s status) Desc() string {
|
||||
return s.desc
|
||||
}
|
||||
|
||||
func newStatus(code Status, desc string) status {
|
||||
return status{code: code, desc: desc}
|
||||
}
|
||||
5
customerserver/consts/errors.go
Normal file
5
customerserver/consts/errors.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package consts
|
||||
|
||||
const ReClick = "操作过于频繁,请稍后再试。"
|
||||
const NoRow = "未找到可用数据。"
|
||||
const GenerateQrCodeFail = "生成二维码失败。"
|
||||
16
customerserver/consts/public/msg_key.go
Normal file
16
customerserver/consts/public/msg_key.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package public
|
||||
|
||||
const GmqMsgPluginsName = "gmq_msg"
|
||||
|
||||
const (
|
||||
AccountMsgKey = "account:%s:%s:%s"
|
||||
AccountDialogHistoryKey = "account:dialog:history:%s"
|
||||
AccountGreetingOptionsKey = "account:greeting:options:%s"
|
||||
)
|
||||
|
||||
const (
|
||||
AccountFollowupTopic = "account:followup:stream" // 请求 Stream 键名(与发消息的key一致)
|
||||
AccountFollowupConsumer = "account-followup-consumer" // 消费者名称(唯一标识)
|
||||
AccountFollowupCount = 1 // 批处理大小(每次读取1条)
|
||||
AccountFollowupAck = false // ACK是否自动确认(true自动确认,false不确认)
|
||||
)
|
||||
18
customerserver/consts/public/session_tool.go
Normal file
18
customerserver/consts/public/session_tool.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package public
|
||||
|
||||
// 欢迎语
|
||||
const (
|
||||
GreetingBegin = "您好,很高兴为您服务!请问有什么可以帮您?"
|
||||
GreetingBetween = "💗回复数字就好~"
|
||||
GreetingEnd = "🌟也可直接点击下方咨询专业老师~"
|
||||
)
|
||||
|
||||
// 追问
|
||||
const (
|
||||
SceneOpeningRemark = "宝子,刚才给您发的信息您有看到吗?有任何问题都能直接问我,加微信也能更方便沟通~"
|
||||
SceneDialog = "看您暂时没回复,是不是还有什么疑问?加微信我详细给您说明~"
|
||||
SceneCardSend = "宝子,加上没~要及时加哦,不然卡片容易失效哒✨"
|
||||
)
|
||||
|
||||
// 对话超时时间
|
||||
const DialogTimeout = 10
|
||||
8
customerserver/consts/public/table_name.go
Normal file
8
customerserver/consts/public/table_name.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package public
|
||||
|
||||
// sql 数据库表名
|
||||
const (
|
||||
TableNameAccount = "account"
|
||||
TableNameAccountUserDialog = "account_user_dialog"
|
||||
TableNameScriptedSpeech = "scripted_speech"
|
||||
)
|
||||
4
customerserver/consts/redis_key.go
Normal file
4
customerserver/consts/redis_key.go
Normal file
@@ -0,0 +1,4 @@
|
||||
package consts
|
||||
|
||||
const QrCodeCount = "qrCodeCount:order:%s"
|
||||
const QrCode = "qrCode:order:%s"
|
||||
39
customerserver/consts/scriptedSpeech/scene_type.go
Normal file
39
customerserver/consts/scriptedSpeech/scene_type.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package scriptedSpeech
|
||||
|
||||
import "github.com/gogf/gf/v2/util/gconv"
|
||||
|
||||
var (
|
||||
SceneTypeOpeningRemark = newSceneType(gconv.PtrInt8(1), "开场白无回应")
|
||||
SceneTypeDialog = newSceneType(gconv.PtrInt8(2), "对话中途无回应")
|
||||
SceneTypeCardSend = newSceneType(gconv.PtrInt8(3), "卡片发送后无回应")
|
||||
)
|
||||
|
||||
type SceneType *int8
|
||||
|
||||
type sceneType struct {
|
||||
code SceneType
|
||||
desc string
|
||||
}
|
||||
|
||||
func (s sceneType) Code() SceneType {
|
||||
return s.code
|
||||
}
|
||||
func (s sceneType) Desc() string {
|
||||
return s.desc
|
||||
}
|
||||
|
||||
func newSceneType(code SceneType, desc string) sceneType {
|
||||
return sceneType{code: code, desc: desc}
|
||||
}
|
||||
|
||||
func GetDescByCode(code SceneType) string {
|
||||
switch *code {
|
||||
case *SceneTypeOpeningRemark.Code():
|
||||
return SceneTypeOpeningRemark.Desc()
|
||||
case *SceneTypeDialog.Code():
|
||||
return SceneTypeDialog.Desc()
|
||||
case *SceneTypeCardSend.Code():
|
||||
return SceneTypeCardSend.Desc()
|
||||
}
|
||||
return "未知场景类型"
|
||||
}
|
||||
52
digitalhuman/consts/age.go
Normal file
52
digitalhuman/consts/age.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package consts
|
||||
|
||||
// Age 年龄段类型
|
||||
type Age string
|
||||
|
||||
// 年龄段常量
|
||||
const (
|
||||
AgeChild Age = "child" // 儿童
|
||||
AgeTeenager Age = "teenager" // 青少年
|
||||
AgeYoung Age = "young" // 青年
|
||||
AgeMiddle Age = "middle" // 中年
|
||||
AgeSenior Age = "senior" // 老年
|
||||
AgeUnlimited Age = "unlimited" // 不限
|
||||
)
|
||||
|
||||
// GetAgeText 获取年龄段文本
|
||||
func GetAgeText(age string) string {
|
||||
switch age {
|
||||
case string(AgeChild):
|
||||
return "儿童"
|
||||
case string(AgeTeenager):
|
||||
return "青少年"
|
||||
case string(AgeYoung):
|
||||
return "青年"
|
||||
case string(AgeMiddle):
|
||||
return "中年"
|
||||
case string(AgeSenior):
|
||||
return "老年"
|
||||
case string(AgeUnlimited):
|
||||
return "不限"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllAgeKeyValue 获取所有年龄段选项
|
||||
func GetAllAgeKeyValue() []AgeKeyValue {
|
||||
return []AgeKeyValue{
|
||||
{Value: string(AgeChild), Label: "儿童"},
|
||||
{Value: string(AgeTeenager), Label: "青少年"},
|
||||
{Value: string(AgeYoung), Label: "青年"},
|
||||
{Value: string(AgeMiddle), Label: "中年"},
|
||||
{Value: string(AgeSenior), Label: "老年"},
|
||||
{Value: string(AgeUnlimited), Label: "不限"},
|
||||
}
|
||||
}
|
||||
|
||||
// AgeKeyValue 年龄段键值对
|
||||
type AgeKeyValue struct {
|
||||
Value string `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
40
digitalhuman/consts/audio_status.go
Normal file
40
digitalhuman/consts/audio_status.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package consts
|
||||
|
||||
// AudioStatus 音频状态类型
|
||||
type AudioStatus int
|
||||
|
||||
// 音频状态常量
|
||||
const (
|
||||
AudioStatusGenerating AudioStatus = 0 // 生成中
|
||||
AudioStatusSuccess AudioStatus = 1 // 成功
|
||||
AudioStatusFailed AudioStatus = 2 // 失败
|
||||
)
|
||||
|
||||
// GetAudioStatusText 获取音频状态文本
|
||||
func GetAudioStatusText(status int) string {
|
||||
switch status {
|
||||
case int(AudioStatusGenerating):
|
||||
return "生成中"
|
||||
case int(AudioStatusSuccess):
|
||||
return "成功"
|
||||
case int(AudioStatusFailed):
|
||||
return "失败"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllAudioStatusKeyValue 获取所有音频状态选项
|
||||
func GetAllAudioStatusKeyValue() []AudioStatusKeyValue {
|
||||
return []AudioStatusKeyValue{
|
||||
{Value: int(AudioStatusGenerating), Label: "生成中"},
|
||||
{Value: int(AudioStatusSuccess), Label: "成功"},
|
||||
{Value: int(AudioStatusFailed), Label: "失败"},
|
||||
}
|
||||
}
|
||||
|
||||
// AudioStatusKeyValue 音频状态键值对
|
||||
type AudioStatusKeyValue struct {
|
||||
Value int `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
8
digitalhuman/consts/collections.go
Normal file
8
digitalhuman/consts/collections.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package consts
|
||||
|
||||
// MongoDB集合名称常量
|
||||
const (
|
||||
DigitalHumanCollection = "digital_human" // 数字人形象集合
|
||||
AudioCollection = "audio" // 音频集合
|
||||
VideoCollection = "video" // 视频集合
|
||||
)
|
||||
55
digitalhuman/consts/digitalhuman_status.go
Normal file
55
digitalhuman/consts/digitalhuman_status.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package consts
|
||||
|
||||
// DigitalHumanStatus 数字人状态类型
|
||||
type DigitalHumanStatus int
|
||||
|
||||
// 数字人状态常量
|
||||
const (
|
||||
DigitalHumanStatusInactive DigitalHumanStatus = 0 // 停用
|
||||
DigitalHumanStatusActive DigitalHumanStatus = 1 // 启用
|
||||
)
|
||||
|
||||
// GetDigitalHumanStatusText 获取数字人状态文本
|
||||
func GetDigitalHumanStatusText(status int) string {
|
||||
switch status {
|
||||
case int(DigitalHumanStatusInactive):
|
||||
return "停用"
|
||||
case int(DigitalHumanStatusActive):
|
||||
return "启用"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllDigitalHumanStatusKeyValue 获取所有数字人状态选项
|
||||
func GetAllDigitalHumanStatusKeyValue() []DigitalHumanStatusKeyValue {
|
||||
return []DigitalHumanStatusKeyValue{
|
||||
{Value: int(DigitalHumanStatusInactive), Label: "停用"},
|
||||
{Value: int(DigitalHumanStatusActive), Label: "启用"},
|
||||
}
|
||||
}
|
||||
|
||||
// DigitalHumanStatusKeyValue 数字人状态键值对
|
||||
type DigitalHumanStatusKeyValue struct {
|
||||
Value int `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
|
||||
// GetStatusText 获取状态文本(向后兼容)
|
||||
func GetStatusText(status int) string {
|
||||
return GetDigitalHumanStatusText(status)
|
||||
}
|
||||
|
||||
// GetAllStatusKeyValue 获取所有状态选项(向后兼容)
|
||||
func GetAllStatusKeyValue() []StatusKeyValue {
|
||||
return []StatusKeyValue{
|
||||
{Value: int(DigitalHumanStatusInactive), Label: "停用"},
|
||||
{Value: int(DigitalHumanStatusActive), Label: "启用"},
|
||||
}
|
||||
}
|
||||
|
||||
// StatusKeyValue 状态键值对(向后兼容)
|
||||
type StatusKeyValue struct {
|
||||
Value int `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
40
digitalhuman/consts/gender.go
Normal file
40
digitalhuman/consts/gender.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package consts
|
||||
|
||||
// Gender 性别类型
|
||||
type Gender string
|
||||
|
||||
// 性别常量
|
||||
const (
|
||||
GenderMale Gender = "male" // 男
|
||||
GenderFemale Gender = "female" // 女
|
||||
GenderOther Gender = "other" // 其他
|
||||
)
|
||||
|
||||
// GetGenderText 获取性别文本
|
||||
func GetGenderText(gender string) string {
|
||||
switch gender {
|
||||
case string(GenderMale):
|
||||
return "男"
|
||||
case string(GenderFemale):
|
||||
return "女"
|
||||
case string(GenderOther):
|
||||
return "其他"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllGenderKeyValue 获取所有性别选项
|
||||
func GetAllGenderKeyValue() []GenderKeyValue {
|
||||
return []GenderKeyValue{
|
||||
{Value: string(GenderMale), Label: "男"},
|
||||
{Value: string(GenderFemale), Label: "女"},
|
||||
{Value: string(GenderOther), Label: "其他"},
|
||||
}
|
||||
}
|
||||
|
||||
// GenderKeyValue 性别键值对
|
||||
type GenderKeyValue struct {
|
||||
Value string `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
8
digitalhuman/consts/public/table_name.go
Normal file
8
digitalhuman/consts/public/table_name.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package public
|
||||
|
||||
const (
|
||||
TableNameAudio = "digital_human_audio"
|
||||
TableNameCustomVoice = "digital_human_custom_voice"
|
||||
TableNameVideo = "digital_human_video"
|
||||
TableNameDigitalHuman = "digital_human"
|
||||
)
|
||||
51
digitalhuman/consts/resolution.go
Normal file
51
digitalhuman/consts/resolution.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package consts
|
||||
|
||||
// Resolution 视频分辨率
|
||||
type Resolution string
|
||||
|
||||
const (
|
||||
Resolution480P Resolution = "480p" // 标清
|
||||
Resolution720P Resolution = "720p" // 高清
|
||||
Resolution1080P Resolution = "1080p" // 全高清
|
||||
Resolution2K Resolution = "2k" // 2K超清
|
||||
Resolution4K Resolution = "4k" // 4K超高清
|
||||
Resolution8K Resolution = "8k" // 8K超高清
|
||||
)
|
||||
|
||||
// Text 获取分辨率文本描述
|
||||
func (r Resolution) Text() string {
|
||||
switch r {
|
||||
case Resolution480P:
|
||||
return "标清 (480p)"
|
||||
case Resolution720P:
|
||||
return "高清 (720p)"
|
||||
case Resolution1080P:
|
||||
return "全高清 (1080p)"
|
||||
case Resolution2K:
|
||||
return "2K超清 (1440p)"
|
||||
case Resolution4K:
|
||||
return "4K超高清 (2160p)"
|
||||
case Resolution8K:
|
||||
return "8K超高清 (4320p)"
|
||||
default:
|
||||
return string(r)
|
||||
}
|
||||
}
|
||||
|
||||
// ResolutionKeyValue 分辨率键值对(用于前端选项)
|
||||
type ResolutionKeyValue struct {
|
||||
Key string `json:"key"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
// GetResolutionOptions 获取所有分辨率选项
|
||||
func GetResolutionOptions() []ResolutionKeyValue {
|
||||
return []ResolutionKeyValue{
|
||||
{Key: string(Resolution480P), Value: Resolution480P.Text()},
|
||||
{Key: string(Resolution720P), Value: Resolution720P.Text()},
|
||||
{Key: string(Resolution1080P), Value: Resolution1080P.Text()},
|
||||
{Key: string(Resolution2K), Value: Resolution2K.Text()},
|
||||
{Key: string(Resolution4K), Value: Resolution4K.Text()},
|
||||
{Key: string(Resolution8K), Value: Resolution8K.Text()},
|
||||
}
|
||||
}
|
||||
60
digitalhuman/consts/style.go
Normal file
60
digitalhuman/consts/style.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package consts
|
||||
|
||||
// Style 风格类型
|
||||
type Style string
|
||||
|
||||
// 风格常量
|
||||
const (
|
||||
StyleBusiness Style = "business" // 商务
|
||||
StyleCasual Style = "casual" // 休闲
|
||||
StyleFormal Style = "formal" // 正式
|
||||
StyleCreative Style = "creative" // 创意
|
||||
StyleElegant Style = "elegant" // 优雅
|
||||
StyleFriendly Style = "friendly" // 友好
|
||||
StyleProfessional Style = "professional" // 专业
|
||||
StyleUnlimited Style = "unlimited" // 不限
|
||||
)
|
||||
|
||||
// GetStyleText 获取风格文本
|
||||
func GetStyleText(style string) string {
|
||||
switch style {
|
||||
case string(StyleBusiness):
|
||||
return "商务"
|
||||
case string(StyleCasual):
|
||||
return "休闲"
|
||||
case string(StyleFormal):
|
||||
return "正式"
|
||||
case string(StyleCreative):
|
||||
return "创意"
|
||||
case string(StyleElegant):
|
||||
return "优雅"
|
||||
case string(StyleFriendly):
|
||||
return "友好"
|
||||
case string(StyleProfessional):
|
||||
return "专业"
|
||||
case string(StyleUnlimited):
|
||||
return "不限"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllStyleKeyValue 获取所有风格选项
|
||||
func GetAllStyleKeyValue() []StyleKeyValue {
|
||||
return []StyleKeyValue{
|
||||
{Value: string(StyleBusiness), Label: "商务"},
|
||||
{Value: string(StyleCasual), Label: "休闲"},
|
||||
{Value: string(StyleFormal), Label: "正式"},
|
||||
{Value: string(StyleCreative), Label: "创意"},
|
||||
{Value: string(StyleElegant), Label: "优雅"},
|
||||
{Value: string(StyleFriendly), Label: "友好"},
|
||||
{Value: string(StyleProfessional), Label: "专业"},
|
||||
{Value: string(StyleUnlimited), Label: "不限"},
|
||||
}
|
||||
}
|
||||
|
||||
// StyleKeyValue 风格键值对
|
||||
type StyleKeyValue struct {
|
||||
Value string `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
40
digitalhuman/consts/video_status.go
Normal file
40
digitalhuman/consts/video_status.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package consts
|
||||
|
||||
// VideoStatus 视频状态类型
|
||||
type VideoStatus int
|
||||
|
||||
// 视频生成状态常量
|
||||
const (
|
||||
VideoStatusGenerating VideoStatus = 0 // 生成中
|
||||
VideoStatusSuccess VideoStatus = 1 // 成功
|
||||
VideoStatusFailed VideoStatus = 2 // 失败
|
||||
)
|
||||
|
||||
// GetVideoStatusText 获取视频状态文本
|
||||
func GetVideoStatusText(status int) string {
|
||||
switch status {
|
||||
case int(VideoStatusGenerating):
|
||||
return "生成中"
|
||||
case int(VideoStatusSuccess):
|
||||
return "成功"
|
||||
case int(VideoStatusFailed):
|
||||
return "失败"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllVideoStatusKeyValue 获取所有视频状态选项
|
||||
func GetAllVideoStatusKeyValue() []VideoStatusKeyValue {
|
||||
return []VideoStatusKeyValue{
|
||||
{Value: int(VideoStatusGenerating), Label: "生成中"},
|
||||
{Value: int(VideoStatusSuccess), Label: "成功"},
|
||||
{Value: int(VideoStatusFailed), Label: "失败"},
|
||||
}
|
||||
}
|
||||
|
||||
// VideoStatusKeyValue 视频状态键值对
|
||||
type VideoStatusKeyValue struct {
|
||||
Value int `json:"value"`
|
||||
Label string `json:"label"`
|
||||
}
|
||||
10
go.mod
Normal file
10
go.mod
Normal file
@@ -0,0 +1,10 @@
|
||||
module ai-agent
|
||||
|
||||
go 1.25.0
|
||||
|
||||
require github.com/gogf/gf/v2 v2.10.0
|
||||
|
||||
require (
|
||||
go.opentelemetry.io/otel v1.38.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.38.0 // indirect
|
||||
)
|
||||
64
go.sum
Normal file
64
go.sum
Normal file
@@ -0,0 +1,64 @@
|
||||
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
||||
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
|
||||
github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/emirpasic/gods/v2 v2.0.0-alpha h1:dwFlh8pBg1VMOXWGipNMRt8v96dKAIvBehtCt6OtunU=
|
||||
github.com/emirpasic/gods/v2 v2.0.0-alpha/go.mod h1:W0y4M2dtBB9U5z3YlghmpuUhiaZT2h6yoeE+C1sCp6A=
|
||||
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
|
||||
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
|
||||
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
|
||||
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
|
||||
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
|
||||
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/gogf/gf/v2 v2.10.0 h1:rzDROlyqGMe/eM6dCalSR8dZOuMIdLhmxKSH1DGhbFs=
|
||||
github.com/gogf/gf/v2 v2.10.0/go.mod h1:Svl1N+E8G/QshU2DUbh/3J/AJauqCgUnxHurXWR4Qx0=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
|
||||
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4=
|
||||
github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc=
|
||||
github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE=
|
||||
github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
|
||||
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
|
||||
github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
|
||||
github.com/olekukonko/ll v0.0.9 h1:Y+1YqDfVkqMWuEQMclsF9HUR5+a82+dxJuL1HHSRpxI=
|
||||
github.com/olekukonko/ll v0.0.9/go.mod h1:En+sEW0JNETl26+K8eZ6/W4UQ7CYSrrgg/EdIYT2H8g=
|
||||
github.com/olekukonko/tablewriter v1.1.0 h1:N0LHrshF4T39KvI96fn6GT8HEjXRXYNDrDjKFDB7RIY=
|
||||
github.com/olekukonko/tablewriter v1.1.0/go.mod h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
|
||||
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
|
||||
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
|
||||
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
|
||||
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
|
||||
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
|
||||
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
|
||||
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
||||
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
6
workflow/consts/table_name.go
Normal file
6
workflow/consts/table_name.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package consts
|
||||
|
||||
// 数据库表名
|
||||
const (
|
||||
TableNameCreationInfo = "creation_info"
|
||||
)
|
||||
Reference in New Issue
Block a user