Files
novel_server/internal/controller/book/book_v1_app_detail.go

52 lines
1.3 KiB
Go

package book
import (
"context"
v1 "server/api/book/v1"
"server/internal/model"
"server/internal/service"
"github.com/gogf/gf/v2/frame/g"
)
func (c *ControllerV1) AppDetail(ctx context.Context, req *v1.AppDetailReq) (res *v1.AppDetailRes, err error) {
// 从 ctx 获取用户ID
userId := g.RequestFromCtx(ctx).GetCtxVar("id").Int64()
out, err := service.Book().AppDetail(ctx, &model.BookAppDetailIn{
Id: req.Id,
UserId: userId,
})
if err != nil {
return nil, err
}
return &v1.AppDetailRes{
Id: out.Id,
CoverUrl: out.CoverUrl,
Rating: out.Rating,
Title: out.Title,
Description: out.Description,
AuthorId: out.AuthorId,
Author: out.Author,
CategoryId: out.CategoryId,
Category: out.Category,
Status: out.Status,
WordsCount: out.WordsCount,
ChaptersCount: out.ChaptersCount,
ReadCount: out.ReadCount,
CurrentReaders: out.CurrentReaders,
Tags: out.Tags,
IsRecommended: out.IsRecommended,
CreatedAt: out.CreatedAt.String(),
UpdatedAt: out.UpdatedAt.String(),
HasRated: out.HasRated,
MyRating: out.MyRating,
HasRead: out.HasRead,
ReadProgress: out.ReadProgress,
LastChapterId: out.LastChapterId,
LastReadAt: out.LastReadAt,
IsInBookshelf: out.IsInBookshelf,
}, nil
}