package router import ( "net/http" "youngmini_server/app/api/backstage_api" "youngmini_server/app/api/talent_api" "youngmini_server/app/service/backstage_service" "youngmini_server/library/response" "youngmini_server/middleware" "github.com/gogf/gf/container/garray" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" ) // MiddlewareCORS 允许跨域请求中间件 func MiddlewareCORS(r *ghttp.Request) { corsOptions := r.Response.DefaultCORSOptions() corsOptions.AllowHeaders = "Authorization,Content-Length,X-CSRF-Token,Token,session,X_Requested_With,Accept,Origin,Host,Connection,Accept-Encoding,Accept-Language,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma" corsOptions.ExposeHeaders = "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar" corsOptions.MaxAge = 1728000 //corsOptions := ghttp.CORSOptions{ //AllowOrigin: "*", //AllowMethods: "POST,GET,OPTIONS,PUT,DELETE,UPDATE", //AllowCredentials: "false", //MaxAge: 1728000, //AllowHeaders: "Authorization,Content-Length,X-CSRF-Token,Token,session,X_Requested_With,Accept,Origin,Host,Connection,Accept-Encoding,Accept-Language,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Pragma", //ExposeHeaders: "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar", //} //corsOptions.AllowDomain = []string{"goframe.org", "johng.cn"} //corsOptions.AllowHeaders = "Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,X-Forwarded-*,Pragma,Cache-Control,If-Modified-Since,userToken,appid" r.Response.CORS(corsOptions) r.Middleware.Next() } // MiddlewareAuth 用户认证中间件 func MiddlewareAuth(r *ghttp.Request) { //排除路径 array := garray.NewFrom(g.Slice{"/admin/account"}) if array.Contains(r.RequestURI) == false { userData, err := backstage_service.Token.AuthorizationGetUserData(r) if err != nil { r.Response.WriteStatus(http.StatusForbidden) response.JsonExit(r, http.StatusForbidden, err.Error()) } if userData == nil { r.Response.WriteStatus(http.StatusUnauthorized) response.JsonExit(r, http.StatusForbidden, "用户不存在") } } // 中间件处理逻辑 r.Middleware.Next() } // MiddlewareSuperAuth 超级管理员可以操作的登录接口 func MiddlewareSuperAuth(r *ghttp.Request) { // 排除路径 userData, _ := backstage_service.Token.AuthorizationGetUserData(r) if userData.User != "10000000" { r.Response.WriteStatus(http.StatusPaymentRequired) response.JsonExit(r, http.StatusPaymentRequired, "没有权限操作") } // 中间件处理逻辑 r.Middleware.Next() } func init() { s := g.Server() // 解决跨域 s.BindMiddleware("/*", MiddlewareCORS) s.Group("/talent", func(group *ghttp.RouterGroup) { group.Middleware(middleware.ErrorHandler) // 达人不需要鉴权的接口 group.GET("/g", talentapi.TalentGetApi) group.POST("/p", talentapi.TalentPostApi) // 达人需要鉴权的接口 group.Group("/t", func(group *ghttp.RouterGroup) { group.Middleware(middleware.DuplicateVerify, middleware.WxAuth) group.GET("/g", talentapi.TalentAuthGetApi) group.POST("/p", talentapi.TalentAuthPostApi) }) }) // 登录操作这块不需要中间件操作 s.Group("admin", func(group *ghttp.RouterGroup) { // 不需要登录中间键的接口 group.POST("/account", backstage_api.Login.Account) group.GET("/setEmail", backstage_api.Login.SetEmail) group.POST("/checkVerification", backstage_api.Login.CheckVerification) group.GET("/findAccount", backstage_api.Login.FindAccount) }) // 其他操作需要登录之后才能操作 s.Group("admin", func(group *ghttp.RouterGroup) { //跨域设置,权限中间件 group.Middleware(MiddlewareAuth, MiddlewareSuperAuth) // 用户操作的接口 group.GET("/findAllCount", backstage_api.Login.FindAllNumber) group.POST("/findAllUser", backstage_api.Login.FindAll) group.POST("/creatAccount", backstage_api.Login.Creat) group.POST("/updateAccount", backstage_api.Login.Update) group.POST("/changeStatus", backstage_api.Login.ChangeStatus) group.POST("/changeListStatus", backstage_api.Login.ChangeListStatus) }) // 其他功能,需要中间键,后面加 s.Group("admin", func(group *ghttp.RouterGroup) { // 需要登录中间件的接口 group.Middleware(MiddlewareAuth) // 用于前台页面刷新 group.POST("/refreshUser", backstage_api.Login.Refresh) // 品牌类接口 group.POST("/creatBrand", backstage_api.Brand.CreatBrand) group.POST("/findAllBrand", backstage_api.Brand.FindAll) group.POST("/deleteBrand", backstage_api.Brand.DeleteBrand) group.POST("/findByIdBrand", backstage_api.Brand.FindByIdBrand) group.POST("/updateBrand", backstage_api.Brand.UpdateBrand) // 商品类接口 group.POST("/creatProduct", backstage_api.Product.CreatProduct) group.POST("/deleteProduct", backstage_api.Product.DeleteProduct) // 财务管理类接口 group.POST("/findAllFinance", backstage_api.Finance.FindAll) group.POST("/changeListStatusFinance", backstage_api.Finance.ChangeListStatus) // 达人信息接口 group.POST("/findAllExpert", backstage_api.Expert.FindAll) group.POST("/findAddressById", backstage_api.Expert.FindAddressById) group.POST("/changeStatusExpert", backstage_api.Expert.ChangeStatus) // 用户管理类接口 group.POST("/findAllAccount", backstage_api.Account.FindAll) group.POST("/findTimeRangeAccount", backstage_api.Account.FindTimeRange) group.POST("/changeListStatusAccount", backstage_api.Account.ChangeListStatus) // 小红书接口 group.POST("/findAllLittleRed", backstage_api.LittleRed.FindAll) group.POST("/removeAccountLittleRed", backstage_api.LittleRed.RemoveAccount) group.POST("/findAllByIdLittleRed", backstage_api.LittleRed.FindAllById) // 抖音接口 group.POST("/findAllTiktok", backstage_api.Tiktok.FindAll) group.POST("/removeAccountTiktok", backstage_api.Tiktok.RemoveAccount) group.POST("/findAllByIdTiktok", backstage_api.Tiktok.FindAllById) // 微博接口 group.POST("/findAllWeibo", backstage_api.Weibo.FindAll) group.POST("/removeAccountWeibo", backstage_api.Weibo.RemoveAccount) group.POST("/findAllByIdWeibo", backstage_api.Weibo.FindAllById) // 快手接口 group.POST("/findAllKuaishou", backstage_api.Kuaishou.FindAll) group.POST("/removeAccountKuaishou", backstage_api.Kuaishou.RemoveAccount) group.POST("/findAllByIdKuaishou", backstage_api.Kuaishou.FindAllById) // 哔哩哔哩接口 group.POST("/findAllBilibili", backstage_api.Bilibili.FindAll) group.POST("/removeAccountBilibili", backstage_api.Bilibili.RemoveAccount) group.POST("/findAllByIdBilibili", backstage_api.Bilibili.FindAllById) // 大众点评接口 group.POST("/findAllDianping", backstage_api.Dianping.FindAll) group.POST("/removeAccountDianping", backstage_api.Dianping.RemoveAccount) group.POST("/findAllByIdDianping", backstage_api.Dianping.FindAllById) // 知乎接口 group.POST("/findAllZhihu", backstage_api.Zhihu.FindAll) group.POST("/removeAccountZhihu", backstage_api.Zhihu.RemoveAccount) group.POST("/findAllByIdZhihu", backstage_api.Zhihu.FindAllById) // 任务接口 group.POST("/creatTask", backstage_api.Task.Creat) group.POST("/findAllTask", backstage_api.Task.FindAll) group.POST("/alterTaskStatus", backstage_api.Task.AlterTaskStatus) group.POST("/findSingleTaskInfo", backstage_api.Task.FindSingleTaskInfo) group.POST("/updateBrandTask", backstage_api.Task.UpdateBrand) // 修改商品信息 group.POST("/updateProductTask", backstage_api.Task.UpdateProduct) // 修改商品图片信息 group.POST("/updateProductPhotoTask", backstage_api.Task.UpdateProductPhoto) // 增加图片信息 group.POST("/addProductPhotoTask", backstage_api.Task.AddProductPhoto) // 删除图片信息 group.POST("/deleteProductPhotoTask", backstage_api.Task.DeleteProductPhoto) // 修改任务基础信息 group.POST("/updateTaskBaseInfoTask", backstage_api.Task.UpdateTaskBaseInfo) // 修改任务配置总流程 group.POST("/updateProcedureTask", backstage_api.Task.UpdateProcedure) // 修改流程初稿配置 group.POST("/updateDraftInfoTask", backstage_api.Task.UpdateDraftInfo) // 修改流程作品配置 group.POST("/updateArticleInfoTask", backstage_api.Task.UpdateArticleInfo) // 修改质检链接配置 group.POST("/updateQualityInfoTask", backstage_api.Task.UpdateQualityInfo) // 修改达人任务奖励配置 group.POST("/updateRewardTask", backstage_api.Task.UpdateReward) // 修改招募要求配置 group.POST("/updateRecruitRequirementTask", backstage_api.Task.UpdateRecruitRequirement) // 修改合作方式,所需达人数量及其对应稿费 group.POST("/updateRecruitLevelTask", backstage_api.Task.UpdateRecruitLevel) // 增加合作方式,所需达人数量及其对应稿费 group.POST("/addRecruitLevelTask", backstage_api.Task.AddRecruitLevel) // 删除合作方式,所需达人数量及其对应稿费 group.POST("/deleteRecruitLevelTask", backstage_api.Task.DeleteRecruitLevel) // 修改任务执行帮助 group.POST("/updatePerformHelpTask", backstage_api.Task.UpdatePerformHelp) // 查询发货地址 group.POST("/findSendAddressTask", backstage_api.Task.FindSendAddress) // 查询招募统计信息 group.POST("/findRecruitTask", backstage_api.Task.FindRecruit) // 数据BI统计信息 group.POST("/findBIStatisticsTask", backstage_api.Task.FindBIStatistics) // 删除任务 group.POST("/deleteTask", backstage_api.Task.DeleteTask) // 订单接口 group.POST("/findAllOrder", backstage_api.Order.FindAll) group.POST("/findAddressOrder", backstage_api.Order.FindAddress) group.POST("/executiveInfoOrder", backstage_api.Order.ExecutiveInfo) group.POST("/registrationInfoOrder", backstage_api.Order.RegistrationInfo) // group.POST("/draftFeeOrder", backstage_api.Order.DraftFee) group.POST("/alterListStatusOrder", backstage_api.Order.AlterListStatus) group.POST("/addDeliveryOrder", backstage_api.Order.AddDelivery) group.POST("/addDraftReviewOrder", backstage_api.Order.AddDraftReview) group.POST("/addAuditReviewOrder", backstage_api.Order.AddAuditReview) group.POST("/addDataQualityOrder", backstage_api.Order.AddDataQuality) group.POST("/addLinkQualityOrder", backstage_api.Order.AddLinkQuality) group.POST("/findOrderProcedureDetailOrder", backstage_api.Order.FindOrderProcedureDetail) // 查询一个订单下面所对应的扣款明细 group.POST("/ChargesDetailOrder", backstage_api.Order.ChargesDetail) // 查询招募等级表 group.POST("/QueryTaskRecruitTalentLevelOrder", backstage_api.Order.QueryTaskRecruitTalentLevel) // 订单完成后需要在收入里面加一条信息 group.POST("/AddBobocoinIncomeRecordOrder", backstage_api.Order.AddBobocoinIncomeRecord) }) // 其他操作需要登录之后才能操作 s.Group("admin", func(group *ghttp.RouterGroup) { }) }