questionnaire.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package eta_trial
  2. import (
  3. "eta_gn/eta_bridge/controller/resp"
  4. "eta_gn/eta_bridge/global"
  5. "eta_gn/eta_bridge/models/crm"
  6. etaTrialReq "eta_gn/eta_bridge/models/request/eta_trial"
  7. "eta_gn/eta_bridge/utils"
  8. "github.com/gin-gonic/gin"
  9. "github.com/go-playground/validator/v10"
  10. "sort"
  11. "strings"
  12. )
  13. // GetQuestionnaireList
  14. // @Description 获取问卷列表
  15. // @Success 200 {string} string "操作成功"
  16. // @Router /eta_trial/questionnaire/list [post]
  17. func (a *EtaTrialController) GetQuestionnaireList(c *gin.Context) {
  18. ob := new(crm.EtaTrialQuestionnaire)
  19. list, e := ob.List(``, make([]interface{}, 0))
  20. if e != nil {
  21. resp.FailData("获取失败", "获取问卷列表失败, Err: "+e.Error(), c)
  22. return
  23. }
  24. var result crm.EtaTrialQuestionnaireResp
  25. for _, v := range list {
  26. item := crm.EtaTrialQuestionnaireRespItem{
  27. QuestionnaireId: v.QuestionnaireId,
  28. Question: v.Question,
  29. Type: v.Type,
  30. Sort: v.Sort,
  31. Option: strings.Split(v.Options, "~#"),
  32. IsMust: v.IsMust,
  33. CreateTime: v.CreateTime.Format(utils.FormatDateTime),
  34. }
  35. result.List = append(result.List, item)
  36. }
  37. sort.Sort(result)
  38. resp.OkData("操作成功", result, c)
  39. }
  40. // QuestionnaireCommit
  41. // @Description 提交问卷
  42. // @Success 200 {string} string "操作成功"
  43. // @Router /eta_trial/questionnaire/commit [post]
  44. func (a *EtaTrialController) QuestionnaireCommit(c *gin.Context) {
  45. var req etaTrialReq.QuestionnaireCommitReq
  46. err := c.Bind(&req)
  47. if err != nil {
  48. errs, ok := err.(validator.ValidationErrors)
  49. if !ok {
  50. resp.FailData("参数解析失败", "Err:"+err.Error(), c)
  51. return
  52. }
  53. resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
  54. return
  55. }
  56. if len(req.List) == 0 {
  57. return
  58. }
  59. ob := new(crm.EtaTrialQuestionnaireRecord)
  60. if e := ob.CreateMulti(req.List); e != nil {
  61. resp.FailData("操作失败", "新增试用客户问卷记录失败, Err:"+e.Error(), c)
  62. return
  63. }
  64. resp.OkData("操作成功", true, c)
  65. }