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"` // 更新时间 IsCollection bool `json:"is_collection"` // 用户是否收藏 FirstTimePrice *float64 `json:"first_time_price"` // 首次购买价格 BuyCount int `json:"buy_count"` // 被购买数量 BaseClass []*BaseClassDto `json:"base_class"` // 关联分类 } // 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 } // GetRecommendQuestionListDto 列表-为你推荐 func GetRecommendQuestionListDto(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 } // GetGuessUserLikeListDto 列表-猜你喜欢 func GetGuessUserLikeListDto(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 } // LoadIsCollection 加载数据-是否收藏 func (r *QuestionDto) LoadIsCollection(isCollection bool) *QuestionDto { r.IsCollection = isCollection return r } // LoadFirstTimePrice 加载数据-首次购买价格 func (r *QuestionDto) LoadFirstTimePrice(firstTimePrice *float64) *QuestionDto { if firstTimePrice != nil { r.FirstTimePrice = firstTimePrice } return r } // LoadBuyCount 加载数据-问题被购买数量 func (r *QuestionDto) LoadBuyCount(buyCount int) *QuestionDto { r.BuyCount = buyCount return r }