完善功能

This commit is contained in:
2025-07-16 15:16:40 +08:00
parent b2871ec0d2
commit f68a5b360b
123 changed files with 4643 additions and 931 deletions

View File

@ -1,23 +1,41 @@
package model
import "github.com/gogf/gf/v2/frame/g"
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
)
type Book struct {
g.Meta `orm:"table:books"`
Id int64 `json:"id"`
AuthorId int64 `json:"authorId"`
CategoryId int64 `json:"categoryId"`
Title string `json:"title"`
CoverUrl string `json:"coverUrl"`
Description string `json:"description"`
Status int `json:"status"`
WordsCount int `json:"wordsCount"`
ChaptersCount int `json:"chaptersCount"`
LatestChapterId int64 `json:"latestChapterId"`
Rating float64 `json:"rating"`
ReadCount int64 `json:"readCount"`
Tags string `json:"tags"`
IsRecommended int `json:"isRecommended"`
Id int64 `json:"id" orm:"id"`
AuthorId int64 `json:"authorId" orm:"author_id"`
Author Author `json:"author" orm:"with:id = author_id"`
CategoryId int64 `json:"categoryId" orm:"category_id"`
Category Category `json:"category" orm:"with:id = category_id"`
Title string `json:"title" orm:"title"`
CoverUrl string `json:"coverUrl" orm:"cover_url"`
Description string `json:"description" orm:"description"`
Status int `json:"status" orm:"status"`
WordsCount int `json:"wordsCount" orm:"words_count"`
ChaptersCount int `json:"chaptersCount" orm:"chapters_count"`
LatestChapterId int64 `json:"latestChapterId" orm:"latest_chapter_id"`
Rating float64 `json:"rating" orm:"rating"`
ReadCount int64 `json:"readCount" orm:"read_count"`
CurrentReaders int64 `json:"currentReaders" orm:"current_readers"`
Tags string `json:"tags" orm:"tags"`
IsRecommended int `json:"isRecommended" orm:"is_recommended"`
IsFeatured int `json:"isFeatured" orm:"is_featured"`
Language string `json:"language" orm:"language"`
}
// App作者信息结构体
type AppAuthor struct {
g.Meta `orm:"table:authors"`
Id int64 `json:"id" orm:"id"`
UserId int64 `json:"-" orm:"user_id"`
PenName string `json:"penName" orm:"pen_name"`
Bio string `json:"bio" orm:"bio"`
Status int `json:"status" orm:"status"`
}
type BookListIn struct {
@ -28,6 +46,7 @@ type BookListIn struct {
AuthorId int64
Status int
IsRecommended int
Sort string
}
type BookListOut struct {
Total int
@ -43,6 +62,8 @@ type BookAddIn struct {
Status int
Tags string
IsRecommended int
IsFeatured int
Language string
}
type BookEditIn struct {
Id int64
@ -54,6 +75,8 @@ type BookEditIn struct {
Status int
Tags string
IsRecommended int
IsFeatured int
Language string
}
type BookDelIn struct {
Id int64
@ -62,3 +85,166 @@ type BookDelIn struct {
type BookCRUDOut struct {
Success bool
}
type BookHistoryRemoveOut struct {
Success bool `json:"success" dc:"是否成功"`
}
// App 书籍列表项结构体
type BookAppItem struct {
g.Meta `orm:"table:books"`
Id int64 `json:"id" dc:"书籍ID" orm:"id"`
CoverUrl string `json:"coverUrl" dc:"封面图" orm:"cover_url"`
Rating float64 `json:"rating" dc:"评分" orm:"rating"`
Title string `json:"title" dc:"标题" orm:"title"`
Description string `json:"description" dc:"简介" orm:"description"`
AuthorId int64 `json:"authorId" dc:"作者ID" orm:"author_id"`
Author AppAuthor `json:"author" dc:"作者信息" orm:"with:id = author_id"`
IsFeatured int `json:"isFeatured" dc:"是否精选" orm:"is_featured"`
Language string `json:"language" dc:"语言" orm:"language"`
CategoryId int64 `json:"categoryId" dc:"分类ID" orm:"category_id"`
Category Category `json:"category" dc:"分类信息" orm:"with:id = category_id"`
Status int `json:"status" dc:"状态" orm:"status"`
WordsCount int `json:"wordsCount" dc:"字数" orm:"words_count"`
ChaptersCount int `json:"chaptersCount" dc:"章节数" orm:"chapters_count"`
LatestChapterId int64 `json:"latestChapterId" dc:"最新章节ID" orm:"latest_chapter_id"`
ReadCount int64 `json:"readCount" dc:"阅读人数" orm:"read_count"`
CurrentReaders int64 `json:"currentReaders" dc:"在读人数" orm:"current_readers"`
Tags string `json:"tags" dc:"标签" orm:"tags"`
IsRecommended int `json:"isRecommended" dc:"是否推荐" orm:"is_recommended"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间" orm:"created_at"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间" orm:"updated_at"`
HasRated bool `json:"hasRated" dc:"当前用户是否已评分"`
MyRating float64 `json:"myRating" dc:"当前用户评分未评分为0"`
}
// App 书籍列表查询输入参数
type BookAppListIn struct {
Page int `json:"page" dc:"页码"`
Size int `json:"size" dc:"每页数量"`
IsRecommended bool `json:"isRecommended" dc:"是否推荐"`
IsLatest int `json:"isLatest" dc:"是否最新"`
CategoryId int64 `json:"categoryId" dc:"分类ID"`
Title string `json:"title" dc:"书名模糊搜索"`
UserId int64 `json:"userId" dc:"用户ID"`
AuthorId int `json:"authorId" dc:"作者ID"`
IsFeatured bool `json:"isFeatured" dc:"是否精选"`
Language string `json:"language" dc:"语言"`
Sort string `json:"sort" dc:"排序字段"`
}
// App 书籍列表输出结构体
type BookAppListOut struct {
Total int `json:"total" dc:"总数"`
List []BookAppItem `json:"list" dc:"书籍列表"`
}
// App 书籍详情查询输入参数
type BookAppDetailIn struct {
Id int64 `json:"id" dc:"书籍ID"`
UserId int64 `json:"userId" dc:"用户ID"`
}
// App 书籍详情输出结构体
type BookAppDetailOut struct {
Id int64 `json:"id" dc:"书籍ID"`
AuthorId int64 `json:"authorId" dc:"作者ID"`
CategoryId int64 `json:"categoryId" dc:"分类ID"`
Title string `json:"title" dc:"书名"`
CoverUrl string `json:"coverUrl" dc:"封面图"`
Description string `json:"description" dc:"简介"`
Status int `json:"status" dc:"状态"`
Tags string `json:"tags" dc:"标签"`
IsRecommended int `json:"isRecommended" dc:"是否推荐"`
IsFeatured int `json:"isFeatured" dc:"是否精选"`
Language string `json:"language" dc:"语言"`
Rating float64 `json:"rating" dc:"评分"`
CurrentReaders int64 `json:"currentReaders" dc:"在读人数"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
HasRead bool `json:"hasRead" dc:"是否读过"`
ReadProgress int `json:"readProgress" dc:"阅读进度百分比"`
LastChapterId int64 `json:"lastChapterId" dc:"最近阅读章节ID"`
LastReadAt string `json:"lastReadAt" dc:"最近阅读时间"`
}
// App 用户评分输入参数
type BookAppRateIn struct {
BookId int64 `json:"bookId" dc:"书籍ID"`
UserId int64 `json:"userId" dc:"用户ID"`
Rating float64 `json:"rating" dc:"评分(1-10分)"`
}
// App 用户评分输出结构体
type BookAppRateOut struct {
Success bool `json:"success" dc:"是否成功"`
}
// 书籍评分模型
type BookRating struct {
g.Meta `orm:"table:book_ratings"`
Id int64 `json:"id" orm:"id"`
UserId int64 `json:"userId" orm:"user_id"`
BookId int64 `json:"bookId" orm:"book_id"`
Score float64 `json:"score" orm:"score"`
Comment string `json:"comment" orm:"comment"`
CreatedAt *gtime.Time `json:"createdAt" orm:"created_at"`
}
// 书籍评分输入参数
type BookRatingAddIn struct {
UserId int64 `json:"userId" dc:"用户ID"`
BookId int64 `json:"bookId" dc:"书籍ID"`
Score float64 `json:"score" dc:"评分(1-10分)"`
Comment string `json:"comment" dc:"用户评论"`
}
// 书籍评分输出结构体
type BookRatingCRUDOut struct {
Success bool `json:"success" dc:"是否成功"`
}
// 我的书籍列表项
// =============================
type MyBookItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
CoverUrl string `json:"coverUrl"`
Description string `json:"description"`
Progress int `json:"progress" dc:"阅读进度百分比"`
IsInShelf bool `json:"isInShelf" dc:"是否在书架"`
LastReadAt string `json:"lastReadAt" dc:"最近阅读时间"`
Status int `json:"status" dc:"书籍状态"`
AuthorId int64 `json:"authorId"`
CategoryId int64 `json:"categoryId"`
}
// 我的书籍列表查询参数
// =============================
type MyBookListIn struct {
Type int // 1-正在读 2-已读完 3-历史记录
Page int
Size int
UserId int64
Sort string
}
// 我的书籍列表返回
// =============================
type MyBookListOut struct {
Total int
List []MyBookItem
}
// =============================
// 新增:单独修改精选状态和推荐状态
// =============================
type BookSetFeaturedIn struct {
Id int64 `json:"id" dc:"书籍ID"`
IsFeatured int `json:"isFeatured" dc:"是否精选"`
}
type BookSetRecommendedIn struct {
Id int64 `json:"id" dc:"书籍ID"`
IsRecommended int `json:"isRecommended" dc:"是否推荐"`
}