Files
blog-server/internal/model/response/sys_user.go
2026-07-22 17:50:33 +08:00

46 lines
1.1 KiB
Go

package response
import (
db "server/internal/db/sqlc"
"server/internal/pkg/httputil"
"time"
)
type SysUserRolesResponse struct {
ID uint `json:"id"`
Code string `json:"code"`
Description string `json:"description"`
}
type SysUserInfo struct {
ID int32 `json:"id"`
Account string `json:"account"`
Username string `json:"username"`
AvatarUrl string `json:"avatar_url"`
Roles []string `json:"roles"`
Menus []db.SysMenu `json:"menus"`
}
type LoginResponse struct {
AccessToken string `json:"access_token"`
AccessTokenExp time.Time `json:"access_token_exp"`
RefreshToken string `json:"refresh_token"`
RefreshTokenExp time.Time `json:"refresh_token_exp"`
}
func NewSysUserInfo(user db.GetSysUserByIDRow, roles []db.SysRole, menus []db.SysMenu) *SysUserInfo {
roleCodes := make([]string, len(roles))
for i, role := range roles {
roleCodes[i] = role.Code
}
return &SysUserInfo{
ID: user.ID,
Account: user.Account,
Username: user.Username,
AvatarUrl: httputil.BuildFileUrl(user.AvatarUrl),
Roles: roleCodes,
Menus: menus,
}
}