hepa-calc-api/api/dto/Question.go

186 lines
5.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"fmt"
"hepa-calc-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"` // 被购买数量
}
// QuestionBuyStatusDto 获取问题解锁状态
type QuestionBuyStatusDto struct {
BuyStatus int `json:"buy_status"` // 解锁状态0:否 1:是)
BuyMode int `json:"buy_mode"` // 解锁方式1单项有效期 2会员
ValidDate string `json:"valid_date"` // 到期时间
}
// 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: m.DiscountEndTime,
QuestionBrief: m.QuestionBrief,
QuestionExplain: m.QuestionExplain,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
// 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
}
// GetQuestionPageListDto 列表-分页
func GetQuestionPageListDto(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,
Price: v.Price,
DiscountPrice: v.DiscountPrice,
}
// 将转换后的结构体添加到新切片中
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
}