2025-03-07 17:23:50 +08:00

143 lines
4.2 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 (
"case-admin-api/api/model"
"fmt"
)
// CaseDto 病历表
type CaseDto struct {
CaseId string `json:"case_id"` // 主键id
ProjectId string `json:"project_id"` // 所属项目id
CaseStatus int `json:"case_status"` // 病例状态1:正常 2:禁用)
CaseName string `json:"case_name"` // 病例名称
CaseAuthor string `json:"case_author"` // 病例作者
SingleCaseScore int `json:"single_case_score"` // 单个病例总积分
IssuedScore int `json:"issued_score"` // 已发放积分
RemainingScore int `json:"remaining_score"` // 剩余积分
JoinNum int `json:"join_num"` // 多平台参加总人数
JoinWhiteNum int `json:"join_white_num"` // 多平台白名单参加总人数
PlatformJoinNum int `json:"platform_join_num"` // 肝胆相照平台参加总人数
PlatformJoinWhiteNum int `json:"platform_join_white_num"` // 肝胆相照白名单参加总人数
MessageNum int `json:"message_num"` // 多平台留言人数
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
CaseItem []*CaseItemDto `json:"case_item"` // 病例明细
}
// GetCaseListDto 列表
func GetCaseListDto(m []*model.Case) []*CaseDto {
// 处理返回值
responses := make([]*CaseDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &CaseDto{
CaseId: fmt.Sprintf("%d", v.CaseId),
ProjectId: fmt.Sprintf("%d", v.ProjectId),
CaseStatus: v.CaseStatus,
CaseName: v.CaseName,
CaseAuthor: v.CaseAuthor,
IssuedScore: v.IssuedScore,
JoinNum: v.JoinNum,
JoinWhiteNum: v.JoinWhiteNum,
MessageNum: v.MessageNum,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// GetCaseDto 详情
func GetCaseDto(m *model.Case) *CaseDto {
return &CaseDto{
CaseId: fmt.Sprintf("%d", m.CaseId),
ProjectId: fmt.Sprintf("%d", m.ProjectId),
CaseStatus: m.CaseStatus,
CaseName: m.CaseName,
CaseAuthor: m.CaseAuthor,
IssuedScore: m.IssuedScore,
JoinNum: m.JoinNum,
JoinWhiteNum: m.JoinWhiteNum,
MessageNum: m.MessageNum,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
// LoadCaseItem 加载数据-病例明细
func (r *CaseDto) LoadCaseItem(m []*model.CaseItem) *CaseDto {
if len(m) > 0 {
r.CaseItem = GetCaseItemListDto(m)
}
return r
}
// LoadSingleCaseScore 加载数据-单个病例总积分
func (r *CaseDto) LoadSingleCaseScore(m *model.ProjectPlatform) *CaseDto {
if m != nil {
r.SingleCaseScore = m.SingleCaseScore
}
return r
}
// LoadIssuedScore 加载数据-已发放积分
func (r *CaseDto) LoadIssuedScore(m *model.CasePlatform) *CaseDto {
if m != nil {
r.IssuedScore = m.IssuedScore
}
return r
}
// LoadRemainingScore 加载数据-剩余积分
func (r *CaseDto) LoadRemainingScore(m int) *CaseDto {
r.RemainingScore = m
return r
}
// LoadPlatformJoinNum 加载数据-参与人数-肝胆相照平台
func (r *CaseDto) LoadPlatformJoinNum(m *model.CasePlatform) *CaseDto {
if m != nil {
r.PlatformJoinNum = m.JoinNum
}
return r
}
// LoadPlatformJoinWhiteNum 加载数据-白名单参与人数-肝胆相照平台
func (r *CaseDto) LoadPlatformJoinWhiteNum(m *model.CasePlatform) *CaseDto {
if m != nil {
r.PlatformJoinWhiteNum = m.JoinWhiteNum
}
return r
}
// LoadJoinNum 加载数据-参与人数-全平台
func (r *CaseDto) LoadJoinNum(m *model.Case) *CaseDto {
if m != nil {
r.JoinNum = m.JoinNum
}
return r
}
// LoadJoinWhiteNum 加载数据-白名单参与人数-全平台
func (r *CaseDto) LoadJoinWhiteNum(m *model.Case) *CaseDto {
if m != nil {
r.JoinWhiteNum = m.JoinWhiteNum
}
return r
}