Files
mce/internal/service/space_service.go
Victor_Jay bacfd4945d feat: 编辑器与帖子展示布局优化 + 新增个人空间
- 编辑器投稿页布局优化:标题与编辑器高度动态适配,工具栏与内容区视觉对齐
- 稿件展示页布局优化:MD 渲染区与评论区视觉分离,代码块主题微调
- CSRF 中间件:图像上传端点豁免,解决 Vditor 拖拽/粘贴上传 403
- Post 状态映射、GetGinUser、SaveUploadedFile 提取至 common 包,遵循审计建议
- 新增个人空间功能:/space(需登录)重定向到 /space/:uid,/space/:uid 公开访问
- 空间页模板:参考 B 站布局,展示头像、用户名、个性签名、UID、加入时间及稿件列表
- 导航栏:用户名链接指向 /space,新增「设置」入口
- 分层实现:SpaceController → SpaceService → PostRepo.FindByUserID,严格 ISP 接口隔离
2026-05-30 19:06:10 +08:00

26 lines
748 B
Go

package service
import "metazone.cc/metalab/internal/model"
// SpaceService 用户空间服务
type SpaceService struct {
userRepo spaceUserStore
postRepo spacePostStore
}
// NewSpaceService 构造函数
func NewSpaceService(userRepo spaceUserStore, postRepo spacePostStore) *SpaceService {
return &SpaceService{userRepo: userRepo, postRepo: postRepo}
}
// GetSpaceUser 获取用户信息
func (s *SpaceService) GetSpaceUser(uid uint) (*model.User, error) {
return s.userRepo.FindByID(uid)
}
// GetPostsByUser 获取用户发布的帖子(分页)
func (s *SpaceService) GetPostsByUser(uid uint, page, pageSize int) ([]model.Post, int64, error) {
offset := (page - 1) * pageSize
return s.postRepo.FindByUserID(uid, offset, pageSize)
}