package router import ( "github.com/flipped-aurora/gin-vue-admin/server/plugin/wechat-integration/api" "github.com/flipped-aurora/gin-vue-admin/server/plugin/wechat-integration/api/user" "github.com/gin-gonic/gin" ) type Router struct{} // InitRouter 初始化微信路由 func (w *Router) InitRouter(Router *gin.RouterGroup) { wechatRouter := Router.Group("wechat") // 初始化API实例 miniApi := api.MiniApi{} mpUserApi := api.MpUserApi{} mpMessageApi := api.MpMessageApi{} mpMenuApi := api.MpMenuApi{} mpAutoReplyApi := api.MpAutoReplyApi{} mpMaterialApi := api.MpMaterialApi{} mpStatisticsApi := api.MpStatisticsApi{} mpTagApi := api.MpTagApi{} mpNewsApi := api.MpNewsApi{} miniStatisticsApi := api.MiniStatisticsApi{} mpConfigApi := api.MpConfigApi{} mpDraftApi := api.MpDraftApi{} { // 微信小程序管理端路由 miniGroup := wechatRouter.Group("mini") { miniGroup.GET("users", miniApi.GetUserList) // 获取用户列表(管理) // 小程序统计 miniGroup.GET("statistics", miniStatisticsApi.GetMiniStatistics) // 获取基础统计数据 miniGroup.GET("statistics/visit-trend", miniStatisticsApi.GetVisitTrendData) // 获取访问趋势数据 miniGroup.GET("statistics/source", miniStatisticsApi.GetSourceData) // 获取用户来源分布数据 miniGroup.GET("statistics/page", miniStatisticsApi.GetPageData) // 获取页面访问数据 miniGroup.GET("statistics/retention", miniStatisticsApi.GetRetentionData) // 获取用户留存数据 miniGroup.GET("statistics/device", miniStatisticsApi.GetDeviceData) // 获取设备分布数据 } // 微信公众号路由 mpGroup := wechatRouter.Group("mp") { // 用户管理 mpGroup.GET("users", mpUserApi.GetUserList) // 获取用户列表 mpGroup.GET("user", mpUserApi.GetUserInfo) // 获取用户信息 mpGroup.POST("user/sync", mpUserApi.SyncUser) // 同步用户信息 mpGroup.PUT("user/remark", mpUserApi.UpdateUserRemark) // 更新用户备注 // 消息管理 mpGroup.GET("messages", mpMessageApi.GetMessageList) // 获取消息列表 mpGroup.POST("message/text", mpMessageApi.SendTextMessage) // 发送文本消息 mpGroup.POST("message/image", mpMessageApi.SendImageMessage) // 发送图片消息 mpGroup.GET("message/:id", mpMessageApi.GetMessageByID) // 获取消息详情 mpGroup.DELETE("message/:id", mpMessageApi.DeleteMessage) // 删除消息 // 菜单管理 mpGroup.GET("menu", mpMenuApi.GetMenuList) // 获取菜单列表 mpGroup.POST("menu", mpMenuApi.CreateMenu) // 创建菜单 mpGroup.PUT("menu", mpMenuApi.UpdateMenu) // 更新菜单 mpGroup.GET("menu/:id", mpMenuApi.GetMenuByID) // 获取菜单详情 mpGroup.DELETE("menu/:id", mpMenuApi.DeleteMenu) // 删除菜单 mpGroup.POST("menu/publish", mpMenuApi.PublishMenu) // 发布菜单 mpGroup.DELETE("menu/wechat", mpMenuApi.DeleteWechatMenu) // 删除微信菜单 // 自动回复管理 mpGroup.GET("auto-reply", mpAutoReplyApi.GetAutoReplyList) // 获取自动回复列表 mpGroup.POST("auto-reply", mpAutoReplyApi.CreateAutoReply) // 创建自动回复 mpGroup.PUT("auto-reply", mpAutoReplyApi.UpdateAutoReply) // 更新自动回复 mpGroup.GET("auto-reply/:id", mpAutoReplyApi.GetAutoReplyByID) // 获取自动回复详情 mpGroup.DELETE("auto-reply/:id", mpAutoReplyApi.DeleteAutoReply) // 删除自动回复 mpGroup.POST("auto-reply/test", mpAutoReplyApi.TestAutoReply) // 测试自动回复 // 素材管理 mpGroup.GET("material", mpMaterialApi.GetMaterialList) // 获取素材列表 mpGroup.GET("material/:id", mpMaterialApi.GetMaterialByID) // 获取素材详情 mpGroup.POST("material/temp", mpMaterialApi.UploadTempMaterial) // 上传临时素材 mpGroup.POST("material/permanent", mpMaterialApi.UploadPermanentMaterial) // 上传永久素材 mpGroup.DELETE("material/:id", mpMaterialApi.DeleteMaterial) // 删除素材 mpGroup.GET("material/download", mpMaterialApi.DownloadMaterial) // 下载素材 mpGroup.POST("material/sync", mpMaterialApi.SyncMaterials) // 同步素材 // 标签管理 - 注意:具体路径要放在通配符路径之前 mpGroup.GET("tag", mpTagApi.GetTagPage) // 获取标签分页列表 mpGroup.GET("tag/list", mpTagApi.GetTags) // 获取所有标签 mpGroup.GET("tag/list-all-simple", mpTagApi.GetSimpleTags) // 获取简单标签列表 mpGroup.GET("tag/users", mpTagApi.GetTagUsers) // 获取标签下的用户列表(query参数) mpGroup.GET("tag/user-tags", mpTagApi.GetUserTags) // 获取用户的标签列表 mpGroup.POST("tag", mpTagApi.CreateTag) // 创建标签 mpGroup.PUT("tag", mpTagApi.UpdateTag) // 更新标签 mpGroup.DELETE("tag", mpTagApi.DeleteTag) // 删除标签(通过query参数id) mpGroup.POST("tag/batch-tag", mpTagApi.BatchTagUsers) // 批量为用户打标签 mpGroup.POST("tag/batch-untag", mpTagApi.BatchUntagUsers) // 批量为用户取消标签 mpGroup.POST("tag/remove-tag", mpTagApi.RemoveUserTag) // 移除用户标签(单个) mpGroup.POST("tag/sync", mpTagApi.SyncTag) // 同步标签 mpGroup.GET("tag/:id/users", mpTagApi.GetTagUsersByPath) // 获取标签下的用户列表(路径参数) mpGroup.GET("tag/:id", mpTagApi.GetTagInfo) // 获取标签详情 mpGroup.DELETE("tag/:id", mpTagApi.DeleteTagByPath) // 删除标签(通过路径参数) // 统计数据 mpGroup.GET("statistics", mpStatisticsApi.GetStatistics) // 获取基础统计数据 mpGroup.GET("statistics/user-growth", mpStatisticsApi.GetUserGrowthData) // 获取用户增长数据 mpGroup.GET("statistics/message-type", mpStatisticsApi.GetMessageTypeData) // 获取消息类型分布数据 mpGroup.GET("statistics/message-trend", mpStatisticsApi.GetMessageTrendData) // 获取消息趋势数据 mpGroup.GET("statistics/region", mpStatisticsApi.GetRegionData) // 获取地区分布数据 // 图文发表记录 mpGroup.GET("news", mpNewsApi.GetNewsList) // 获取图文发表记录列表 mpGroup.GET("news/:id", mpNewsApi.GetNewsInfo) // 获取图文详情 mpGroup.POST("news", mpNewsApi.CreateNews) // 创建图文记录 mpGroup.PUT("news", mpNewsApi.UpdateNews) // 更新图文记录 mpGroup.DELETE("news/:id", mpNewsApi.DeleteNews) // 删除图文记录 mpGroup.GET("news/:id/statistics", mpNewsApi.GetNewsStatistics) // 获取图文数据统计 mpGroup.POST("news/sync", mpNewsApi.SyncNews) // 同步图文发表记录 // 配置管理 mpGroup.GET("config", mpConfigApi.GetWechatConfig) // 获取微信配置 mpGroup.POST("config", mpConfigApi.SaveWechatConfig) // 保存微信配置 mpGroup.POST("config/test", mpConfigApi.TestWechatConfig) // 测试微信配置 mpGroup.POST("config/validate", mpConfigApi.ValidateConfig) // 验证微信配置 mpGroup.GET("config/list", mpConfigApi.GetConfigList) // 获取配置列表 mpGroup.DELETE("config/:id", mpConfigApi.DeleteConfig) // 删除配置 // 公众号功能 mpGroup.POST("qrcode/generate", mpConfigApi.GenerateQrCode) // 生成公众号二维码 mpGroup.POST("quota/clear", mpConfigApi.ClearQuota) // 清空API配额 // Webhook日志 mpGroup.GET("webhook/logs", mpConfigApi.GetWebhookLogs) // 获取Webhook日志 mpGroup.GET("webhook/logs/:id", mpConfigApi.GetWebhookLogDetail) // 获取Webhook日志详情 mpGroup.POST("webhook/logs/clear", mpConfigApi.ClearWebhookLogs) // 清空Webhook日志 // 草稿管理 mpGroup.GET("draft", mpDraftApi.GetDraftList) // 获取草稿列表 mpGroup.GET("draft/:id", mpDraftApi.GetDraftInfo) // 获取草稿详情 mpGroup.POST("draft", mpDraftApi.CreateDraft) // 创建草稿 mpGroup.PUT("draft", mpDraftApi.UpdateDraft) // 更新草稿 mpGroup.DELETE("draft/:id", mpDraftApi.DeleteDraft) // 删除草稿 mpGroup.POST("draft/:id/publish", mpDraftApi.PublishDraft) // 发布草稿 mpGroup.POST("draft/sync", mpDraftApi.SyncDrafts) // 同步草稿 mpGroup.GET("draft/count", mpDraftApi.GetDraftCount) // 获取草稿数量统计 } } } // InitWechatPublicRouter 初始化微信公开路由(不需要认证) func (w *Router) InitWechatPublicRouter(Router *gin.RouterGroup) { wechatPublicRouter := Router.Group("wechat") webhookApi := api.WebhookApi{} // 用户端API实例 miniUserApi := user.MiniUserApi{} { // 用户端API路由(不需要认证) userGroup := wechatPublicRouter.Group("user") { // 微信小程序用户端路由 userMiniGroup := userGroup.Group("mini") { userMiniGroup.POST("login", miniUserApi.Login) // 小程序登录(不需要认证) } } // 微信公众号Webhook(公开接口,微信服务器调用) wechatPublicRouter.Any("official/webhook", webhookApi.OfficialAccountWebhook) } } // InitUserRouter 初始化用户端路由(需要用户认证) func (w *Router) InitUserRouter(Router *gin.RouterGroup) { wechatUserRouter := Router.Group("user/wechat") // 用户端API实例 miniUserApi := user.MiniUserApi{} // 用户端API路由(需要用户认证) // 微信小程序用户端路由 userMiniGroup := wechatUserRouter.Group("mini") { userMiniGroup.GET("userinfo", miniUserApi.GetUserInfo) // 获取用户信息 userMiniGroup.PUT("userinfo", miniUserApi.UpdateUserInfo) // 更新用户信息 userMiniGroup.POST("bind-phone", miniUserApi.BindPhone) // 绑定手机号 userMiniGroup.POST("phone-update", miniUserApi.UpdatePhoneNumber) // 更新手机号(通过加密数据) userMiniGroup.GET("check-unionid", miniUserApi.CheckUnionID) // 检查UnionID } }