Browse Source

fix:edit send_wx.go

jimmyyem 7 months ago
parent
commit
18e8bb7912
1 changed files with 11 additions and 21 deletions
  1. 11 21
      crontask/send_wx.go

+ 11 - 21
crontask/send_wx.go

@@ -3,13 +3,13 @@ package crontask
 import (
 	"context"
 	"encoding/json"
-	"github.com/imroc/req/v3"
 	"strings"
 	"time"
 	"wechat-api/ent"
 	"wechat-api/ent/messagerecords"
 	"wechat-api/ent/server"
 	"wechat-api/ent/wx"
+	"wechat-api/hook"
 	"wechat-api/internal/types/payload"
 )
 
@@ -57,11 +57,6 @@ func (l *CronTask) sendWx() {
 
 	startTime := time.Now()
 
-	client := req.C().DevMode()
-	client.SetCommonRetryCount(2).
-		SetCommonRetryBackoffInterval(1*time.Second, 5*time.Second).
-		SetCommonRetryFixedInterval(2 * time.Second).SetTimeout(30 * time.Second)
-
 	type SendTextMsgReq struct {
 		Wxid string `json:"wxid"`
 		Msg  string `json:"msg"`
@@ -76,10 +71,10 @@ func (l *CronTask) sendWx() {
 	// 从 Redis 中获取服务器信息(ip, port)
 	getServerInfo := func(wxid string) (string, error) {
 		key := "crontask_wx_server_info"
-		val, err := l.svcCtx.Rds.HGet(ctx, key, wxid).Result()
-		if err != nil {
-			return "", err
-		}
+		val, _ := l.svcCtx.Rds.HGet(ctx, key, wxid).Result()
+		//if err != nil {
+		//	return "", err
+		//}
 
 		if val == "" {
 			wx, err := l.svcCtx.DB.Wx.Query().Where(wx.WxidEQ(wxid)).First(l.ctx)
@@ -92,7 +87,7 @@ func (l *CronTask) sendWx() {
 				l.Logger.Errorf("get server info failed wxid=%v err=%v", wxid, err)
 				return "", err
 			}
-			val = server.PrivateIP + ":" + server.AdminPort
+			val = server.PrivateIP + ":" + server.AdminPort + ":" + wx.Port
 			l.svcCtx.Rds.HSet(ctx, key, wxid, val)
 		}
 
@@ -102,7 +97,7 @@ func (l *CronTask) sendWx() {
 	for _, v := range messages {
 		serverInfo, _ := getServerInfo(v.BotWxid)
 		infoArray := strings.Split(serverInfo, ":")
-		ip, wxPort := infoArray[0], infoArray[1]
+		serverIp, adminPort, wxPort := infoArray[0], infoArray[1], infoArray[2]
 
 		// 更新 status 值为 2(发送中)
 		tx, err := l.svcCtx.DB.Tx(l.ctx)
@@ -113,17 +108,12 @@ func (l *CronTask) sendWx() {
 			continue
 		}
 
+		hookClient := hook.NewHook(serverIp, adminPort, wxPort)
+
 		if v.ContentType == 1 {
-			_, err = client.R().SetBody(&SendTextMsgReq{
-				Wxid: v.ContactWxid,
-				Msg:  v.Content,
-			}).Post("http://" + ip + ":" + wxPort + "/SendTextMsg")
+			err = hookClient.SendTextMsg(v.ContactWxid, v.Content)
 		} else {
-			_, err = client.R().SetBody(&SendFileMsgReq{
-				Wxid:        v.ContactWxid,
-				Filepath:    v.Content,
-				Diyfilename: v.Meta.Filename,
-			}).Post("http://" + ip + ":" + wxPort + "/SendFileMsg")
+			err = hookClient.SendPicMsg(v.ContactWxid, v.Content, v.Meta.Filename)
 		}
 
 		if err != nil {