118 lines
4.2 KiB
Go
118 lines
4.2 KiB
Go
package dto
|
||
|
||
import (
|
||
"fmt"
|
||
"hepa-calc-admin-api/api/model"
|
||
)
|
||
|
||
// QuestionDto 问题表
|
||
type QuestionDto struct {
|
||
QuestionId string `json:"question_id"` // 主键id
|
||
QuestionTitle string `json:"question_title"` // 标题
|
||
QuestionSubtitle string `json:"question_subtitle"` // 副标题
|
||
QuestionIden string `json:"question_iden"` // 唯一标识
|
||
QuestionStatus int `json:"question_status"` // 问题状态(1:正常 2:待发布)
|
||
IsHide int `json:"is_hide"` // 是否隐藏(0:否 1:是)
|
||
IsRecommend int `json:"is_recommend"` // 是否推荐(0:否 1:是)
|
||
ClickCount int `json:"click_count"` // 点击次数(点击进入详情页的人次)
|
||
SubmitCount int `json:"submit_count"` // 提交次数(提交个人信息进行了算算的人次)
|
||
PayCount int `json:"pay_count"` // 支付次数(查看报告的人次)
|
||
Price float64 `json:"price"` // 价格(原价)
|
||
DiscountPrice *float64 `json:"discount_price"` // 优惠价格
|
||
DiscountEndTime *model.LocalTime `json:"discount_end_time"` // 优惠截止时间
|
||
QuestionBrief string `json:"question_brief"` // 问题介绍
|
||
QuestionExplain string `json:"question_explain"` // 问题解释/科普
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
|
||
BaseClass []*BaseClassDto `json:"base_class"` // 关联分类
|
||
}
|
||
|
||
// QuestionPriceDto 问题价格
|
||
type QuestionPriceDto struct {
|
||
Price float64 `json:"price"` // 价格(原价)
|
||
DiscountPrice *float64 `json:"discount_price"` // 优惠价格
|
||
}
|
||
|
||
// GetQuestionDto 详情-问题
|
||
func GetQuestionDto(m *model.Question) *QuestionDto {
|
||
return &QuestionDto{
|
||
QuestionId: fmt.Sprintf("%d", m.QuestionId),
|
||
QuestionTitle: m.QuestionTitle,
|
||
QuestionSubtitle: m.QuestionSubtitle,
|
||
QuestionIden: m.QuestionIden,
|
||
QuestionStatus: m.QuestionStatus,
|
||
IsHide: m.IsHide,
|
||
IsRecommend: m.IsRecommend,
|
||
ClickCount: m.ClickCount,
|
||
SubmitCount: m.SubmitCount,
|
||
PayCount: m.PayCount,
|
||
Price: m.Price,
|
||
DiscountPrice: m.DiscountPrice,
|
||
DiscountEndTime: (*model.LocalTime)(m.DiscountEndTime),
|
||
QuestionBrief: m.QuestionBrief,
|
||
QuestionExplain: m.QuestionExplain,
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
}
|
||
|
||
// GetQuestionListDto 列表-问题
|
||
func GetQuestionListDto(m []*model.Question) []*QuestionDto {
|
||
// 处理返回值
|
||
responses := make([]*QuestionDto, len(m))
|
||
|
||
if len(m) > 0 {
|
||
for i, v := range m {
|
||
response := &QuestionDto{
|
||
QuestionId: fmt.Sprintf("%d", v.QuestionId),
|
||
QuestionTitle: v.QuestionTitle,
|
||
QuestionSubtitle: v.QuestionSubtitle,
|
||
QuestionIden: v.QuestionIden,
|
||
QuestionStatus: v.QuestionStatus,
|
||
IsHide: v.IsHide,
|
||
IsRecommend: v.IsRecommend,
|
||
ClickCount: v.ClickCount,
|
||
SubmitCount: v.SubmitCount,
|
||
PayCount: v.PayCount,
|
||
Price: v.Price,
|
||
DiscountPrice: v.DiscountPrice,
|
||
DiscountEndTime: (*model.LocalTime)(v.DiscountEndTime),
|
||
QuestionBrief: v.QuestionBrief,
|
||
QuestionExplain: v.QuestionExplain,
|
||
CreatedAt: v.CreatedAt,
|
||
UpdatedAt: v.UpdatedAt,
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|
||
|
||
// GetHotQuestionListDto 列表-热榜问题
|
||
func GetHotQuestionListDto(m []*model.Question) []*QuestionDto {
|
||
// 处理返回值
|
||
responses := make([]*QuestionDto, len(m))
|
||
|
||
if len(m) > 0 {
|
||
for i, v := range m {
|
||
response := &QuestionDto{
|
||
QuestionId: fmt.Sprintf("%d", v.QuestionId),
|
||
QuestionTitle: v.QuestionTitle,
|
||
QuestionSubtitle: v.QuestionSubtitle,
|
||
QuestionIden: v.QuestionIden,
|
||
ClickCount: v.ClickCount,
|
||
SubmitCount: v.SubmitCount,
|
||
PayCount: v.PayCount,
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|