router.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package router
  2. import (
  3. "net/http"
  4. youngeetalentapi "youngmini_server/app/api/youngee_talent_api"
  5. "youngmini_server/app/service/backstage_service"
  6. "youngmini_server/library/response"
  7. "youngmini_server/middleware"
  8. "github.com/gogf/gf/container/garray"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/net/ghttp"
  11. )
  12. // MiddlewareCORS 允许跨域请求中间件
  13. func MiddlewareCORS(r *ghttp.Request) {
  14. corsOptions := r.Response.DefaultCORSOptions()
  15. 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"
  16. corsOptions.ExposeHeaders = "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar"
  17. corsOptions.MaxAge = 1728000
  18. //corsOptions := ghttp.CORSOptions{
  19. //AllowOrigin: "*",
  20. //AllowMethods: "POST,GET,OPTIONS,PUT,DELETE,UPDATE",
  21. //AllowCredentials: "false",
  22. //MaxAge: 1728000,
  23. //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",
  24. //ExposeHeaders: "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Language,Expires,Last-Modified,Pragma,FooBar",
  25. //}
  26. //corsOptions.AllowDomain = []string{"goframe.org", "johng.cn"}
  27. //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"
  28. r.Response.CORS(corsOptions)
  29. r.Middleware.Next()
  30. }
  31. // MiddlewareAuth 用户认证中间件
  32. func MiddlewareAuth(r *ghttp.Request) {
  33. //排除路径
  34. array := garray.NewFrom(g.Slice{"/admin/account"})
  35. if array.Contains(r.RequestURI) == false {
  36. userData, err := backstage_service.Token.AuthorizationGetUserData(r)
  37. if err != nil {
  38. r.Response.WriteStatus(http.StatusForbidden)
  39. response.JsonExit(r, http.StatusForbidden, err.Error())
  40. }
  41. if userData == nil {
  42. r.Response.WriteStatus(http.StatusUnauthorized)
  43. response.JsonExit(r, http.StatusForbidden, "用户不存在")
  44. }
  45. }
  46. // 中间件处理逻辑
  47. r.Middleware.Next()
  48. }
  49. // MiddlewareSuperAuth 超级管理员可以操作的登录接口
  50. func MiddlewareSuperAuth(r *ghttp.Request) {
  51. // 排除路径
  52. userData, _ := backstage_service.Token.AuthorizationGetUserData(r)
  53. if userData.User != "10000000" {
  54. r.Response.WriteStatus(http.StatusPaymentRequired)
  55. response.JsonExit(r, http.StatusPaymentRequired, "没有权限操作")
  56. }
  57. // 中间件处理逻辑
  58. r.Middleware.Next()
  59. }
  60. func init() {
  61. s := g.Server()
  62. // 解决跨域
  63. s.BindMiddleware("/*", MiddlewareCORS)
  64. // v2小程序端接口
  65. s.Group("/youngee/c", func(group *ghttp.RouterGroup) {
  66. group.Middleware(middleware.ErrorHandler)
  67. s.BindHandler("/ping", func(r *ghttp.Request) {
  68. r.Response.Write("哈喽世界!")
  69. })
  70. // group.GET("/ping", func(r *ghttp.Request) {
  71. // r.Response.Write("哈喽世界!")
  72. // })
  73. // 达人不需要鉴权的接口
  74. group.GET("/g", youngeetalentapi.TalentGetApi)
  75. group.POST("/p", youngeetalentapi.TalentPostApi)
  76. // 达人需要鉴权的接口
  77. group.Group("/t", func(group *ghttp.RouterGroup) {
  78. group.Middleware(middleware.DuplicateVerify, middleware.WxAuth)
  79. group.GET("/g", youngeetalentapi.TalentAuthGetApi)
  80. group.POST("/p", youngeetalentapi.TalentAuthPostApi)
  81. })
  82. })
  83. // s.Group("/talent", func(group *ghttp.RouterGroup) {
  84. // group.Middleware(middleware.ErrorHandler)
  85. // // 达人不需要鉴权的接口
  86. // group.GET("/g", talentapi.TalentGetApi)
  87. // group.POST("/p", talentapi.TalentPostApi)
  88. // // 达人需要鉴权的接口
  89. // group.Group("/t", func(group *ghttp.RouterGroup) {
  90. // group.Middleware(middleware.DuplicateVerify, middleware.WxAuth)
  91. // group.GET("/g", talentapi.TalentAuthGetApi)
  92. // group.POST("/p", talentapi.TalentAuthPostApi)
  93. // })
  94. // })
  95. // // 登录操作这块不需要中间件操作
  96. // s.Group("admin", func(group *ghttp.RouterGroup) {
  97. // // 不需要登录中间键的接口
  98. // group.POST("/account", backstage_api.Login.Account)
  99. // group.GET("/setEmail", backstage_api.Login.SetEmail)
  100. // group.POST("/checkVerification", backstage_api.Login.CheckVerification)
  101. // group.GET("/findAccount", backstage_api.Login.FindAccount)
  102. // })
  103. // // 其他操作需要登录之后才能操作
  104. // s.Group("admin", func(group *ghttp.RouterGroup) {
  105. // //跨域设置,权限中间件
  106. // group.Middleware(MiddlewareAuth, MiddlewareSuperAuth)
  107. // // 用户操作的接口
  108. // group.GET("/findAllCount", backstage_api.Login.FindAllNumber)
  109. // group.POST("/findAllUser", backstage_api.Login.FindAll)
  110. // group.POST("/creatAccount", backstage_api.Login.Creat)
  111. // group.POST("/updateAccount", backstage_api.Login.Update)
  112. // group.POST("/changeStatus", backstage_api.Login.ChangeStatus)
  113. // group.POST("/changeListStatus", backstage_api.Login.ChangeListStatus)
  114. // })
  115. // // 其他功能,需要中间键,后面加
  116. // s.Group("admin", func(group *ghttp.RouterGroup) {
  117. // // 需要登录中间件的接口
  118. // group.Middleware(MiddlewareAuth)
  119. // // 用于前台页面刷新
  120. // group.POST("/refreshUser", backstage_api.Login.Refresh)
  121. // // 品牌类接口
  122. // group.POST("/creatBrand", backstage_api.Brand.CreatBrand)
  123. // group.POST("/findAllBrand", backstage_api.Brand.FindAll)
  124. // group.POST("/deleteBrand", backstage_api.Brand.DeleteBrand)
  125. // group.POST("/findByIdBrand", backstage_api.Brand.FindByIdBrand)
  126. // group.POST("/updateBrand", backstage_api.Brand.UpdateBrand)
  127. // // 商品类接口
  128. // group.POST("/creatProduct", backstage_api.Product.CreatProduct)
  129. // group.POST("/deleteProduct", backstage_api.Product.DeleteProduct)
  130. // // 财务管理类接口
  131. // group.POST("/findAllFinance", backstage_api.Finance.FindAll)
  132. // group.POST("/changeListStatusFinance", backstage_api.Finance.ChangeListStatus)
  133. // // 达人信息接口
  134. // group.POST("/findAllExpert", backstage_api.Expert.FindAll)
  135. // group.POST("/findAddressById", backstage_api.Expert.FindAddressById)
  136. // group.POST("/changeStatusExpert", backstage_api.Expert.ChangeStatus)
  137. // // 用户管理类接口
  138. // group.POST("/findAllAccount", backstage_api.Account.FindAll)
  139. // group.POST("/findTimeRangeAccount", backstage_api.Account.FindTimeRange)
  140. // group.POST("/changeListStatusAccount", backstage_api.Account.ChangeListStatus)
  141. // // 小红书接口
  142. // group.POST("/findAllLittleRed", backstage_api.LittleRed.FindAll)
  143. // group.POST("/removeAccountLittleRed", backstage_api.LittleRed.RemoveAccount)
  144. // group.POST("/findAllByIdLittleRed", backstage_api.LittleRed.FindAllById)
  145. // // 抖音接口
  146. // group.POST("/findAllTiktok", backstage_api.Tiktok.FindAll)
  147. // group.POST("/removeAccountTiktok", backstage_api.Tiktok.RemoveAccount)
  148. // group.POST("/findAllByIdTiktok", backstage_api.Tiktok.FindAllById)
  149. // // 微博接口
  150. // group.POST("/findAllWeibo", backstage_api.Weibo.FindAll)
  151. // group.POST("/removeAccountWeibo", backstage_api.Weibo.RemoveAccount)
  152. // group.POST("/findAllByIdWeibo", backstage_api.Weibo.FindAllById)
  153. // // 快手接口
  154. // group.POST("/findAllKuaishou", backstage_api.Kuaishou.FindAll)
  155. // group.POST("/removeAccountKuaishou", backstage_api.Kuaishou.RemoveAccount)
  156. // group.POST("/findAllByIdKuaishou", backstage_api.Kuaishou.FindAllById)
  157. // // 哔哩哔哩接口
  158. // group.POST("/findAllBilibili", backstage_api.Bilibili.FindAll)
  159. // group.POST("/removeAccountBilibili", backstage_api.Bilibili.RemoveAccount)
  160. // group.POST("/findAllByIdBilibili", backstage_api.Bilibili.FindAllById)
  161. // // 大众点评接口
  162. // group.POST("/findAllDianping", backstage_api.Dianping.FindAll)
  163. // group.POST("/removeAccountDianping", backstage_api.Dianping.RemoveAccount)
  164. // group.POST("/findAllByIdDianping", backstage_api.Dianping.FindAllById)
  165. // // 知乎接口
  166. // group.POST("/findAllZhihu", backstage_api.Zhihu.FindAll)
  167. // group.POST("/removeAccountZhihu", backstage_api.Zhihu.RemoveAccount)
  168. // group.POST("/findAllByIdZhihu", backstage_api.Zhihu.FindAllById)
  169. // // 任务接口
  170. // group.POST("/creatTask", backstage_api.Task.Creat)
  171. // group.POST("/findAllTask", backstage_api.Task.FindAll)
  172. // group.POST("/alterTaskStatus", backstage_api.Task.AlterTaskStatus)
  173. // group.POST("/findSingleTaskInfo", backstage_api.Task.FindSingleTaskInfo)
  174. // group.POST("/updateBrandTask", backstage_api.Task.UpdateBrand)
  175. // // 修改商品信息
  176. // group.POST("/updateProductTask", backstage_api.Task.UpdateProduct)
  177. // // 修改商品图片信息
  178. // group.POST("/updateProductPhotoTask", backstage_api.Task.UpdateProductPhoto)
  179. // // 增加图片信息
  180. // group.POST("/addProductPhotoTask", backstage_api.Task.AddProductPhoto)
  181. // // 删除图片信息
  182. // group.POST("/deleteProductPhotoTask", backstage_api.Task.DeleteProductPhoto)
  183. // // 修改任务基础信息
  184. // group.POST("/updateTaskBaseInfoTask", backstage_api.Task.UpdateTaskBaseInfo)
  185. // // 修改任务配置总流程
  186. // group.POST("/updateProcedureTask", backstage_api.Task.UpdateProcedure)
  187. // // 修改流程初稿配置
  188. // group.POST("/updateDraftInfoTask", backstage_api.Task.UpdateDraftInfo)
  189. // // 修改流程作品配置
  190. // group.POST("/updateArticleInfoTask", backstage_api.Task.UpdateArticleInfo)
  191. // // 修改质检链接配置
  192. // group.POST("/updateQualityInfoTask", backstage_api.Task.UpdateQualityInfo)
  193. // // 修改达人任务奖励配置
  194. // group.POST("/updateRewardTask", backstage_api.Task.UpdateReward)
  195. // // 修改招募要求配置
  196. // group.POST("/updateRecruitRequirementTask", backstage_api.Task.UpdateRecruitRequirement)
  197. // // 修改合作方式,所需达人数量及其对应稿费
  198. // group.POST("/updateRecruitLevelTask", backstage_api.Task.UpdateRecruitLevel)
  199. // // 增加合作方式,所需达人数量及其对应稿费
  200. // group.POST("/addRecruitLevelTask", backstage_api.Task.AddRecruitLevel)
  201. // // 删除合作方式,所需达人数量及其对应稿费
  202. // group.POST("/deleteRecruitLevelTask", backstage_api.Task.DeleteRecruitLevel)
  203. // // 修改任务执行帮助
  204. // group.POST("/updatePerformHelpTask", backstage_api.Task.UpdatePerformHelp)
  205. // // 查询发货地址
  206. // group.POST("/findSendAddressTask", backstage_api.Task.FindSendAddress)
  207. // // 查询招募统计信息
  208. // group.POST("/findRecruitTask", backstage_api.Task.FindRecruit)
  209. // // 数据BI统计信息
  210. // group.POST("/findBIStatisticsTask", backstage_api.Task.FindBIStatistics)
  211. // // 删除任务
  212. // group.POST("/deleteTask", backstage_api.Task.DeleteTask)
  213. // // 订单接口
  214. // group.POST("/findAllOrder", backstage_api.Order.FindAll)
  215. // group.POST("/findAddressOrder", backstage_api.Order.FindAddress)
  216. // group.POST("/executiveInfoOrder", backstage_api.Order.ExecutiveInfo)
  217. // group.POST("/registrationInfoOrder", backstage_api.Order.RegistrationInfo)
  218. // // group.POST("/draftFeeOrder", backstage_api.Order.DraftFee)
  219. // group.POST("/alterListStatusOrder", backstage_api.Order.AlterListStatus)
  220. // group.POST("/addDeliveryOrder", backstage_api.Order.AddDelivery)
  221. // group.POST("/addDraftReviewOrder", backstage_api.Order.AddDraftReview)
  222. // group.POST("/addAuditReviewOrder", backstage_api.Order.AddAuditReview)
  223. // group.POST("/addDataQualityOrder", backstage_api.Order.AddDataQuality)
  224. // group.POST("/addLinkQualityOrder", backstage_api.Order.AddLinkQuality)
  225. // group.POST("/findOrderProcedureDetailOrder", backstage_api.Order.FindOrderProcedureDetail)
  226. // // 查询一个订单下面所对应的扣款明细
  227. // group.POST("/ChargesDetailOrder", backstage_api.Order.ChargesDetail)
  228. // // 查询招募等级表
  229. // group.POST("/QueryTaskRecruitTalentLevelOrder", backstage_api.Order.QueryTaskRecruitTalentLevel)
  230. // // 订单完成后需要在收入里面加一条信息
  231. // group.POST("/AddBobocoinIncomeRecordOrder", backstage_api.Order.AddBobocoinIncomeRecord)
  232. // })
  233. // // 其他操作需要登录之后才能操作
  234. // s.Group("admin", func(group *ghttp.RouterGroup) {
  235. // })
  236. }