فهرست منبع

接入企业微信加好友,标签+客户列表等功能

lichangdong 4 روز پیش
والد
کامیت
6dce7d50d0
3فایلهای تغییر یافته به همراه24 افزوده شده و 36 حذف شده
  1. 1 1
      crontask/wx_add_friend.go
  2. 3 3
      hook/contact.go
  3. 20 32
      internal/service/addfriend/add_wechat_friend_log.go

+ 1 - 1
crontask/wx_add_friend.go

@@ -104,7 +104,7 @@ func (l *CronTask) wxAddFriend() {
 				task.OwnerWxID, addCount, WX_DAILY_ADDCOUNT)
 			continue
 		}
-		ok := serv.AddNewFriend(task.OwnerWxID, task.FindContent, task.Message)
+		ok := serv.AddNewFriend(task.OwnerWxID, task.FindContent, task.Message, task.OwnerWxType)
 		l.Logger.Debugf("serv.AddNewFriend()=>%v", ok)
 	}
 

+ 3 - 3
hook/contact.go

@@ -411,9 +411,9 @@ func (h *Hook) AddWecomCustomerFromSearchTask(ownerWxId, phone, msg string, task
 
 // AddWecomCustomerFromSearchTask  用于添加好友任务的消息结构
 type AddWecomCustomerFromSearchTask struct {
-	WxId   string   `json:"WeChatId"`
-	Key    string   `json:"Phones"`
-	Msg    string   `json:"message"`
+	WxId   string   `json:"WxId"`
+	Key    string   `json:"Key"`
+	Msg    string   `json:"Msg"`
 	Memo   string   `json:"Memo"`
 	TaskId int64    `json:"TaskId"`
 	Labels []string `json:"Labels"`

+ 20 - 32
internal/service/addfriend/add_wechat_friend_log.go

@@ -57,46 +57,33 @@ func (l *AddWechatFriendService) FindFriendByContent(wechatId, content string) b
 // content  手机号 或者其他
 // message  备注
 
-func (l *AddWechatFriendService) AddNewFriend(wechatId, content, message string) bool {
+func (l *AddWechatFriendService) AddNewFriend(wechatId, content, message string, wechatType int) bool {
 	//先记录请求
-	hookClient := hook.NewHook("", "", "")
-	node, err := snowflake.NewNode(1) // 1 是节点 ID,根据需要设置
-	if err != nil {
-		log.Fatal(err)
+	if wechatType != 1 && wechatType != 2 {
+		return false
 	}
-	taskId := node.Generate()
-	result, err := hookClient.AddFriendTask(wechatId, content, message, taskId.Int64())
-	if err == nil {
-		result["sendResult"] = "success"
+	var hookClient *hook.Hook
+	var node *snowflake.Node
+	var err error
+	if wechatType == 1 {
+		hookClient = hook.NewHook("", "", "")
+		node, err = snowflake.NewNode(1) // 1 是节点 ID,根据需要设置
 	} else {
-		result["sendResult"] = err
-	}
-	update := l.svcCtx.DB.AddWechatFriendLog.Update().
-		Where(addwechatfriendlog.OwnerWxIDEQ(wechatId)).
-		Where(addwechatfriendlog.FindContentEQ(content)).
-		SetAddRequest(result).
-		SetTaskID(taskId.Int64()).
-		AddTaskCount(1).
-		SetUpdatedAt(time.Now().Unix())
-	_, err = update.Save(l.ctx)
-	logx.Infof("更新 AddWechatFriendLog-field-add-result成功: %v", result)
-	if err != nil || result["sendResult"] != "success" {
-		logx.Errorf("更新 AddWechatFriendLog 失败 或者: %v", err)
-		return false
+		hookClient = hook.NewWecomHook("", "", "")
+		node, err = snowflake.NewNode(1)
 	}
-	return true //获取好友列表
-}
-
-func (l *AddWechatFriendService) WecomAddNewFriend(wechatId, content, message string) bool {
-	//先记录请求
-	hookWecomClient := hook.NewWecomHook("", "", "")
-	node, err := snowflake.NewNode(1)
-	// 1 是节点 ID,根据需要设置
 	if err != nil {
 		log.Fatal(err)
 	}
 	taskId := node.Generate()
-	result, err := hookWecomClient.AddWecomCustomerFromSearchTask(wechatId, content, message, taskId.Int64())
+
+	var result map[string]interface{}
+
+	if wechatType == 1 {
+		result, err = hookClient.AddFriendTask(wechatId, content, message, taskId.Int64())
+	} else {
+		result, err = hookClient.AddWecomCustomerFromSearchTask(wechatId, content, message, taskId.Int64())
+	}
 
 	if err == nil {
 		result["sendResult"] = "success"
@@ -111,6 +98,7 @@ func (l *AddWechatFriendService) WecomAddNewFriend(wechatId, content, message st
 		AddTaskCount(1).
 		SetUpdatedAt(time.Now().Unix())
 	_, err = update.Save(l.ctx)
+	logx.Infof("更新 AddWechatFriendLog-field-add-result成功: %v", result)
 	if err != nil || result["sendResult"] != "success" {
 		logx.Errorf("更新 AddWechatFriendLog 失败 或者: %v", err)
 		return false