case-admin-api/api/dto/CasePlatform.go
2025-03-07 17:23:50 +08:00

79 lines
2.4 KiB
Go

package dto
import (
"case-admin-api/api/model"
"fmt"
)
// CasePlatformDto 统计数据-病例-平台
type CasePlatformDto struct {
CasePlatformId string `json:"case_platform_id"` // 主键id
CaseId string `json:"case_id"` // 所属病例id
PlatformId string `json:"platform_id"` // 用户所属平台id
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"` // 白名单参加人数
MessageNum int `json:"message_num"` // 留言人数
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
PlatformName string `json:"platform_name"` // 平台名称
}
// GetCasePlatformListDto 列表
func GetCasePlatformListDto(m []*model.CasePlatform) []*CasePlatformDto {
// 处理返回值
responses := make([]*CasePlatformDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &CasePlatformDto{
CasePlatformId: fmt.Sprintf("%d", v.CasePlatformId),
CaseId: fmt.Sprintf("%d", v.CaseId),
PlatformId: fmt.Sprintf("%d", v.PlatformId),
IssuedScore: v.IssuedScore,
JoinNum: v.JoinNum,
JoinWhiteNum: v.JoinWhiteNum,
MessageNum: v.MessageNum,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
if v.Platform != nil {
response = response.LoadPlatFormName(v.Platform)
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadPlatFormName 加载数据-平台名称
func (r *CasePlatformDto) LoadPlatFormName(m *model.Platform) *CasePlatformDto {
if m != nil {
r.PlatformName = m.PlatformName
}
return r
}
// LoadSingleCaseScore 加载数据-单个病例总积分
func (r *CasePlatformDto) LoadSingleCaseScore(m *model.ProjectPlatform) *CasePlatformDto {
if m != nil {
r.SingleCaseScore = m.SingleCaseScore
}
return r
}
// LoadRemainingScore 加载数据-剩余积分
func (r *CasePlatformDto) LoadRemainingScore(m int) *CasePlatformDto {
r.RemainingScore = m
return r
}