Files
hospital-admin-api/api/dto/ArticleScience.go
T

91 lines
3.2 KiB
Go

package dto
import (
"fmt"
"hospital-admin-api/api/model"
"hospital-admin-api/utils"
)
// ArticleScienceDto 文章-科普
type ArticleScienceDto struct {
ArticleId string `json:"article_id"` // 主键id
ArticleTitle string `json:"article_title"` // 文章标题
ArticleStatus int `json:"article_status"` // 文章状态(1:正常 2:禁用)
IsTop int `json:"is_top"` // 是否置顶(0:否 1:是)
Sort int `json:"sort"` // 排序值(越大越靠前)
ArticleImage string `json:"article_image"` // 文章图片(1张)
SourceId string `json:"source_id"` // 文章来源id
ArticleUrl string `json:"article_url"` // 文章地址
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
ArticleScienceSource *ArticleScienceSourceDto `json:"article_science_source"` // 文章来源
ArticleScienceClass []*BasicArticleClassDto `json:"article_science_class"` // 文章分类
}
// GetArticleScienceDto 详情
func GetArticleScienceDto(m *model.ArticleScience) *ArticleScienceDto {
return &ArticleScienceDto{
ArticleId: fmt.Sprintf("%d", m.ArticleId),
ArticleTitle: m.ArticleTitle,
ArticleStatus: m.ArticleStatus,
IsTop: m.IsTop,
Sort: m.Sort,
ArticleImage: utils.AddOssDomain(m.ArticleImage),
SourceId: fmt.Sprintf("%d", m.SourceId),
ArticleUrl: m.ArticleUrl,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
// GetArticleScienceListDto 列表
func GetArticleScienceListDto(m []*model.ArticleScience) []*ArticleScienceDto {
// 处理返回值
responses := make([]*ArticleScienceDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &ArticleScienceDto{
ArticleId: fmt.Sprintf("%d", v.ArticleId),
ArticleTitle: v.ArticleTitle,
ArticleStatus: v.ArticleStatus,
IsTop: v.IsTop,
Sort: v.Sort,
ArticleImage: utils.AddOssDomain(v.ArticleImage),
SourceId: fmt.Sprintf("%d", v.SourceId),
ArticleUrl: v.ArticleUrl,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 加载文章来源
if v.ArticleScienceSource != nil {
response = response.LoadArticleScienceSource(v.ArticleScienceSource)
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadArticleScienceSource 加载文章来源
func (r *ArticleScienceDto) LoadArticleScienceSource(m *model.ArticleScienceSource) *ArticleScienceDto {
if m != nil {
r.ArticleScienceSource = GetArticleScienceSourceDto(m)
}
return r
}
// LoadArticleScienceClass 加载文章分类
func (r *ArticleScienceDto) LoadArticleScienceClass(m *model.BasicArticleClass) *ArticleScienceDto {
if m != nil {
basicArticleClass := GetBasicArticleClassDto(m)
r.ArticleScienceClass = append(r.ArticleScienceClass, basicArticleClass)
}
return r
}