auth_controller.go 3.1 KB
package controllers

import (
	"github.com/linmadan/egglib-go/core/application"
	"github.com/linmadan/egglib-go/web/beego"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/command"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/auth/service"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/constant"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
)

type AuthController struct {
	beego.BaseController
}

// Login PC端登录
func (controller *AuthController) Login() {
	authService := &service.AuthService{}
	loginCommand := &command.LoginCommand{}
	_ = controller.Unmarshal(loginCommand)
	resp, err := authService.Login(loginCommand)
	controller.Response(resp, err)
}

// 获取个人信息
func (controller *AuthController) User() {
	userAuth := controller.Ctx.Input.GetData(domain.UserAuth{}).(*domain.UserAuth)
	authService := &service.AuthService{}
	param := &command.GetMeInfo{
		UserId:    userAuth.UserId,
		CompanyId: userAuth.CompanyId,
	}
	resp, err := authService.MeInfo(param)
	controller.Response(resp, err)
}

// Login 手机端登录
func (controller *AuthController) MobileLogin() {
	authService := &service.AuthService{}
	loginCommand := &command.MobileLoginCommand{}
	_ = controller.Unmarshal(loginCommand)
	resp, err := authService.MobileLogin(loginCommand)
	controller.Response(resp, err)
}

// Login 手机端登录 获取authCode
func (controller *AuthController) Authorize() {
	authService := &service.AuthService{}
	loginCommand := &command.AuthorizeCommand{}
	_ = controller.Unmarshal(loginCommand)
	resp, err := authService.Authorize(loginCommand)
	controller.Response(resp, err)
}

// AccessToken 手机端 获取token
func (controller *AuthController) AccessToken() {
	authService := &service.AuthService{}
	loginCommand := &command.AccessTokenCommand{}
	_ = controller.Unmarshal(loginCommand)
	resp, err := authService.AccessToken(loginCommand)
	controller.Response(resp, err)
}

// Login 手机端 获取刷新token
func (controller *AuthController) RefreshToken() {
	authService := &service.AuthService{}
	loginCommand := &command.RefreshTokenCommand{}
	_ = controller.Unmarshal(loginCommand)
	resp, err := authService.RefreshToken(loginCommand)
	controller.Response(resp, err)
}

// 手机端 获取个人信息
func (controller *AuthController) UserInfos() {
	tokenStr := controller.Ctx.Input.Header("x-mmm-accesstoken")
	if tokenStr == "" { //没有带token
		e := application.ThrowError(application.ARG_ERROR, "token 错误")
		controller.Response(nil, e)
		return
	}
	userAuth, err := (&domain.UserAuth{}).ParseAccessToken(tokenStr)
	if err != nil || userAuth.UserId <= 0 {
		e := application.ThrowError(application.ARG_ERROR, "token 错误")
		controller.Response(nil, e)
		return
	}
	if userAuth.PlatformId != constant.PLATFORM_FONT_ID {
		e := application.ThrowError(application.ARG_ERROR, "token 错误")
		controller.Response(nil, e)
		return
	}
	authService := &service.AuthService{}
	param := &command.GetMeInfo{
		UserId:    userAuth.UserId,
		CompanyId: userAuth.CompanyId,
	}
	resp, err := authService.UserInfo(param)
	controller.Response(resp, err)
}