调整交易和账单模型,完善支付与用户余额基础处理逻辑
This commit is contained in:
49
web/handlers/user.go
Normal file
49
web/handlers/user.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"errors"
|
||||
q "platform/web/queries"
|
||||
"platform/web/services"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// region GetUserByToken
|
||||
|
||||
type GetUserByTokenReq struct {
|
||||
Token string `json:"token" validate:"required"`
|
||||
}
|
||||
|
||||
// GetUserByToken 通过token获取用户信息
|
||||
func GetUserByToken(c *fiber.Ctx) error {
|
||||
|
||||
// 解析请求参数
|
||||
req := new(GetUserByTokenReq)
|
||||
if err := c.BodyParser(req); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 查询会话信息
|
||||
session, err := services.Session.Find(c.Context(), req.Token)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 查询用户信息
|
||||
user, err := q.User.Debug().
|
||||
Omit(q.User.Password, q.User.DeletedAt).
|
||||
Where(q.User.ID.Eq(session.Payload.Id)).
|
||||
Take()
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return fiber.NewError(fiber.StatusNotFound, "用户不存在")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// 返回用户信息
|
||||
return c.JSON(user)
|
||||
}
|
||||
|
||||
// endregion
|
||||
Reference in New Issue
Block a user