pet-ai/server/plugin/wechat-integration/router/router.go

164 lines
9.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package router
import (
"github.com/flipped-aurora/gin-vue-admin/server/plugin/wechat-integration/api"
"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.POST("login", miniApi.Login) // 小程序登录
miniGroup.GET("userinfo", miniApi.GetUserInfo) // 获取用户信息
miniGroup.PUT("userinfo", miniApi.UpdateUserInfo) // 更新用户信息
miniGroup.POST("bind-phone", miniApi.BindPhone) // 绑定手机号
miniGroup.GET("users", miniApi.GetUserList) // 获取用户列表(管理)
miniGroup.GET("check-unionid", miniApi.CheckUnionID) // 检查UnionID
// 小程序统计
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{}
{
// 微信公众号Webhook公开接口微信服务器调用
wechatPublicRouter.Any("official/webhook", webhookApi.OfficialAccountWebhook)
}
}