questionnaire.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hongze_cygx/models"
  5. "hongze/hongze_cygx/utils"
  6. "time"
  7. )
  8. // 问卷调查
  9. type QuestionnaireController struct {
  10. BaseAuthController
  11. }
  12. // @Title 详情
  13. // @Description 详情接口
  14. // @Param QuestionnaireId query int true "问卷ID"
  15. // @Success Ret=200 {object} cygx.GetCygxTacticsTimeLineResp
  16. // @router /detail [get]
  17. func (this *QuestionnaireController) Detail() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. this.Data["json"] = br
  21. this.ServeJSON()
  22. }()
  23. user := this.User
  24. if user == nil {
  25. br.Msg = "请登录"
  26. br.ErrMsg = "请登录,用户信息为空"
  27. br.Ret = 408
  28. return
  29. }
  30. resp := new(models.GetCygxQuestionnaireDetailResp)
  31. questionnaireId, _ := this.GetInt("QuestionnaireId")
  32. detail, err := models.GetCygxQuestionnaireDetail(questionnaireId)
  33. if err != nil {
  34. br.Msg = "详情不存在"
  35. br.ErrMsg = "获取失败,GetCygxQuestionnaireDetail Err:" + err.Error()
  36. return
  37. }
  38. ListTheme, err := models.GetCygxQuestionnaireThemeListByQuestionnaireId(questionnaireId)
  39. if err != nil {
  40. br.Msg = "详情不存在"
  41. br.ErrMsg = "获取失败,GetCygxQuestionnaireThemeListByQuestionnaireId Err:" + err.Error()
  42. return
  43. }
  44. detail.ListTheme = ListTheme
  45. resp.Detail = detail
  46. br.Ret = 200
  47. br.Success = true
  48. br.Msg = "获取成功"
  49. br.Data = resp
  50. }
  51. // @Title 问卷投票
  52. // @Description 问卷投票接口
  53. // @Param QuestionnaireId query int true "问卷ID"
  54. // @Success Ret=200 {object} cygx.GetCygxTacticsTimeLineResp
  55. // @router /vote_add [post]
  56. func (this *QuestionnaireController) VoteAdd() {
  57. br := new(models.BaseResponse).Init()
  58. defer func() {
  59. this.Data["json"] = br
  60. this.ServeJSON()
  61. }()
  62. user := this.User
  63. if user == nil {
  64. br.Msg = "请登录"
  65. br.ErrMsg = "请登录,用户信息为空"
  66. br.Ret = 408
  67. return
  68. }
  69. uid := user.UserId
  70. var req models.CygxQuestionnaireVoteReq
  71. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  72. if err != nil {
  73. br.Msg = "参数解析异常!"
  74. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  75. return
  76. }
  77. if uid == 0 {
  78. br.Msg = "请登录"
  79. br.ErrMsg = "请登录,用户信息为空"
  80. br.Ret = 408
  81. }
  82. questionnaireId := req.QuestionnaireId
  83. questionnaireThemeIds := req.QuestionnaireThemeIds
  84. content := req.Content
  85. if len(questionnaireThemeIds) == 0 && content == "" {
  86. br.Msg = "提交信息不能为空"
  87. return
  88. }
  89. sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
  90. if err != nil && err.Error() != utils.ErrNoRow() {
  91. return
  92. }
  93. var voteItems []*models.CygxQuestionnaireVote
  94. //主题ID提交问卷需要写入的信息
  95. if len(questionnaireThemeIds) > 0 {
  96. for _, v := range questionnaireThemeIds {
  97. item := new(models.CygxQuestionnaireVote)
  98. item.QuestionnaireId = questionnaireId
  99. item.QuestionnaireThemeId = v
  100. item.UserId = user.UserId
  101. item.CreateTime = time.Now()
  102. item.ModifyTime = time.Now()
  103. item.Mobile = user.Mobile
  104. item.Email = user.Email
  105. item.CompanyId = user.CompanyId
  106. item.CompanyName = user.CompanyName
  107. item.RealName = user.RealName
  108. if sellerItem != nil {
  109. item.SellerName = sellerItem.RealName
  110. }
  111. item.RegisterPlatform = utils.REGISTER_PLATFORM
  112. voteItems = append(voteItems, item)
  113. }
  114. }
  115. //其它主题类型提交需要写入的信息
  116. itemOther := new(models.CygxQuestionnaireVoteOtherTheme)
  117. if content != "" {
  118. itemOther.QuestionnaireId = questionnaireId
  119. itemOther.UserId = user.UserId
  120. itemOther.CreateTime = time.Now()
  121. itemOther.ModifyTime = time.Now()
  122. itemOther.Mobile = user.Mobile
  123. itemOther.Email = user.Email
  124. itemOther.CompanyId = user.CompanyId
  125. itemOther.CompanyName = user.CompanyName
  126. itemOther.RealName = user.RealName
  127. itemOther.Content = content
  128. if sellerItem != nil {
  129. itemOther.SellerName = sellerItem.RealName
  130. }
  131. itemOther.RegisterPlatform = utils.REGISTER_PLATFORM
  132. }
  133. err = models.AddCygxQuestionnaireVote(voteItems, itemOther)
  134. if err != nil {
  135. br.Msg = "提交失败"
  136. br.ErrMsg = "获取失败,AddCygxQuestionnaireVote Err:" + err.Error()
  137. return
  138. }
  139. br.Ret = 200
  140. br.Success = true
  141. br.Msg = "提交成功"
  142. }