// Package autoReply ----------------------------- // @file : rulerList.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2025/6/13 16:16 // ------------------------------------------- package robot import ( "fmt" "fonchain-fiee/pkg/service/asChat/dto" "strings" ) // 自动回复规则结构转换 func ParseReplyRule(data []*dto.ChatAutoReplyData) (joinSessionRules, keywordsRules, noReplyAfterRules []IRobotTask) { for _, responseRules := range data { responseRules := responseRules for ruleName, v := range responseRules.Rules { if !v.Enable { continue } switch ruleName { case "keywords": //关键字回复 var keywords []string if v.Content == "" { continue } else { keywords = strings.Split(v.Content, ",") } fmt.Println("ParseReplyRule 解析keywords:", keywords) r := NewReplyWhenHitKeywords(responseRules.Title+"-keywords", keywords) r.SetResponse(responseRules.Response) keywordsRules = append(keywordsRules, r) case "joinSession": //加入聊天后回复 r := NewReplyWhenUserJoinSession(responseRules.Title + "-joinSession") r.SetResponse(responseRules.Response) joinSessionRules = append(joinSessionRules, r) case "noReplyAfter": //指定时间没有回复则自动回复 if v.SecondDuration == 0 { continue } r := NewReplyWhenWaiterNoAction(responseRules.Title+"-noReplyAfter", v.SecondDuration) r.SetResponse(responseRules.Response) noReplyAfterRules = append(noReplyAfterRules, r) } } } return }