package logic import ( "context" "encoding/json" "healthapi/internal/model" "healthapi/internal/svc" "healthapi/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type GetQuestionsLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewGetQuestionsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetQuestionsLogic { return &GetQuestionsLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *GetQuestionsLogic) GetQuestions() (resp *types.QuestionsResp, err error) { var questions []model.QuestionBank l.svcCtx.DB.Order("constitution_type, order_num").Find(&questions) resp = &types.QuestionsResp{ Questions: make([]types.Question, 0, len(questions)), } for _, q := range questions { var options []string json.Unmarshal([]byte(q.Options), &options) resp.Questions = append(resp.Questions, types.Question{ ID: int(q.ID), ConstitutionType: q.ConstitutionType, QuestionText: q.QuestionText, Options: options, OrderNum: q.OrderNum, }) } return resp, nil }