package controllers import ( "encoding/json" "hongze/hongze_cygx/models" "hongze/hongze_cygx/utils" "time" ) // 问卷调查 type QuestionnaireController struct { BaseAuthController } // @Title 详情 // @Description 详情接口 // @Param QuestionnaireId query int true "问卷ID" // @Success Ret=200 {object} cygx.GetCygxTacticsTimeLineResp // @router /detail [get] func (this *QuestionnaireController) Detail() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() user := this.User if user == nil { br.Msg = "请登录" br.ErrMsg = "请登录,用户信息为空" br.Ret = 408 return } resp := new(models.GetCygxQuestionnaireDetailResp) questionnaireId, _ := this.GetInt("QuestionnaireId") detail, err := models.GetCygxQuestionnaireDetail(questionnaireId) if err != nil { br.Msg = "详情不存在" br.ErrMsg = "获取失败,GetCygxQuestionnaireDetail Err:" + err.Error() return } ListTheme, err := models.GetCygxQuestionnaireThemeListByQuestionnaireId(questionnaireId) if err != nil { br.Msg = "详情不存在" br.ErrMsg = "获取失败,GetCygxQuestionnaireThemeListByQuestionnaireId Err:" + err.Error() return } detail.ListTheme = ListTheme resp.Detail = detail br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 问卷投票 // @Description 问卷投票接口 // @Param QuestionnaireId query int true "问卷ID" // @Success Ret=200 {object} cygx.GetCygxTacticsTimeLineResp // @router /vote_add [post] func (this *QuestionnaireController) VoteAdd() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() user := this.User if user == nil { br.Msg = "请登录" br.ErrMsg = "请登录,用户信息为空" br.Ret = 408 return } uid := user.UserId var req models.CygxQuestionnaireVoteReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if uid == 0 { br.Msg = "请登录" br.ErrMsg = "请登录,用户信息为空" br.Ret = 408 } questionnaireId := req.QuestionnaireId questionnaireThemeIds := req.QuestionnaireThemeIds content := req.Content if len(questionnaireThemeIds) == 0 && content == "" { br.Msg = "提交信息不能为空" return } sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2) if err != nil && err.Error() != utils.ErrNoRow() { return } var voteItems []*models.CygxQuestionnaireVote //主题ID提交问卷需要写入的信息 if len(questionnaireThemeIds) > 0 { for _, v := range questionnaireThemeIds { item := new(models.CygxQuestionnaireVote) item.QuestionnaireId = questionnaireId item.QuestionnaireThemeId = v item.UserId = user.UserId item.CreateTime = time.Now() item.ModifyTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName if sellerItem != nil { item.SellerName = sellerItem.RealName } item.RegisterPlatform = utils.REGISTER_PLATFORM voteItems = append(voteItems, item) } } //其它主题类型提交需要写入的信息 itemOther := new(models.CygxQuestionnaireVoteOtherTheme) if content != "" { itemOther.QuestionnaireId = questionnaireId itemOther.UserId = user.UserId itemOther.CreateTime = time.Now() itemOther.ModifyTime = time.Now() itemOther.Mobile = user.Mobile itemOther.Email = user.Email itemOther.CompanyId = user.CompanyId itemOther.CompanyName = user.CompanyName itemOther.RealName = user.RealName itemOther.Content = content if sellerItem != nil { itemOther.SellerName = sellerItem.RealName } itemOther.RegisterPlatform = utils.REGISTER_PLATFORM } err = models.AddCygxQuestionnaireVote(voteItems, itemOther) if err != nil { br.Msg = "提交失败" br.ErrMsg = "获取失败,AddCygxQuestionnaireVote Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "提交成功" }