base.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * @desc:system base controller
  3. * @company:云南奇讯科技有限公司
  4. * @Author: yixiaohu
  5. * @Date: 2022/3/4 18:12
  6. */
  7. package controller
  8. import (
  9. "github.com/gogf/gf/v2/net/ghttp"
  10. "github.com/gogf/gf/v2/util/gconv"
  11. "github.com/tiger1103/gfast-token/gftoken"
  12. commonController "github.com/tiger1103/gfast/v3/internal/app/common/controller"
  13. "github.com/tiger1103/gfast/v3/internal/app/system/model"
  14. "github.com/tiger1103/gfast/v3/internal/app/system/service"
  15. "github.com/tiger1103/gfast/v3/library/libResponse"
  16. )
  17. type baseController struct {
  18. commonController.BaseController
  19. }
  20. // Init 自动执行的初始化方法
  21. func (c *baseController) Init(r *ghttp.Request) {
  22. c.BaseController.Init(r)
  23. ctx := r.GetCtx()
  24. // 验证用户是否登录
  25. b, failed := service.GfToken(ctx).IsLogin(r)
  26. if !b {
  27. libResponse.JsonExit(r, failed.Code, failed.Message)
  28. }
  29. // 初始化登录用户信息
  30. data, err := service.GfToken(ctx).ParseToken(r)
  31. if err != nil {
  32. libResponse.JsonExit(r, gftoken.FailedAuthCode, err.Error())
  33. }
  34. context := new(model.Context)
  35. err = gconv.Struct(data.Data, &context.User)
  36. if err != nil {
  37. libResponse.JsonExit(r, gftoken.FailedAuthCode, err.Error())
  38. }
  39. service.Context().Init(r, context)
  40. }