package client import ( "ulink-admin/frame" "ulink-admin/modules/system/models/req" service2 "ulink-admin/modules/system/service" "ulink-admin/pkg/cache" "ulink-admin/pkg/captcha" "ulink-admin/pkg/jwt/admin" ) type MemberLoginApi struct { MemberLoginService *service2.MemberLoginService `inject:""` SysMemberService *service2.SysMemberService `inject:""` } // Login 登录 // @Summary 登录接口 // @Description 用户登录接口 // @Tags 用户登录相关接口 // @Accept application/json // @Produce application/json // @Param data body req.LoginBody true "登录实体对象" // @Success 200 {object} resp.Response{data=map[stirng]string,msg=string} "返回登录结果" // @Router /login [post] func (a MemberLoginApi) Login(c *frame.Context) { loginBody := req.LoginBody{} err := c.BindJSON(&loginBody) c.ValidteError(err, loginBody) s := a.MemberLoginService.Login(loginBody) m := make(map[string]string) m["token"] = s c.Ok(m) } // GetUserInfo 获取用户信息 // Login 用户详情查询接口 // @Summary 用户详情查询接口 // @Description 用户详情查询接口 // @Tags 用户登录相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Success 200 {object} resp.Response{data=map[stirng]interface{},msg=string} "返回用户详情查询" // @Router /getInfo [get] func (a MemberLoginApi) GetUserInfo(c *frame.Context) { /* m := make(map[string]interface{})*/ user := a.MemberLoginService.LoginUser(c) member := a.SysMemberService.Get(user.Id) /* //查询用户角色集合 roleKeys := a.PermissionService.GetRolePermissionByUserId(record) // 权限集合 perms := a.PermissionService.GetMenuPermission(record) menus := a.MenuService.GetMenuTreeByUserId(user) systemMenus := tree_menu.SystemMenus{} systemMenus = *menus array := systemMenus.ConvertToINodeArray() generateTree := tree_menu.GenerateTree(array, nil) m["roles"] = roleKeys m["permissions"] = perms m["user"] = user m["menu"] = generateTree*/ c.Ok(member) } // captcha 获取验证码接口 // @Summary 获取验证码接口 // @Description 获取验证码接口 // @Tags 用户登录相关接口 // @Accept application/json // @Produce application/json // @Success 200 {object} resp.Response{data=captcha.CaptchaInfo,msg=string} "返回验证码查询" // @Router /getCaptcha [get] func (a MemberLoginApi) GetCaptcha(c *frame.Context) { id, image, error := captcha.CreateCode() captchaInfo := new(captcha.CaptchaInfo) if error != nil { frame.Throw(frame.BUSINESS_CODE, "获取验证码错误") } captchaInfo.Id = id captchaInfo.Image = image c.Ok(captchaInfo) } // Logout 退出登录 // @Summary 退出登录接口 // @Description 退出登录接口 // @Tags 用户登录相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Success 200 {object} resp.Response "返回退出结果" // @Router /logout [post] func (a MemberLoginApi) Logout(c *frame.Context) { //删除Redis缓存 name := admin.GetJWTRedisKey(c) cache.RemoveKey(name) }