feat: now server part supports multiple channels for the same type (#50)

This commit is contained in:
JustSong
2023-05-05 10:43:56 +08:00
parent b291ed43ca
commit 3a8d625201
21 changed files with 601 additions and 298 deletions
+6 -9
View File
@@ -29,8 +29,8 @@ func (i *WeChatTestAccountTokenStoreItem) Key() string {
}
func (i *WeChatTestAccountTokenStoreItem) IsShared() bool {
return model.DB.Where("wechat_test_account_id = ? and wechat_test_account_secret = ?",
i.AppID, i.AppSecret).Find(&model.User{}).RowsAffected != 1
return model.DB.Where("type = ? and app_id = ? and secret = ?",
model.TypeWeChatTestAccount, i.AppID, i.AppSecret).Find(&model.Channel{}).RowsAffected != 1
}
func (i *WeChatTestAccountTokenStoreItem) IsFilled() bool {
@@ -88,13 +88,10 @@ type wechatTestMessageResponse struct {
ErrorMessage string `json:"errmsg"`
}
func SendWeChatTestMessage(message *model.Message, user *model.User) error {
if user.WeChatTestAccountId == "" {
return errors.New("未配置微信测试号消息推送方式")
}
func SendWeChatTestMessage(message *model.Message, user *model.User, channel_ *model.Channel) error {
values := wechatTestMessageRequest{
ToUser: user.WeChatTestAccountOpenId,
TemplateId: user.WeChatTestAccountTemplateId,
ToUser: channel_.AccountId,
TemplateId: channel_.Other,
URL: "",
}
values.Data.Text.Value = message.Description
@@ -103,7 +100,7 @@ func SendWeChatTestMessage(message *model.Message, user *model.User) error {
if err != nil {
return err
}
key := fmt.Sprintf("%s%s", user.WeChatTestAccountId, user.WeChatTestAccountSecret)
key := fmt.Sprintf("%s%s", channel_.AppId, channel_.Secret)
accessToken := TokenStoreGetToken(key)
resp, err := http.Post(fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s", accessToken), "application/json",
bytes.NewBuffer(jsonData))