feat: support group message now (close #46)
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user