123 lines
3.8 KiB
Go
123 lines
3.8 KiB
Go
package bundle
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"fonchain-fiee/api/bundle"
|
|
"fonchain-fiee/pkg/service"
|
|
"fonchain-fiee/pkg/service/bundle/model"
|
|
"fonchain-fiee/pkg/service/upload"
|
|
"fonchain-fiee/pkg/utils"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func IsSendSurvey(c *gin.Context) {
|
|
var req bundle.SendQuestionnaireSurveyRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
res, err := service.BundleProvider.SendQuestionnaireSurvey(context.Background(), &req)
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
service.Success(c, res)
|
|
}
|
|
|
|
func QuestionnaireSurveyList(c *gin.Context) {
|
|
var req bundle.GetQuestionnaireSurveyListRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
res, err := service.BundleProvider.GetQuestionnaireSurveyList(context.Background(), &req)
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
service.Success(c, res)
|
|
}
|
|
|
|
func QuestionnaireSurveyBundleInfo(c *gin.Context) {
|
|
var req bundle.GetQuestionnaireSurveyInfoRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
res, err := service.BundleProvider.GetQuestionnaireSurveyInfo(context.Background(), &req)
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
service.Success(c, res)
|
|
}
|
|
|
|
func QuestionnaireSurveyCreate(c *gin.Context) {
|
|
var req bundle.CreateQuestionnaireSurveyAnswerRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
address, err := utils.ReverseGeo(req.Longitude, req.Latitude, "ZhCN")
|
|
if err != nil {
|
|
service.Error(c, errors.New("获取地址失败"))
|
|
return
|
|
}
|
|
surveyInfo, err := service.BundleProvider.GetQuestionnaireSurveyInfo(c, &bundle.GetQuestionnaireSurveyInfoRequest{UserTel: req.UserTel})
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
templateDir := "./data/满意度调成报告模板.pdf"
|
|
outputPath := "./data/" + req.UserTel + time.Now().Format("20060102150405") + ".pdf"
|
|
err = utils.QuestionnaireSurveyPDF(templateDir, outputPath, &model.QuestionnairePDFData{
|
|
//CustomerNum: surveyInfo.BundleInfo.,
|
|
CustomerName: surveyInfo.UserName,
|
|
BundleName: surveyInfo.BundleInfo.BundleName,
|
|
BundleStartDate: surveyInfo.BundleInfo.StartAt,
|
|
BundleEndDate: surveyInfo.BundleInfo.ExpiredAt,
|
|
VideoNum: string(surveyInfo.BundleInfo.BundleVideoNumber),
|
|
AccountNum: string(surveyInfo.BundleInfo.BundleAccountNumber),
|
|
ImagesNum: string(surveyInfo.BundleInfo.BundleImageNumber),
|
|
DataAnalysisNum: string(surveyInfo.BundleInfo.BundleDataNumber),
|
|
CompetitiveNum: string(surveyInfo.BundleInfo.BundleCompetitiveNumber),
|
|
ValueAddVideoNum: string(surveyInfo.BundleInfo.IncreaseVideoNumber),
|
|
Score1: int(req.SurveyAnswer.BundleAccountScore),
|
|
Score2: int(req.SurveyAnswer.BundleAccountScore),
|
|
Score3: int(req.SurveyAnswer.BundleImageScore),
|
|
Score4: int(req.SurveyAnswer.BundleDataScore),
|
|
Score5: int(req.SurveyAnswer.IncreaseVideoScore),
|
|
Score6: int(req.SurveyAnswer.ServiceResponseSpeed),
|
|
Score7: int(req.SurveyAnswer.ServiceStaffProfessionalism),
|
|
Opinion1: req.SurveyFeedback.MeritsReview,
|
|
Opinion2: req.SurveyFeedback.SuggestionsorImprovements,
|
|
Opinion3: req.SurveyFeedback.AdditionalComments,
|
|
Submitter: surveyInfo.UserName,
|
|
SubmissionDate: time.Now().Format(time.DateOnly),
|
|
Address: address,
|
|
})
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
os.Remove(outputPath)
|
|
outputUrl, ossErr := upload.PutBos(outputPath, upload.PdfType, true)
|
|
if ossErr != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
fmt.Println(outputUrl)
|
|
service.Success(c, req)
|
|
res, err := service.BundleProvider.CreateQuestionnaireSurveyAnswer(context.Background(), &req)
|
|
if err != nil {
|
|
service.Error(c, err)
|
|
return
|
|
}
|
|
service.Success(c, res)
|
|
}
|