Compare commits

..

No commits in common. "6d975266a6c444b6f94b11a265718502fa1a53a3" and "dded072bad8333c9efbaa1f813b897c74b416c65" have entirely different histories.

2 changed files with 19 additions and 38 deletions

View File

@ -40,11 +40,6 @@ func (a *ChatAutoReplyRulerHandler) CreateChatAutoReplyRuler(c *gin.Context) {
service.Error(c, err)
return
}
err = ChatHandlerIns.robot.ReloadRules(c)
if err != nil {
service.Error(c, err)
return
}
service.Success(c)
}
@ -78,11 +73,6 @@ func (a *ChatAutoReplyRulerHandler) UpdateChatAutoReplyRuler(c *gin.Context) {
service.Error(c, err)
return
}
err = ChatHandlerIns.robot.ReloadRules(c)
if err != nil {
service.Error(c, err)
return
}
service.Success(c)
}

View File

@ -56,8 +56,25 @@ func NewRobot(cache *chatCache.ChatCache) *Robot {
},
cache: cache,
}
err = r.ReloadRules(ctx)
fmt.Println("机器人规则加载失败")
ruleListRes, err := service.AccountFieeProvider.GetChatAutoReplyRulerList(ctx, &accountFiee.GetChatAutoReplyRulerListRequest{
Query: &accountFiee.ChatAutoReplyRulerData{Status: 1},
Page: 1,
PageSize: -1,
})
if err != nil {
log.Printf("robot 查询回复规则失败:%v\n", err)
} else {
var data []*dto.ChatAutoReplyData
for _, v := range ruleListRes.List {
tmp := dto.ChatAutoReplyData{}
tmp.Parse(v)
data = append(data, &tmp)
}
for _, v := range data {
reply := ParseReplyRule(v)
r.Rules = append(r.Rules, reply)
}
}
consts.ChatRoom.RegisterEventListener(r.EventListener)
go r.Run()
return r
@ -197,29 +214,3 @@ func (r *Robot) RegisterDelayTask(task RobotTask) {
}
r.DelayTask = append(r.DelayTask, task)
}
func (r *Robot) ReloadRules(ctx context.Context) error {
r.mu.Lock()
defer r.mu.Unlock()
r.Rules = []Reply{}
ruleListRes, err := service.AccountFieeProvider.GetChatAutoReplyRulerList(ctx, &accountFiee.GetChatAutoReplyRulerListRequest{
Query: &accountFiee.ChatAutoReplyRulerData{Status: 1},
Page: 1,
PageSize: -1,
})
if err != nil {
log.Printf("robot 查询回复规则失败:%v\n", err)
return fmt.Errorf("robot 查询回复规则失败:%v\n", err)
} else {
var data []*dto.ChatAutoReplyData
for _, v := range ruleListRes.List {
tmp := dto.ChatAutoReplyData{}
tmp.Parse(v)
data = append(data, &tmp)
}
for _, v := range data {
reply := ParseReplyRule(v)
r.Rules = append(r.Rules, reply)
}
}
return nil
}