vote-admin-api/api/dto/Article.go
2024-09-03 16:05:14 +08:00

78 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"fmt"
"vote-admin-api/api/model"
)
// ArticleDto 文章表
type ArticleDto struct {
ArticleId string `json:"article_id"` // 主键id
ArticleTitle string `json:"article_title"` // 文章标题
ArticleStatus int `json:"article_status"` // 文章状态1:正常 2:禁用)
VoteNum uint `json:"vote_num"` // 总票数
ArticleContent string `json:"article_content"` // 文章内容
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
ArticleAuthor []*ArticleAuthorDto `json:"article_author"` // 作者
Rank *int `json:"rank"` // 排名
}
// GetArticleListDto 列表-分页
func GetArticleListDto(m []*model.Article) []*ArticleDto {
// 处理返回值
responses := make([]*ArticleDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &ArticleDto{
ArticleId: fmt.Sprintf("%d", v.ArticleId),
ArticleTitle: v.ArticleTitle,
ArticleStatus: v.ArticleStatus,
VoteNum: v.VoteNum,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 加载数据-作者
if v.ArticleAuthor != nil {
response = response.LoadArticleAuthor(v.ArticleAuthor)
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// GetArticleDto 详情
func GetArticleDto(m *model.Article) *ArticleDto {
return &ArticleDto{
ArticleId: fmt.Sprintf("%d", m.ArticleId),
ArticleTitle: m.ArticleTitle,
ArticleStatus: m.ArticleStatus,
VoteNum: m.VoteNum,
ArticleContent: m.ArticleContent,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
// LoadArticleAuthor 加载数据-作者
func (r *ArticleDto) LoadArticleAuthor(m []*model.ArticleAuthor) *ArticleDto {
if len(m) > 0 {
r.ArticleAuthor = GetArticleAuthorListDto(m)
}
return r
}
// LoadRank 加载数据-排名
func (r *ArticleDto) LoadRank(m int) *ArticleDto {
if m > 0 {
r.Rank = &m
}
return r
}