143 lines
4.2 KiB
Go
143 lines
4.2 KiB
Go
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
|
||
}
|