perf(platform): 创作页加载 - 合并用户数据与余额请求并按路由延迟加载
This commit is contained in:
@@ -299,6 +299,19 @@ func RegisterUserDataRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
}
|
||||
ok(c, gin.H{"assets": assets})
|
||||
})
|
||||
r.GET("/user-data/snapshot", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
snapshot, err := svc.UserDataSnapshot(user.ID)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
ok(c, snapshot)
|
||||
})
|
||||
r.GET("/assets/:id", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
|
||||
@@ -29,6 +29,23 @@ type UserDataSummary struct {
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
type UserDataSnapshot struct {
|
||||
Assets []json.RawMessage `json:"assets"`
|
||||
Projects []json.RawMessage `json:"projects"`
|
||||
}
|
||||
|
||||
func (s *Service) UserDataSnapshot(userID string) (UserDataSnapshot, error) {
|
||||
assets, err := s.UserAssets(userID)
|
||||
if err != nil {
|
||||
return UserDataSnapshot{}, err
|
||||
}
|
||||
projects, err := s.UserCanvasProjects(userID)
|
||||
if err != nil {
|
||||
return UserDataSnapshot{}, err
|
||||
}
|
||||
return UserDataSnapshot{Assets: assets, Projects: projects}, nil
|
||||
}
|
||||
|
||||
func (s *Service) UserAssetSummaries(userID string) ([]UserDataSummary, error) {
|
||||
assets, err := s.repo.AssetSummaries(userID)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user