| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * @desc:system base controller
- * @company:云南奇讯科技有限公司
- * @Author: yixiaohu
- * @Date: 2022/3/4 18:12
- */
- package controller
- import (
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "github.com/gogf/gf/v2/util/gconv"
- "github.com/tiger1103/gfast-token/gftoken"
- commonController "github.com/tiger1103/gfast/v3/internal/app/common/controller"
- "github.com/tiger1103/gfast/v3/internal/app/system/model"
- "github.com/tiger1103/gfast/v3/internal/app/system/service"
- "github.com/tiger1103/gfast/v3/library/libResponse"
- )
- type baseController struct {
- commonController.BaseController
- }
- // Init 自动执行的初始化方法
- func (c *baseController) Init(r *ghttp.Request) {
- c.BaseController.Init(r)
- b, failed := c.setLoginUser(r)
- if !b {
- libResponse.JsonExit(r, failed.Code, failed.Message)
- }
- }
- //判断登录并设置用户信息
- func (c *baseController) setLoginUser(r *ghttp.Request) (b bool, failed *gftoken.AuthFailed) {
- ctx := r.GetCtx()
- b = true
- // 验证用户是否登录
- b, failed = service.GfToken(ctx).IsLogin(r)
- if !b {
- return
- }
- // 初始化登录用户信息
- data, err := service.GfToken(ctx).ParseToken(r)
- if err != nil {
- return
- }
- if data != nil {
- context := new(model.Context)
- err = gconv.Struct(data.Data, &context.User)
- if err != nil {
- g.Log().Error(ctx, err)
- return
- }
- service.Context().Init(r, context)
- }
- return
- }
|