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
|
||
}
|