package router import ( "xiawan/wx/api/controller" "xiawan/wx/api/swagger" "xiawan/wx/srv/srvconfig" "github.com/gin-gonic/gin" ) type SetMiddleWare = func(engine *gin.Engine) func SetUpRouter(middleware SetMiddleWare, debug bool) *gin.Engine { //获取Gin实例 r := gin.Default() //设置中间 if middleware != nil { middleware(r) } // 设置首页重定向到 /docs r.GET("/", func(c *gin.Context) { c.Redirect(301, "/docs") }) //加载模版下的所有文件 r.LoadHTMLGlob("static/templates/*") //设置静态文件目录 r.Static("static", "static") swagger.Init() // 配置swagger swagger.Setup(r) setApi(r) return r } // 设置url Version:v1 func setApi(engine *gin.Engine) { ver := srvconfig.GlobalSetting.ApiVersion // 管理 admin := engine.Group(ver + "/admin") { // 获取授权码(获取新设备) admin.POST("/GenAuthKey1", controller.GenAuthKey1) admin.GET("/GenAuthKey2", controller.GenAuthKey2) admin.POST("/GenAuthKey3", controller.GenAuthKey3) // 延期授权码 admin.POST("/DelayAuthKey", controller.DelayAuthKey) // 删除授权码 admin.POST("/DeleteAuthKey", controller.DeleteAuthKey) // 禁用授权码 admin.POST("/DisableAuthKey", controller.DisableAuthKey) // 同步卡密激活状态 admin.GET("/HttpSyncLicenseKey", controller.HttpSyncLicenseKey) // 获取所有激活状态的卡密 admin.GET("/GetActiveLicenseKeys", controller.GetActiveLicenseKeys) // 获取代理映射列表 admin.GET("/GetProxyMappingList", controller.GetProxyMappingList) } // 登录 login := engine.Group(ver + "/login") { login.POST("/GetLoginQrCodeNewDirect", controller.GetLoginQrCodeNewApiDirect) // 检测登陆状态 login.GET("/CheckLoginStatus", controller.CheckLoginStatusApi) // A16登陆 login.POST("/A16Login", controller.A16LoginApi) // 62登陆 login.POST("/DeviceLogin", controller.DeviceIdLoginApi) // 唤醒登录 login.POST("/WakeUpLogin", controller.WakeUpLoginApi) // 获取在线状态 login.GET("/GetLoginStatus", controller.GetLoginStatusApi) // 输入验证码验证 login.POST("/VerifyCode", controller.VerifyCodeApi) // 滑动验证码 login.POST("/VerifyCodeSlide", controller.VerifyCodeApiSlide) // 退出登录 login.GET("/LogOut", controller.LogOutRequestApi) // 打印链接数量 // login.GET("/GetIWXConnect", controller.IWXConnectMgrApi) // 打印链接信息 //login.GET("/GetConnectInfo", controller.GetConnectInfo) // 检测微信登陆环境 // login.GET("/CheckCanSetAlias", controller.CheckCanSetAliasApi) // HTML展示登录二维码 // login.GET("/ShowQrCode", controller.GetLoginQrCodeTempShow) // 62LoginNew新疆号登录 // login.POST("/LoginNew", controller.LoginNewApi) // 短信登陆 // login.POST("/SmsLogin", controller.SmsLoginApi) // Mac登录 // login.POST("/MacLogin", controller.MacLoginApi) // 安卓平板登录 // login.POST("/AndroidPadLogin", controller.AndroidPadLoginApi) // win登录 // login.POST("/WinLogin", controller.WinLoginService) // 车载登录 // login.POST("/CarLogin", controller.CarLoginApi) // 初始化状态 // login.GET("/GetInItStatus", controller.GetInItStatusApi) // 扫码后直接登陆成功 改 845 已不需要验证码(25.5.24更新 已经859了 时过境迁啊, 408449830留个痕迹) // login.POST("/GetLoginQrCodeNew", controller.GetLoginQrCodeNewApi) // 绕过验证码登录 GetLoginQrCodeNewApi // login.POST("/GetLoginQrCodeNewX", controller.GetLoginQrCodeNewApiX) // 辅助新手机登录 // login.POST("/PhoneDeviceLogin", controller.PhoneDeviceLoginApi) // 获取62信息 // login.GET("/Get62Data", controller.Get62DataApi) // 获取验证码 // login.POST("/WxBindOpMobileForReg", controller.WxBindOpMobileForRegApi) } // 设备 equipment := engine.Group(ver + "/equipment") { equipment.GET("/GetOnlineInfo", controller.GetOnlineInfoApi) equipment.POST("/GetSafetyInfo", controller.GetSafetyInfoApi) equipment.POST("/DelSafeDevice", controller.DelSafeDeviceApi) equipment.GET("/GetBoundHardDevice", controller.GetBoundHardDevice) } // // 长链接同步消息 ws := engine.Group(ver + "/ws") { ws.GET("/GetSyncMsg", controller.GetSyncMsgApi) } // 消息 message := engine.Group(ver + "/message") { // HTTP-轮询 同步消息 message.POST("/HttpSyncMsg", controller.HttpSyncMsg) message.POST("/AddMessageMgr", controller.AddMessageMgrApi) message.POST("/SendImageMessage", controller.SendImageMessageApi) message.POST("/SendImageNewMessage", controller.SendImageNewMessageApi) message.POST("/UploadImageToCDN", controller.UploadImageToCDNApi) // 纯CDN图片上传 我直接反手一个绕过 message.POST("/SendTextMessage", controller.SendTextMessageApi) message.POST("/ShareCardMessage", controller.ShareCardMessageApi) message.POST("/ForwardImageMessage", controller.ForwardImageMessageApi) message.POST("/ForwardVideoMessage", controller.ForwardVideoMessageApi) message.POST("/SendEmojiMessage", controller.SendEmojiMessageApi) message.POST("/ForwardEmoji", controller.ForwardEmojiApi) message.POST("/SendAppMessage", controller.SendAppMessageApi) message.POST("/RevokeMsg", controller.RevokeMsgApi) message.POST("/RevokeMsgNew", controller.RevokeMsgNewApi) message.POST("/SendVoice", controller.UploadVoiceRequestApi) message.POST("/CdnUploadVideo", controller.CdnUploadVideoRequestApi) message.POST("/SendCdnDownload", controller.SendCdnDownloadApi) // 统一改为企微图片下载(接收xml自动解析) message.POST("/GetMsgBigImg", controller.GetMsgBigImgApi) message.POST("/GetMsgVideo", controller.GetMsgVideoApi) message.POST("/NewSyncHistoryMessage", controller.NewSyncHistoryMessageApi) message.POST("/GetMsgVoice", controller.GetMsgVoiceApi) message.POST("/GroupMassMsgText", controller.GroupMassMsgTextApi) message.POST("/GroupMassMsgImage", controller.GroupMassMsgImageApi) // 下载表情gif message.POST("/DownloadEmojiGif", controller.DownloadEmojiGifApi) // 消息回调相关接口 message.POST("/SetCallback", controller.SetCallbackApi) message.GET("/GetCallback", controller.GetCallbackApi) message.GET("/DeleteCallback", controller.DeleteCallbackApi) message.GET("/TestCallback", controller.TestCallbackApi) //// SendTextMessageNoShow 不显示会话(不删聊天记录) // message.POST("/SendTextMessageNoShow", controller.SendTextMessageNoShow) } // 朋友圈 sns := engine.Group(ver + "/sns") { sns.POST("/DownloadMedia", controller.DownloadMediaApi) sns.POST("/SetFriendCircleDays", controller.SetFriendCircleDaysApi) sns.POST("/SendFriendCircle", controller.SendFriendCircleApi) sns.POST("/SendFriendCircleByXMl", controller.SendFriendCircleByXMlApi) sns.POST("/UploadFriendCircleImage", controller.UploadFriendCircleImageApi) sns.POST("/SendSnsComment", controller.SendSnsCommentRequestApi) sns.POST("/SendSnsObjectOp", controller.SendSnsObjectOpRequestApi) sns.POST("/SendSnsTimeLine", controller.SendSnsTimeLineRequestApi) sns.POST("/SendSnsUserPage", controller.SendSnsUserPageRequestApi) sns.POST("/SendSnsObjectDetailById", controller.SendSnsObjectDetailByIdApi) sns.POST("/SetBackgroundImage", controller.SetBackgroundImageApi) sns.POST("/SendFavItemCircle", controller.SendFavItemCircleApi) sns.POST("/SendOneIdCircle", controller.SendOneIdCircleApi) sns.POST("/GetCollectCircle", controller.GetCollectCircleApi) sns.POST("/GetSnsSync", controller.GetSnsSync) sns.POST("/CdnSnsVideoUpload", controller.CdnSnsVideoUploadApi) } // 群管理 group := engine.Group(ver + "/group") { // 获取群聊二维码 group.POST("/GetChatroomQrCode", controller.GetChatroomQrCode) group.POST("/SetChatroomAnnouncement", controller.SetChatroomAnnouncementApi) group.POST("/GetChatroomMemberDetail", controller.GetChatroomMemberDetailApi) group.POST("/QuitChatroom", controller.GetQuitChatroomApi) group.POST("/CreateChatRoom", controller.CreateChatRoomApi) group.POST("/InviteChatroomMembers", controller.InviteChatroomMembersApi) group.POST("/AddChatRoomMembers", controller.AddChatRoomMembersApi) group.POST("/SendDelDelChatRoomMember", controller.SendDelDelChatRoomMemberApi) group.POST("/ScanIntoUrlGroup", controller.ScanIntoUrlGroupApi) group.POST("/SendTransferGroupOwner", controller.SendTransferGroupOwnerApi) group.POST("/SetGetChatRoomInfoDetail", controller.SetGetChatRoomInfoDetailApi) group.POST("/GetChatRoomInfo", controller.GetChatRoomInfoApi) group.POST("/MoveToContract", controller.MoveToContractApi) group.POST("/SetChatroomAccessVerify", controller.SetChatroomAccessVerifyApi) group.POST("/AddChatroomAdmin", controller.AddChatroomAdminApi) group.POST("/DelChatroomAdmin", controller.DelChatroomAdminApi) group.POST("/SetChatroomName", controller.SetChatroomNameApi) group.POST("/SetGroupNickname", controller.SetGroupNicknameApi) group.POST("/SendPat", controller.SendPatApi) group.POST("/ToJoinGroup", controller.ConsentToJoinGroupApi) // group.GET("/GroupList", controller.GroupListApi) } // 用户 user := engine.Group(ver + "/user") { user.POST("/GetMyQrCode", controller.GetMyQrCode) user.GET("/GetProfile", controller.GetProfileApi) user.POST("/ModifyUserInfo", controller.ModifyUserInfoRequestApi) user.POST("/UpdateNickName", controller.UpdateNickNameApi) user.POST("/SetNickName", controller.SetNickNameApi) user.POST("/SetSignature", controller.SetSignatureApi) user.POST("/SetSexDq", controller.SetSexApi) user.POST("/ResetGender", controller.ResetGenderApi) user.POST("/ChangePwd", controller.ChangePwdRequestRequestApi) user.POST("/SetKeywordReply", controller.SetKeywordReplyApi) user.GET("/GetKeywordReply", controller.GetKeywordReplyApi) user.POST("/SetWelcome", controller.SetWelcomeApi) user.GET("/GetWelcome", controller.GetWelcomeApi) user.POST("/SetAdminKeyword", controller.SetAdminKeywordApi) user.GET("/GetAdminKeyword", controller.GetAdminKeywordApi) user.POST("/SetKickKeyword", controller.SetKickKeywordApi) user.GET("/GetKickKeyword", controller.GetKickKeywordApi) user.POST("/SetInviteKeyword", controller.SetInviteKeywordApi) user.GET("/GetInviteKeyword", controller.GetInviteKeywordApi) user.POST("/UploadHeadImage", controller.UploadHeadImageApi) user.POST("/UpdateAutoPass", controller.UpdateAutoPassApi) user.POST("/ModifyRemark", controller.SendModifyRemarkRequestApi) user.POST("/SetWechat", controller.SetWechatApi) user.POST("/SetFunctionSwitch", controller.SetFunctionSwitchApi) user.POST("/SetSendPat", controller.SetSendPatApi) user.POST("/SetProxy", controller.SetProxyApi) } // 公众号/小程序 applet := engine.Group(ver + "/applet") { applet.POST("/FollowGH", controller.FollowGHApi) applet.POST("/GetA8Key", controller.GetA8KeyApi) applet.POST("/JsLogin", controller.JSLoginApi) applet.POST("/JSOperateWxData", controller.JSOperateWxDataApi) applet.POST("/SdkOauthAuthorize", controller.SdkOauthAuthorizeApi) applet.POST("/QRConnectAuthorize", controller.QRConnectAuthorizeApi) applet.POST("/QRConnectAuthorizeConfirm", controller.QRConnectAuthorizeConfirmApi) applet.POST("/GetMpA8Key", controller.GetMpA8KeyApi) applet.POST("/GetMpHistoryMessage", controller.GetMpHistoryMessageApi) applet.POST("/AuthMpLogin", controller.AuthMpLoginApi) // 新增阅读公众号文章功能 applet.POST("/GetAppMsgExt", controller.GetAppMsgExtApi) // 新增点赞公众号文章功能 applet.POST("/GetAppMsgExtLike", controller.GetAppMsgExtLikeApi) // 新增获取公众号文章阅读数功能 applet.POST("/GetAppMsgReadCount", controller.GetAppMsgReadCountApi) } // 其他 other := engine.Group(ver + "/other") { other.POST("/GetPeopleNearby", controller.GetPeopleNearbyApi) other.POST("/GetRedisSyncMsg", controller.GetRedisSyncMsgApi) other.POST("/GetUserRankLikeCount", controller.GetUserRankLikeCountApi) other.POST("/UpdateStepNumber", controller.UpdateStepNumberApi) other.POST("/UpdateCmdStatus", controller.UpdateCmdStatusApi) //// GetProjectFullPathApi 获取项目完整路径 other.GET("/GetProjectFullPath", controller.GetProjectFullPathApi) // 上传文件 other.POST("/UploadAppAttach", controller.UploadAppAttachApi) // 企微图片下载 other.POST("/QWImageDownload", controller.QWImageDownloadApi) } // 收藏 favor := engine.Group(ver + "/favor") { favor.GET("/FavSync", controller.FavSyncApi) favor.POST("/GetFavList", controller.GetFavListApi) favor.POST("/GetFavItemId", controller.BatchGetFavItemApi) favor.POST("/BatchDelFavItem", controller.BatchDelFavItemApi) } // 标签 label := engine.Group(ver + "/label") { label.GET("/GetContactLabelList", controller.GetContactLabelListApi) label.POST("/AddContactLabel", controller.AddContactLabelRequestApi) label.POST("/DelContactLabel", controller.DelContactLabelRequestApi) label.POST("/ModifyLabel", controller.ModifyLabelRequestApi) label.POST("/GetWXFriendListByLabel", controller.GetWXFriendListByLabelIDApi) } // 朋友 friend := engine.Group(ver + "/friend") { friend.POST("/GetContactList", controller.GetContactListApi) // friend.GET("/GetFriendList", controller.GetFriendListApi) friend.GET("/GroupList", controller.GetGroupListApi) friend.GET("/GetGHList", controller.GetGHListApi) friend.GET("/GetMFriend", controller.GetMFriendApi) friend.POST("/GetContactDetailsList", controller.GetContactContactApi) friend.POST("/GetFriendRelation", controller.GetFriendRelationApi) friend.POST("/UploadMContact", controller.UploadMContactApi) friend.POST("/DelContact", controller.DelContactApi) friend.POST("/SearchContact", controller.SearchContactRequestApi) friend.POST("/VerifyUser", controller.VerifyUserRequestApi) friend.POST("/AgreeAdd", controller.AgreeAddApi) } // 支付 pay := engine.Group(ver + "/pay") { pay.POST("/GetBandCardList", controller.GetBandCardListApi) pay.POST("/GeneratePayQCode", controller.GeneratePayQCodeApi) pay.POST("/Collectmoney", controller.CollectMoneyApi) pay.POST("/WXCreateRedPacket", controller.WXCreateRedPacketApi) pay.POST("/OpenRedEnvelopes", controller.OpenRedEnvelopesApi) pay.POST("/GetRedEnvelopesDetail", controller.QueryRedEnvelopesDetailApi) pay.POST("/GetRedPacketList", controller.GetRedPacketListApi) pay.POST("/CreatePreTransfer", controller.CreatePreTransferApi) pay.POST("/ConfirmPreTransfer", controller.ConfirmPreTransferApi) } // 视频号 finder := engine.Group(ver + "/finder") { finder.POST("/ChannelsLogin", controller.ChannelsLoginApi) finder.POST("/FinderSearch", controller.GetFinderSearchApi) finder.POST("/FinderUserPrepare", controller.FinderUserPrepareApi) finder.POST("/FinderFollow", controller.FinderFollowApi) } // 微信小店 shop := engine.Group(ver + "/shop") { shop.POST("/ShopLoginConfirm", controller.ShopLoginConfirmApi) shop.POST("/ExtDeviceLoginConfirmGet", controller.ExtDeviceLoginConfirmGetApi) shop.POST("/ExtDeviceLoginConfirmOk", controller.ExtDeviceLoginConfirmOkApi) shop.POST("/ScanQrcodeEventReport", controller.ScanQrcodeEventReportApi) } // 企业微信 qy := engine.Group(ver + "/qy") { qy.POST("/QWSearchContact", controller.QWSearchContactApi) qy.POST("/QWApplyAddContact", controller.QWApplyAddContactApi) qy.POST("QWAddContact", controller.QWAddContactApi) qy.POST("/QWContact", controller.QWContactApi) qy.POST("/QWSyncContact", controller.QWSyncContactApi) qy.POST("/QWRemark", controller.QWRemarkApi) qy.POST("/QWCreateChatRoom", controller.QWCreateChatRoomApi) qy.POST("/QWSyncChatRoom", controller.QWSyncChatRoomApi) qy.POST("/QWChatRoomTransferOwner", controller.QWChatRoomTransferOwnerApi) qy.POST("/QWAddChatRoomMember", controller.QWAddChatRoomMemberApi) qy.POST("/QWInviteChatRoomMember", controller.QWInviteChatRoomMemberApi) qy.POST("/QWDelChatRoomMember", controller.QWDelChatRoomMemberApi) qy.POST("/QWGetChatRoomMember", controller.QWGetChatRoomMemberApi) qy.POST("/QWGetChatroomInfo", controller.QWGetChatroomInfoApi) qy.POST("/QWGetChatRoomQR", controller.QWGetChatRoomQRApi) qy.POST("/QWAppointChatRoomAdmin", controller.QWAppointChatRoomAdminApi) qy.POST("/QWDelChatRoomAdmin", controller.QWDelChatRoomAdminApi) qy.POST("/QWAcceptChatRoom", controller.QWAcceptChatRoomRequestApi) qy.POST("/QWAdminAcceptJoinChatRoomSet", controller.QWAdminAcceptJoinChatRoomSetApi) qy.POST("/QWModChatRoomName", controller.QWModChatRoomNameApi) qy.POST("/QWModChatRoomMemberNick", controller.QWModChatRoomMemberNickApi) qy.POST("/QWChatRoomAnnounce", controller.QWChatRoomAnnounceApi) qy.POST("/QWDelChatRoom", controller.QWDelChatRoomApi) } }