feat: support group message now (close #46)

This commit is contained in:
JustSong
2023-05-07 10:33:48 +08:00
parent cd908e4868
commit 1cade7a218
6 changed files with 91 additions and 8 deletions
+31
View File
@@ -0,0 +1,31 @@
package channel
import (
"errors"
"message-pusher/model"
"strings"
)
func SendGroupMessage(message *model.Message, user *model.User, channel_ *model.Channel) error {
subChannels := strings.Split(channel_.AppId, "|")
subTargets := strings.Split(channel_.AccountId, "|")
if len(subChannels) != len(subTargets) {
return errors.New("无效的群组消息配置,子通道数量与子目标数量不一致")
}
for i := 0; i < len(subChannels); i++ {
message.To = subTargets[i]
message.Channel = subChannels[i]
subChannel, err := model.GetChannelByName(subChannels[i], user.Id)
if err != nil {
return errors.New("获取群组消息子通道失败:" + err.Error())
}
if subChannel.Type == model.TypeGroup {
return errors.New("群组消息子通道不能是群组消息")
}
err = SendMessage(message, user, subChannel)
if err != nil {
return errors.New("发送群组消息失败:" + err.Error())
}
}
return nil
}
+2
View File
@@ -31,6 +31,8 @@ func SendMessage(message *model.Message, user *model.User, channel_ *model.Chann
return nil
case model.TypeOneBot:
return SendOneBotMessage(message, user, channel_)
case model.TypeGroup:
return SendGroupMessage(message, user, channel_)
default:
return errors.New("不支持的消息通道:" + channel_.Type)
}