123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- package eta_trial
- import (
- "encoding/json"
- "eta/eta_api/models"
- "eta/eta_api/models/eta_trial"
- etaTrialService "eta/eta_api/services/eta_trial"
- "eta/eta_api/utils"
- "time"
- )
- // QuestionnairePopUp
- // @Title 获取问卷调查弹窗信息
- // @Description 获取问卷调查弹窗信息
- // @Success 200 {object} response.TryOutCompanyListResp
- // @router /questionnaire/popup [get]
- func (this *EtaTrialController) QuestionnairePopUp() {
- br := new(models.BaseResponse).Init()
- defer func() {
- if br.ErrMsg == "" {
- br.IsSendEmail = false
- }
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- // 仅试用平台用
- if utils.BusinessCode != utils.BusinessCodeSandbox {
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- return
- }
- var resp eta_trial.QuestionnairePopupResp
- var userReq etaTrialService.GetEtaTrialUserReq
- userReq.Mobile = sysUser.Mobile
- item, e := etaTrialService.GetEtaTrialUser(userReq)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
- return
- }
- if item.EtaTrialId <= 0 {
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- return
- }
- fillItem, e := eta_trial.GetQuestionnaireFillRecordCountByMobile(sysUser.Mobile)
- if e != nil && e.Error() != utils.ErrNoRow() {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败失败,GetQuestionnaireFillRecordCountByMobile Err:" + e.Error()
- return
- }
- if fillItem == nil {
- //没填过
- if item.ModifyTime.AddDate(0, 0, 6).Before(time.Now()) {
- //弹窗
- resp.IsPopup = 1
- }
- } else {
- //填过,判断是否超过了14天
- if fillItem.IsFill == 2 && fillItem.CreateTime.AddDate(0, 0, 13).Before(time.Now()) {
- //弹窗
- resp.IsPopup = 1
- } else if fillItem.IsFill == 1 {
- //显示图标但不弹窗
- resp.IsShow = 1
- }
- }
- questionnaireList, e := etaTrialService.GetEtaTrialQuestionnaireList()
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取问卷调查列表失败, GetEtaTrialQuestionnaireList Err: " + e.Error()
- return
- }
- resp.Question = questionnaireList
- br.Data = resp
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- }
- // QuestionnaireCommit
- // @Title 提交问卷
- // @Description 提交问卷
- // @Success 200 {object} response.TryOutCompanyListResp
- // @router /questionnaire/commit [post]
- func (this *EtaTrialController) QuestionnaireCommit() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req eta_trial.EtaTrialQuestionnaireReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- var userReq etaTrialService.GetEtaTrialUserReq
- userReq.Mobile = sysUser.Mobile
- admin, e := etaTrialService.GetEtaTrialUser(userReq)
- if e != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
- return
- }
- if admin.EtaTrialId <= 0 {
- br.Ret = 200
- br.Success = true
- br.Msg = "操作成功"
- return
- }
- if req.IsFill == 0 {
- // 稍后再填
- fillItem := &eta_trial.QuestionnaireFillRecord{
- Mobile: admin.Mobile,
- IsFill: 1,
- CreateTime: time.Now(),
- ModifyTime: time.Now(),
- }
- err := eta_trial.AddQuestionnaireFillRecord(fillItem)
- if err != nil {
- br.Msg = "新增填写记录失败"
- br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
- return
- }
- } else {
- // 已填写
- list := make([]eta_trial.EtaTrialQuestionnaireRecord, 0)
- for _, q := range req.List {
- v := eta_trial.EtaTrialQuestionnaireRecord{
- UserName: admin.UserName,
- CompanyName: admin.CompanyName,
- Position: admin.Position,
- Options: q.Options,
- Mobile: admin.Mobile,
- Type: q.Type,
- QuestionnaireId: q.QuestionnaireId,
- CreateTime: time.Now(),
- }
- list = append(list, v)
- }
- var commitReq etaTrialService.EtaTrialQuestionnaireCommitReq
- commitReq.List = list
- commitRes, e := etaTrialService.EtaTrialQuestionnaireCommit(commitReq)
- if e != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "新增问卷记录失败, EtaTrialQuestionnaireCommit Err: " + e.Error()
- return
- }
- if !commitRes {
- br.Msg = "操作失败"
- br.ErrMsg = "新增问卷记录失败" + e.Error()
- return
- }
- fillItem := &eta_trial.QuestionnaireFillRecord{
- Mobile: admin.Mobile,
- IsFill: 2,
- CreateTime: time.Now(),
- ModifyTime: time.Now(),
- }
- err := eta_trial.AddQuestionnaireFillRecord(fillItem)
- if err != nil {
- br.Msg = "新增填写记录失败"
- br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
- return
- }
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "提交成功"
- }
|