Procházet zdrojové kódy

自动同步个微

boweniac před 2 týdny
rodič
revize
159b62fccb

+ 1 - 1
crontask/init.go

@@ -44,7 +44,7 @@ func ScheduleRun(c *cron.Cron, serverCtx *svc.ServiceContext) {
 	//})
 
 	syncWx := NewCronTask(context.Background(), serverCtx)
-	c.AddFunc("0 * * * *", func() {
+	c.AddFunc("* * * * *", func() {
 		syncWx.syncWx()
 	})
 }

+ 27 - 26
internal/service/MessageHandlers/friend_push_notice.go

@@ -3,7 +3,7 @@ package MessageHandlers
 import (
 	"context"
 	"encoding/json"
-	"github.com/spf13/cast"
+	"github.com/zeromicro/go-zero/core/logx"
 	"wechat-api/ent/wx"
 	"wechat-api/hook"
 	"wechat-api/internal/pkg/wechat_ws"
@@ -34,34 +34,35 @@ func (f *FriendPushNoticeHandler) Handler(msg *wechat_ws.MsgJsonObject) error {
 				wx.WxidEQ(message.WeChatId), // Additional filter by organizationId
 			).
 			Only(context.TODO())
-
 		hookClient := hook.NewHook("", "", "")
 		for _, friend := range message.Friends {
-			friendType := 1
-			if friend.Type == 1 {
-				friendType = 2
-				_ = hookClient.RequestChatRoomInfo(friend.FriendId, message.WeChatId)
-			} else {
-				friendType = 1
-			}
-
-			_, err = f.svcCtx.DB.Contact.Create().
-				SetWxWxid(message.WeChatId).
-				SetType(friendType).
-				SetWxid(friend.FriendId).
-				SetAccount(friend.FriendNo).
-				SetNickname(friend.FriendNick).
-				SetMarkname(friend.Memo).
-				SetHeadimg(friend.Avatar).
-				SetSex(cast.ToInt(friend.Gender)).
-				SetOrganizationID(wx_info.OrganizationID).
-				OnConflict().
-				UpdateNewValues().
-				SetOrganizationID(wx_info.OrganizationID).
-				ID(context.TODO())
+			if message.WeChatId == "wxid_ifzo7uu0cl3b22" {
+				friendType := 1
+				if friend.Type == 1 {
+					friendType = 2
+					_ = hookClient.RequestChatRoomInfo(friend.FriendId, message.WeChatId)
+				} else {
+					friendType = 1
+				}
+				_, err = f.svcCtx.DB.Contact.Create().
+					SetWxWxid(message.WeChatId).
+					SetType(friendType).
+					SetWxid(friend.FriendId).
+					SetAccount(friend.FriendNo).
+					SetNickname(friend.FriendNick).
+					SetMarkname(friend.Memo).
+					SetHeadimg(friend.Avatar).
+					//SetSex(cast.ToInt(friend.Gender)).
+					SetOrganizationID(wx_info.OrganizationID).
+					OnConflict().
+					UpdateNewValues().
+					SetOrganizationID(wx_info.OrganizationID).
+					ID(context.TODO())
 
-			if err != nil {
-				return err
+				if err != nil {
+					logx.Error("Contact.Create: ", wx_info.OrganizationID)
+					return err
+				}
 			}
 		}
 	}

+ 2 - 2
proto/FriendAddNotice.proto

@@ -1,14 +1,14 @@
 syntax = "proto3";
 package Jubo.JuLiao.IM.Wx.Proto; //命名空间约定
 option go_package = "./workphone";
-import "TransportMessage.proto";
+//import "TransportMessage.proto";
 
 message FriendMessage {
     string FriendId = 1; // wxid
     string FriendNo = 2; // 微信号
     string FriendNick = 3; // 昵称
     string Memo = 4; // 备注
-    EnumGender Gender = 5; //性别
+    string Gender = 5; //性别
     string Country = 6; //国家 (非必传)
     string Province = 7; //省份
     string City = 8; //城市

+ 72 - 81
workphone/FriendAddNotice.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.35.2
-// 	protoc        v5.28.3
+// 	protoc-gen-go v1.36.5
+// 	protoc        v3.21.12
 // source: FriendAddNotice.proto
 
 package workphone
@@ -11,6 +11,7 @@ import (
 	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 	reflect "reflect"
 	sync "sync"
+	unsafe "unsafe"
 )
 
 const (
@@ -21,26 +22,25 @@ const (
 )
 
 type FriendMessage struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	FriendId      string                 `protobuf:"bytes,1,opt,name=FriendId,proto3" json:"FriendId,omitempty"`     // wxid
+	FriendNo      string                 `protobuf:"bytes,2,opt,name=FriendNo,proto3" json:"FriendNo,omitempty"`     // 微信号
+	FriendNick    string                 `protobuf:"bytes,3,opt,name=FriendNick,proto3" json:"FriendNick,omitempty"` // 昵称
+	Memo          string                 `protobuf:"bytes,4,opt,name=Memo,proto3" json:"Memo,omitempty"`             // 备注
+	Gender        string                 `protobuf:"bytes,5,opt,name=Gender,proto3" json:"Gender,omitempty"`         //性别
+	Country       string                 `protobuf:"bytes,6,opt,name=Country,proto3" json:"Country,omitempty"`       //国家 (非必传)
+	Province      string                 `protobuf:"bytes,7,opt,name=Province,proto3" json:"Province,omitempty"`     //省份
+	City          string                 `protobuf:"bytes,8,opt,name=City,proto3" json:"City,omitempty"`             //城市
+	Avatar        string                 `protobuf:"bytes,9,opt,name=Avatar,proto3" json:"Avatar,omitempty"`         //头像
+	Remark        string                 `protobuf:"bytes,10,opt,name=Remark,proto3" json:"Remark,omitempty"`        // 业务备注
+	Type          int32                  `protobuf:"varint,11,opt,name=Type,proto3" json:"Type,omitempty"`           // 联系人类型,参考 (&512 消息免打扰)
+	LabelIds      string                 `protobuf:"bytes,12,opt,name=LabelIds,proto3" json:"LabelIds,omitempty"`    // 标签Id
+	Phone         string                 `protobuf:"bytes,13,opt,name=Phone,proto3" json:"Phone,omitempty"`          // 手机号
+	Desc          string                 `protobuf:"bytes,14,opt,name=Desc,proto3" json:"Desc,omitempty"`            // 描述
+	Source        int32                  `protobuf:"varint,15,opt,name=Source,proto3" json:"Source,omitempty"`       // 好友来源
+	SourceExt     string                 `protobuf:"bytes,16,opt,name=SourceExt,proto3" json:"SourceExt,omitempty"`  //来源扩展信息
 	unknownFields protoimpl.UnknownFields
-
-	FriendId   string     `protobuf:"bytes,1,opt,name=FriendId,proto3" json:"FriendId,omitempty"`                                      // wxid
-	FriendNo   string     `protobuf:"bytes,2,opt,name=FriendNo,proto3" json:"FriendNo,omitempty"`                                      // 微信号
-	FriendNick string     `protobuf:"bytes,3,opt,name=FriendNick,proto3" json:"FriendNick,omitempty"`                                  // 昵称
-	Memo       string     `protobuf:"bytes,4,opt,name=Memo,proto3" json:"Memo,omitempty"`                                              // 备注
-	Gender     EnumGender `protobuf:"varint,5,opt,name=Gender,proto3,enum=Jubo.JuLiao.IM.Wx.Proto.EnumGender" json:"Gender,omitempty"` //性别
-	Country    string     `protobuf:"bytes,6,opt,name=Country,proto3" json:"Country,omitempty"`                                        //国家 (非必传)
-	Province   string     `protobuf:"bytes,7,opt,name=Province,proto3" json:"Province,omitempty"`                                      //省份
-	City       string     `protobuf:"bytes,8,opt,name=City,proto3" json:"City,omitempty"`                                              //城市
-	Avatar     string     `protobuf:"bytes,9,opt,name=Avatar,proto3" json:"Avatar,omitempty"`                                          //头像
-	Remark     string     `protobuf:"bytes,10,opt,name=Remark,proto3" json:"Remark,omitempty"`                                         // 业务备注
-	Type       int32      `protobuf:"varint,11,opt,name=Type,proto3" json:"Type,omitempty"`                                            // 联系人类型,参考 (&512 消息免打扰)
-	LabelIds   string     `protobuf:"bytes,12,opt,name=LabelIds,proto3" json:"LabelIds,omitempty"`                                     // 标签Id
-	Phone      string     `protobuf:"bytes,13,opt,name=Phone,proto3" json:"Phone,omitempty"`                                           // 手机号
-	Desc       string     `protobuf:"bytes,14,opt,name=Desc,proto3" json:"Desc,omitempty"`                                             // 描述
-	Source     int32      `protobuf:"varint,15,opt,name=Source,proto3" json:"Source,omitempty"`                                        // 好友来源
-	SourceExt  string     `protobuf:"bytes,16,opt,name=SourceExt,proto3" json:"SourceExt,omitempty"`                                   //来源扩展信息
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FriendMessage) Reset() {
@@ -101,11 +101,11 @@ func (x *FriendMessage) GetMemo() string {
 	return ""
 }
 
-func (x *FriendMessage) GetGender() EnumGender {
+func (x *FriendMessage) GetGender() string {
 	if x != nil {
 		return x.Gender
 	}
-	return EnumGender_UnknownGender
+	return ""
 }
 
 func (x *FriendMessage) GetCountry() string {
@@ -186,12 +186,11 @@ func (x *FriendMessage) GetSourceExt() string {
 }
 
 type FriendAddNoticeMessage struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	WeChatId      string                 `protobuf:"bytes,1,opt,name=WeChatId,proto3" json:"WeChatId,omitempty"` // 全局唯一识别码
+	Friend        *FriendMessage         `protobuf:"bytes,3,opt,name=Friend,proto3" json:"Friend,omitempty"`     // 好友信息
 	unknownFields protoimpl.UnknownFields
-
-	WeChatId string         `protobuf:"bytes,1,opt,name=WeChatId,proto3" json:"WeChatId,omitempty"` // 全局唯一识别码
-	Friend   *FriendMessage `protobuf:"bytes,3,opt,name=Friend,proto3" json:"Friend,omitempty"`     // 好友信息
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FriendAddNoticeMessage) Reset() {
@@ -240,59 +239,55 @@ func (x *FriendAddNoticeMessage) GetFriend() *FriendMessage {
 
 var File_FriendAddNotice_proto protoreflect.FileDescriptor
 
-var file_FriendAddNotice_proto_rawDesc = []byte{
+var file_FriendAddNotice_proto_rawDesc = string([]byte{
 	0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63,
 	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x4a, 0x75, 0x62, 0x6f, 0x2e, 0x4a, 0x75,
 	0x4c, 0x69, 0x61, 0x6f, 0x2e, 0x49, 0x4d, 0x2e, 0x57, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
-	0x1a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
-	0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69,
-	0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72,
-	0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x72,
-	0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
-	0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
-	0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x69, 0x63, 0x6b,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x69,
-	0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x4a, 0x75, 0x62, 0x6f, 0x2e, 0x4a, 0x75,
+	0x22, 0x9d, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
+	0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a,
+	0x0a, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x08, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72,
+	0x69, 0x65, 0x6e, 0x64, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+	0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x4d, 0x65,
+	0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x16,
+	0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+	0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72,
+	0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79,
+	0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
+	0x43, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79,
+	0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61,
+	0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b,
+	0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+	0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x73,
+	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x73,
+	0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0e,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f,
+	0x75, 0x72, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72,
+	0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x74, 0x18,
+	0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x74,
+	0x22, 0x74, 0x0a, 0x16, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x74,
+	0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65,
+	0x43, 0x68, 0x61, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x65,
+	0x43, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x4a, 0x75, 0x62, 0x6f, 0x2e, 0x4a, 0x75,
 	0x4c, 0x69, 0x61, 0x6f, 0x2e, 0x49, 0x4d, 0x2e, 0x57, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f,
-	0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x47, 0x65, 0x6e,
-	0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x06,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a,
-	0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74,
-	0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a,
-	0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41,
-	0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18,
-	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a,
-	0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70,
-	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x73, 0x18, 0x0c, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x73, 0x12, 0x14, 0x0a,
-	0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68,
-	0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x04, 0x44, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63,
-	0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
-	0x1c, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x74, 0x18, 0x10, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x78, 0x74, 0x22, 0x74, 0x0a,
-	0x16, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65,
-	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x65, 0x43, 0x68, 0x61,
-	0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x57, 0x65, 0x43, 0x68, 0x61,
-	0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x4a, 0x75, 0x62, 0x6f, 0x2e, 0x4a, 0x75, 0x4c, 0x69, 0x61,
-	0x6f, 0x2e, 0x49, 0x4d, 0x2e, 0x57, 0x78, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x72,
-	0x69, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x46, 0x72, 0x69,
-	0x65, 0x6e, 0x64, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x68, 0x6f,
-	0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
+	0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06,
+	0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x77, 0x6f, 0x72, 0x6b,
+	0x70, 0x68, 0x6f, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+})
 
 var (
 	file_FriendAddNotice_proto_rawDescOnce sync.Once
-	file_FriendAddNotice_proto_rawDescData = file_FriendAddNotice_proto_rawDesc
+	file_FriendAddNotice_proto_rawDescData []byte
 )
 
 func file_FriendAddNotice_proto_rawDescGZIP() []byte {
 	file_FriendAddNotice_proto_rawDescOnce.Do(func() {
-		file_FriendAddNotice_proto_rawDescData = protoimpl.X.CompressGZIP(file_FriendAddNotice_proto_rawDescData)
+		file_FriendAddNotice_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_FriendAddNotice_proto_rawDesc), len(file_FriendAddNotice_proto_rawDesc)))
 	})
 	return file_FriendAddNotice_proto_rawDescData
 }
@@ -301,16 +296,14 @@ var file_FriendAddNotice_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 var file_FriendAddNotice_proto_goTypes = []any{
 	(*FriendMessage)(nil),          // 0: Jubo.JuLiao.IM.Wx.Proto.FriendMessage
 	(*FriendAddNoticeMessage)(nil), // 1: Jubo.JuLiao.IM.Wx.Proto.FriendAddNoticeMessage
-	(EnumGender)(0),                // 2: Jubo.JuLiao.IM.Wx.Proto.EnumGender
 }
 var file_FriendAddNotice_proto_depIdxs = []int32{
-	2, // 0: Jubo.JuLiao.IM.Wx.Proto.FriendMessage.Gender:type_name -> Jubo.JuLiao.IM.Wx.Proto.EnumGender
-	0, // 1: Jubo.JuLiao.IM.Wx.Proto.FriendAddNoticeMessage.Friend:type_name -> Jubo.JuLiao.IM.Wx.Proto.FriendMessage
-	2, // [2:2] is the sub-list for method output_type
-	2, // [2:2] is the sub-list for method input_type
-	2, // [2:2] is the sub-list for extension type_name
-	2, // [2:2] is the sub-list for extension extendee
-	0, // [0:2] is the sub-list for field type_name
+	0, // 0: Jubo.JuLiao.IM.Wx.Proto.FriendAddNoticeMessage.Friend:type_name -> Jubo.JuLiao.IM.Wx.Proto.FriendMessage
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
 func init() { file_FriendAddNotice_proto_init() }
@@ -318,12 +311,11 @@ func file_FriendAddNotice_proto_init() {
 	if File_FriendAddNotice_proto != nil {
 		return
 	}
-	file_TransportMessage_proto_init()
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_FriendAddNotice_proto_rawDesc,
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_FriendAddNotice_proto_rawDesc), len(file_FriendAddNotice_proto_rawDesc)),
 			NumEnums:      0,
 			NumMessages:   2,
 			NumExtensions: 0,
@@ -334,7 +326,6 @@ func file_FriendAddNotice_proto_init() {
 		MessageInfos:      file_FriendAddNotice_proto_msgTypes,
 	}.Build()
 	File_FriendAddNotice_proto = out.File
-	file_FriendAddNotice_proto_rawDesc = nil
 	file_FriendAddNotice_proto_goTypes = nil
 	file_FriendAddNotice_proto_depIdxs = nil
 }