91 lines
3.2 KiB
Go
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
|
|
}
|