75 lines
2.1 KiB
Go
75 lines
2.1 KiB
Go
package dto
|
||
|
||
import (
|
||
"case-api/api/model"
|
||
"case-api/utils"
|
||
"fmt"
|
||
)
|
||
|
||
type ProjectDto struct {
|
||
ProjectId string `json:"project_id"` // 主键id
|
||
ProjectName string `json:"project_name"` // 项目名称
|
||
ProjectStatus int `json:"project_status"` // 项目状态(0:无效 1:正常)
|
||
ProjectImage string `json:"project_image"` // 项目背景图
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||
CaseCount int `json:"case_count"` // 关联病例数量
|
||
IsRecentlyUpdate int `json:"is_recently_update"` // 是否最近有更新(最近7天)
|
||
IsWelfare int `json:"is_welfare"` // 是否存在福利(区分平台)
|
||
}
|
||
|
||
// GetProjectListDto 列表
|
||
func GetProjectListDto(m []*model.Project) []*ProjectDto {
|
||
// 处理返回值
|
||
responses := make([]*ProjectDto, len(m))
|
||
|
||
if len(m) > 0 {
|
||
for i, v := range m {
|
||
response := &ProjectDto{
|
||
ProjectId: fmt.Sprintf("%d", v.ProjectId),
|
||
ProjectName: v.ProjectName,
|
||
ProjectStatus: v.ProjectStatus,
|
||
ProjectImage: utils.AddOssDomain(v.ProjectImage),
|
||
CreatedAt: v.CreatedAt,
|
||
UpdatedAt: v.UpdatedAt,
|
||
}
|
||
|
||
// 加载关联病例数量
|
||
response = response.LoadCaseCount(v.Case)
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|
||
|
||
// GetProjectDto 详情
|
||
func GetProjectDto(m *model.Project) *ProjectDto {
|
||
return &ProjectDto{
|
||
ProjectId: fmt.Sprintf("%d", m.ProjectId),
|
||
ProjectName: m.ProjectName,
|
||
ProjectStatus: m.ProjectStatus,
|
||
ProjectImage: utils.AddOssDomain(m.ProjectImage),
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
}
|
||
|
||
// LoadCaseCount 加载关联病例数量
|
||
func (r *ProjectDto) LoadCaseCount(m []*model.Case) *ProjectDto {
|
||
if len(m) > 0 {
|
||
r.CaseCount = len(m)
|
||
}
|
||
return r
|
||
}
|
||
|
||
// LoadIsRecentlyUpdate 加载最近更新情况
|
||
func (r *ProjectDto) LoadIsRecentlyUpdate(m *model.Case) *ProjectDto {
|
||
if m != nil {
|
||
r.IsRecentlyUpdate = 1
|
||
}
|
||
return r
|
||
}
|