428 lines
14 KiB
Go
428 lines
14 KiB
Go
|
|
package dto
|
|||
|
|
|
|||
|
|
// ==================== 通用响应结构 ====================
|
|||
|
|
|
|||
|
|
type XhsCommonRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 绑定/解绑账户通知(接收) ====================
|
|||
|
|
|
|||
|
|
type XhsBindAccountReq struct {
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsBindAccountDecrypted struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
NickName string `json:"nick_name"`
|
|||
|
|
AppId int64 `json:"app_id"`
|
|||
|
|
Token string `json:"token"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsUnbindAccountReq struct {
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsUnbindAccountDecrypted struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
AppId int64 `json:"app_id"`
|
|||
|
|
AccountCode string `json:"account_code"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsBindKosUserReq struct {
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// KOS账户绑定事件
|
|||
|
|
type XhsBindKosUserDecrypted struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
AuthStatus int `json:"auth_status"` // 2-已生效,4-已取消
|
|||
|
|
KosNickName string `json:"kos_nick_name"`
|
|||
|
|
KosUserId string `json:"kos_user_id"`
|
|||
|
|
KosAvatarImg string `json:"kos_avatar_img"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 查询KOS授权绑定列表(发送) ====================
|
|||
|
|
|
|||
|
|
type XhsQueryBindUsersReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
PageNum int `json:"page_num" v:"required"`
|
|||
|
|
PageSize int `json:"page_size" v:"required"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsQueryBindUsersRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
Total int64 `json:"total"`
|
|||
|
|
KosUserList []struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
NickName string `json:"nick_name"`
|
|||
|
|
AvatarImg string `json:"avatar_img"`
|
|||
|
|
} `json:"kos_user_list"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 发送消息接口(发送) ====================
|
|||
|
|
|
|||
|
|
type XhsSendMessageReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
RequestId string `json:"request_id" v:"required"`
|
|||
|
|
MessageType string `json:"message_type" v:"required"` // TEXT/IMAGE/VIDEO/CARD/REVOKE
|
|||
|
|
FromUserId string `json:"from_user_id" v:"required"`
|
|||
|
|
ToUserId string `json:"to_user_id" v:"required"`
|
|||
|
|
ThirdAccountId string `json:"third_account_id" v:"required"`
|
|||
|
|
Timestamp int64 `json:"timestamp" v:"required"`
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsSendMessageRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
RequestId string `json:"request_id"`
|
|||
|
|
MessageId string `json:"message_id"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 消息内容解密后结构
|
|||
|
|
type XhsTextContent struct {
|
|||
|
|
Text string `json:"text"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsImageContent struct {
|
|||
|
|
Link string `json:"link"`
|
|||
|
|
Size struct {
|
|||
|
|
Width int `json:"width"`
|
|||
|
|
Height int `json:"height"`
|
|||
|
|
} `json:"size"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsVideoContent struct {
|
|||
|
|
Duration int64 `json:"duration"`
|
|||
|
|
VideoSize int64 `json:"video_size"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
Link string `json:"link"`
|
|||
|
|
Size struct {
|
|||
|
|
Width int `json:"width"`
|
|||
|
|
Height int `json:"height"`
|
|||
|
|
} `json:"size"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 通用卡片内容(用于switch分支解析)
|
|||
|
|
type XhsCardContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
ContentType string `json:"content_type"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardNoteContent struct {
|
|||
|
|
NoteId string `json:"note_id"`
|
|||
|
|
ContentType string `json:"content_type"` // note
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardPageContent struct {
|
|||
|
|
PageId string `json:"page_id"`
|
|||
|
|
ContentType string `json:"content_type"` // common
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardCommentContent struct {
|
|||
|
|
CommentId string `json:"comment_id"`
|
|||
|
|
Content string `json:"content"`
|
|||
|
|
ContentType string `json:"content_type"` // purchaseComments
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardSocialContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
ContentType string `json:"content_type"` // social_card
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardLeadContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
ContentType string `json:"content_type"` // lead_card
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsCardTradeContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
ContentType string `json:"content_type"` // tradeBusinessCard
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsRevokeContent struct {
|
|||
|
|
MessageId string `json:"message_id"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 接收消息接口(接收Webhook) ====================
|
|||
|
|
|
|||
|
|
type XhsReceiveMessageReq struct {
|
|||
|
|
MessageId string `json:"message_id" v:"required"`
|
|||
|
|
MessageType string `json:"message_type" v:"required"` // TEXT/IMAGE/VIDEO/CARD/HINT/REVOKE/SMILES
|
|||
|
|
MessageSource int `json:"message_source" v:"required"` // 1-C2B用户,2-C2B系统,3-B2C系统
|
|||
|
|
FromUserId string `json:"from_user_id" v:"required"`
|
|||
|
|
ToUserId string `json:"to_user_id" v:"required"`
|
|||
|
|
Timestamp int64 `json:"timestamp" v:"required"`
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
UserInfo []XhsReceiveMessageUser `json:"user_info"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsReceiveMessageUser struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
Nickname string `json:"nickname"`
|
|||
|
|
HeaderImage string `json:"header_image"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-卡片内容(笔记)
|
|||
|
|
type XhsReceiveCardNoteContent struct {
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
Link string `json:"link"`
|
|||
|
|
ContentType string `json:"content_type"` // note
|
|||
|
|
UserInfo struct {
|
|||
|
|
Nickname string `json:"nickname"`
|
|||
|
|
HeaderImage string `json:"header_image"`
|
|||
|
|
} `json:"user_info"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-卡片内容(落地页)
|
|||
|
|
type XhsReceiveCardPageContent struct {
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
Link string `json:"link"`
|
|||
|
|
Desc string `json:"desc"`
|
|||
|
|
ContentType string `json:"content_type"` // common
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-卡片内容(名片)
|
|||
|
|
type XhsReceiveCardSocialContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Name string `json:"name"`
|
|||
|
|
Image string `json:"image"`
|
|||
|
|
ContentType string `json:"content_type"` // social_card
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-卡片内容(留资卡)
|
|||
|
|
type XhsReceiveCardLeadContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Name string `json:"name"`
|
|||
|
|
Image string `json:"image"`
|
|||
|
|
ContentType string `json:"content_type"` // lead_card
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-卡片内容(交易卡)
|
|||
|
|
type XhsReceiveCardTradeContent struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
SubTitle string `json:"sub_title"`
|
|||
|
|
Image string `json:"image"`
|
|||
|
|
LinkPlatform string `json:"link_platform"` // wx_mini/ctrip/meituan
|
|||
|
|
ContentType string `json:"content_type"` // tradeBusinessCard
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 接收消息-HINT内容
|
|||
|
|
type XhsReceiveHintContent struct {
|
|||
|
|
Text string `json:"text"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 查询物料接口(发送) ====================
|
|||
|
|
|
|||
|
|
// 查询落地页列表
|
|||
|
|
type XhsQueryPageListReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
PageNum int `json:"page_num" v:"required"`
|
|||
|
|
PageSize int `json:"page_size" v:"required"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsQueryPageListRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
Total int64 `json:"total"`
|
|||
|
|
List []struct {
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
CreateTime int64 `json:"create_time"`
|
|||
|
|
PageId string `json:"page_id"`
|
|||
|
|
PageDesc string `json:"page_desc"`
|
|||
|
|
PageUrl string `json:"page_url"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
} `json:"list"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 查询名片/留资卡/交易卡列表
|
|||
|
|
type XhsQueryMaterialListReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
PageNum int `json:"page_num" v:"required"`
|
|||
|
|
PageSize int `json:"page_size" v:"required"`
|
|||
|
|
Type int `json:"type" v:"required"` // 4-名片 5-留资卡 7-交易卡
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsQueryMaterialListRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
Total int64 `json:"total"`
|
|||
|
|
List []struct {
|
|||
|
|
Id string `json:"id"`
|
|||
|
|
Name string `json:"name"`
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Image string `json:"image"`
|
|||
|
|
Ext struct {
|
|||
|
|
SocialCardExt *struct {
|
|||
|
|
CardType int `json:"card_type"` // 1-微信、2-钉钉、3-电话、4-企微 5-留资卡
|
|||
|
|
} `json:"social_card_ext,omitempty"`
|
|||
|
|
TradeCardExt *struct {
|
|||
|
|
SubTitle string `json:"sub_title"`
|
|||
|
|
LinkPlatform string `json:"link_platform"` // ctrip/meituan/wx_mini
|
|||
|
|
} `json:"trade_card_ext,omitempty"`
|
|||
|
|
} `json:"ext"`
|
|||
|
|
} `json:"list"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 查询笔记列表
|
|||
|
|
type XhsQueryNoteListReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
NoteId string `json:"note_id,omitempty"`
|
|||
|
|
PageNum int `json:"page_num" v:"required"`
|
|||
|
|
PageSize int `json:"page_size" v:"required"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsQueryNoteListRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
Total int64 `json:"total"`
|
|||
|
|
List []struct {
|
|||
|
|
NoteId string `json:"note_id"`
|
|||
|
|
PublishTime int64 `json:"publish_time"`
|
|||
|
|
Link string `json:"link"`
|
|||
|
|
Title string `json:"title"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
UserInfo struct {
|
|||
|
|
Nickname string `json:"nickname"`
|
|||
|
|
HeaderImage string `json:"header_image"`
|
|||
|
|
} `json:"user_info"`
|
|||
|
|
} `json:"list"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 查询意向评论列表
|
|||
|
|
type XhsQueryCommentListReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
PageNum int `json:"page_num" v:"required"`
|
|||
|
|
PageSize int `json:"page_size" v:"required"`
|
|||
|
|
BeginTime string `json:"begin_time,omitempty"`
|
|||
|
|
EndTime string `json:"end_time,omitempty"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsQueryCommentListRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
Total int64 `json:"total"`
|
|||
|
|
List []struct {
|
|||
|
|
NoteId string `json:"note_id"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
NoteTitle string `json:"note_title"`
|
|||
|
|
NoteAuthorUserId string `json:"note_author_user_id"`
|
|||
|
|
CommentContent string `json:"comment_content"`
|
|||
|
|
CommentTime int64 `json:"comment_time"`
|
|||
|
|
CommentUserName string `json:"comment_user_name"`
|
|||
|
|
CommentUserId string `json:"comment_user_id"`
|
|||
|
|
CommentId string `json:"comment_id"`
|
|||
|
|
UniqId string `json:"uniq_id"`
|
|||
|
|
ReplyState int `json:"reply_state"`
|
|||
|
|
ReplyThirdAccountId string `json:"reply_third_account_id"`
|
|||
|
|
} `json:"list"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 意向评论推送(接收Webhook) ====================
|
|||
|
|
|
|||
|
|
type XhsIntentCommentPushReq struct {
|
|||
|
|
NoteId string `json:"note_id"`
|
|||
|
|
Cover string `json:"cover"`
|
|||
|
|
NoteTitle string `json:"note_title"`
|
|||
|
|
NoteAuthorUserId string `json:"note_author_user_id"`
|
|||
|
|
CommentContent string `json:"comment_content"`
|
|||
|
|
CommentTime int64 `json:"comment_time"`
|
|||
|
|
CommentUserName string `json:"comment_user_name"`
|
|||
|
|
CommentUserId string `json:"comment_user_id"`
|
|||
|
|
CommentId string `json:"comment_id"`
|
|||
|
|
UniqId string `json:"uniq_id"`
|
|||
|
|
ReplyState int `json:"reply_state"`
|
|||
|
|
ReplyThirdAccountId string `json:"reply_third_account_id"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 留资数据回传(发送) ====================
|
|||
|
|
|
|||
|
|
type XhsBackLeadResultReq struct {
|
|||
|
|
UserId string `json:"user_id" v:"required"`
|
|||
|
|
RequestId string `json:"request_id" v:"required"`
|
|||
|
|
BrandUserId string `json:"brand_user_id" v:"required"`
|
|||
|
|
CUserId string `json:"c_user_id" v:"required"`
|
|||
|
|
ThirdBackSource string `json:"third_back_source" v:"required"`
|
|||
|
|
Timestamp int64 `json:"timestamp" v:"required"`
|
|||
|
|
Content string `json:"content" v:"required"` // 加密后内容
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsBackLeadResultDecrypted struct {
|
|||
|
|
PhoneNum string `json:"phone_num"`
|
|||
|
|
Wechat string `json:"wechat"`
|
|||
|
|
Remark string `json:"remark"`
|
|||
|
|
Area string `json:"area"`
|
|||
|
|
City string `json:"city"`
|
|||
|
|
CustomerServiceName string `json:"customer_service_name"`
|
|||
|
|
Time int64 `json:"time"`
|
|||
|
|
ExtList []struct {
|
|||
|
|
Key string `json:"key"`
|
|||
|
|
Name string `json:"name"`
|
|||
|
|
Value string `json:"value"`
|
|||
|
|
} `json:"extList"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type XhsBackLeadResultRes struct {
|
|||
|
|
Code int `json:"code"`
|
|||
|
|
Msg string `json:"msg"`
|
|||
|
|
Success bool `json:"success"`
|
|||
|
|
Data struct {
|
|||
|
|
RequestId string `json:"request_id"`
|
|||
|
|
} `json:"data"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ==================== 留资和广告归因数据推送(接收Webhook) ====================
|
|||
|
|
|
|||
|
|
type XhsPushLeadReq struct {
|
|||
|
|
UserId string `json:"user_id"`
|
|||
|
|
BrandUserId string `json:"brand_user_id"`
|
|||
|
|
KosUserId string `json:"kos_user_id"`
|
|||
|
|
ConvTime string `json:"conv_time"`
|
|||
|
|
AdvertiserName string `json:"advertiser_name"`
|
|||
|
|
AdvertiserId string `json:"advertiser_id"`
|
|||
|
|
CampaignName string `json:"campaign_name"`
|
|||
|
|
CampaignId string `json:"campaign_id"`
|
|||
|
|
CreativityName string `json:"creativity_name"`
|
|||
|
|
CreativityId string `json:"creativity_id"`
|
|||
|
|
LeadsTag string `json:"leads_tag"`
|
|||
|
|
Area string `json:"area"`
|
|||
|
|
PhoneNum string `json:"phone_num"`
|
|||
|
|
Wechat string `json:"wechat"`
|
|||
|
|
Remark string `json:"remark"`
|
|||
|
|
PushType int `json:"push_type"` // 1-进线 2-开口 3-留资 4-留资归因
|
|||
|
|
WechatCopy int `json:"wechat_copy"`
|
|||
|
|
LinkId string `json:"link_id"`
|
|||
|
|
LinkName string `json:"link_name"`
|
|||
|
|
CustomerChannel string `json:"customer_channel"`
|
|||
|
|
MsgAppOpen int `json:"msg_app_open"`
|
|||
|
|
WechatType int `json:"wechat_type"` // 1-文本 2-图片链接
|
|||
|
|
DecryptUserId string `json:"decrypt_user_id"`
|
|||
|
|
}
|