router.go 11 KB

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