package logic import ( "encoding/json" "errors" "fmt" "micro-bundle/internal/dao" "micro-bundle/internal/model" "micro-bundle/pb/bundle" "github.com/samber/lo" ) func SendQuestionnaireSurvey(req *bundle.SendQuestionnaireSurveyRequest) (*bundle.SendQuestionnaireSurveyResponse, error) { resp, err := dao.SendQuestionnaireSurvey(req) if err != nil { return nil, err } return resp, nil } func GetQuestionnaireSurveyInfo(req *bundle.GetQuestionnaireSurveyInfoRequest) (*bundle.GetQuestionnaireSurveyInfoResponse, error) { resp := new(bundle.GetQuestionnaireSurveyInfoResponse) data, err := dao.GetQuestionnaireSurveyInfo(req) if err != nil { return nil, errors.New("获取问卷信息失败") } bundleInfo := &model.BundleInfo{} err = json.Unmarshal([]byte(data.BundleInfo), bundleInfo) if err != nil { return nil, errors.New("反序列化失败") } fmt.Println("获取套餐名称:", bundleInfo.BundleName) resp.UserName = data.UserName resp.BundleInfo = &bundle.SurveyBundleInfo{} resp.BundleInfo.BundleName = bundleInfo.BundleName resp.BundleInfo.StartAt = bundleInfo.StartAt.Format("2006-01-02 15:04:05") resp.BundleInfo.ExpiredAt = bundleInfo.ExpiredAt.Format("2006-01-02 15:04:05") resp.BundleInfo.BundleAccountNumber = int32(bundleInfo.BundleAccountNumber) resp.BundleInfo.BundleVideoNumber = int32(bundleInfo.BundleVideoNumber) resp.BundleInfo.IncreaseVideoNumber = int32(bundleInfo.IncreaseVideoNumber) resp.BundleInfo.BundleImageNumber = int32(bundleInfo.BundleImageNumber) resp.BundleInfo.BundleDataNumber = int32(bundleInfo.BundleDataNumber) resp.BundleInfo.BundleCompetitiveNumber = int32(bundleInfo.BundleCompetitiveNumber) return resp, nil } func CreateQuestionnaireSurveyAnswer(req *bundle.CreateQuestionnaireSurveyAnswerRequest) (*bundle.CreateQuestionnaireSurveyAnswerResponse, error) { resp := new(bundle.CreateQuestionnaireSurveyAnswerResponse) err := dao.CreateQuestionnaireSurveyAnswer(req) if err != nil { return nil, err } return resp, nil } func GetQuestionnaireSurveyList(req *bundle.GetQuestionnaireSurveyListRequest) (resp *bundle.GetQuestionnaireSurveyListResponse, err error) { resp = &bundle.GetQuestionnaireSurveyListResponse{} data, total, err := dao.GetQuestionnaireSurveyList(req) if err != nil { return nil, err } resp.Total = int32(total) resp.Page = req.Page resp.Size = req.PageSize resp.SurveyList = lo.Map(data, func(m *model.QuestionnaireSurvey, _ int) *bundle.SurveyListInfo { return &bundle.SurveyListInfo{ UserName: m.UserName, UserTel: m.UserTel, UserNum: m.UserNum, SurveyTitle: m.SurveyTitle, SurveyStatus: int32(m.SurveyStatus), SurveyUrl: m.SurveyUrl, } }) return resp, nil }