79 lines
2.4 KiB
Go
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
|
|
}
|