survey.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. package questionnaire_survey
  2. import (
  3. "surveyService/response"
  4. "surveyService/service/questionnaire_survey"
  5. "surveyService/service/survey_import"
  6. "surveyService/validators"
  7. "github.com/gin-gonic/gin"
  8. )
  9. // 修改或创建
  10. func UpdateOrCreate(c *gin.Context) {
  11. var validator validators.QuestionnaireSurvey
  12. err := c.ShouldBind(&validator)
  13. if err != nil {
  14. response.FailValidator(c, err)
  15. return
  16. }
  17. var updateErr *response.ErrCode
  18. if validator.ID > 0 {
  19. updateErr = questionnaire_survey.Update(&validator)
  20. } else {
  21. updateErr = questionnaire_survey.Create(&validator)
  22. }
  23. if updateErr != nil {
  24. response.Fail(c, updateErr)
  25. return
  26. }
  27. response.Success(c, map[string]any{})
  28. }
  29. // 分页获取列表
  30. func Paginate(c *gin.Context) {
  31. type Validator struct {
  32. Page int `json:"page" form:"page" binding:"omitempty,min=1"`
  33. PageSize int `json:"pageSize" form:"pageSize" binding:"omitempty,min=1,max=100"`
  34. Key string `json:"key" form:"key" binding:"omitempty"`
  35. }
  36. var validator Validator
  37. err := c.ShouldBindQuery(&validator)
  38. if err != nil {
  39. response.FailValidator(c, err)
  40. return
  41. }
  42. surveys, total := questionnaire_survey.Paginate(validator.Page, validator.PageSize, validator.Key)
  43. var list []*validators.QuestionnaireSurvey = make([]*validators.QuestionnaireSurvey, 0)
  44. for _, item := range surveys {
  45. list = append(list, questionnaire_survey.Format(item))
  46. }
  47. response.Success(c, map[string]any{
  48. "list": list,
  49. "total": total,
  50. })
  51. }
  52. // 获取单个
  53. func Detail(c *gin.Context) {
  54. type Validator struct {
  55. ID int64 `json:"id" form:"id" binding:"required,min=1"`
  56. }
  57. var validator Validator
  58. err := c.ShouldBindQuery(&validator)
  59. if err != nil {
  60. response.FailValidator(c, err)
  61. return
  62. }
  63. surveyDetail, findErr := questionnaire_survey.Find(validator.ID)
  64. if findErr != nil {
  65. response.Fail(c, findErr)
  66. return
  67. }
  68. response.Success(c, map[string]any{
  69. "detail": questionnaire_survey.Format(surveyDetail),
  70. })
  71. }
  72. // 获取全部列表
  73. func List(c *gin.Context) {
  74. type Validator struct {
  75. Key string `json:"key" form:"key" binding:"omitempty"`
  76. }
  77. var validator Validator
  78. err := c.ShouldBindQuery(&validator)
  79. if err != nil {
  80. response.FailValidator(c, err)
  81. return
  82. }
  83. surveys := questionnaire_survey.List(validator.Key)
  84. var list []*validators.QuestionnaireSurvey = make([]*validators.QuestionnaireSurvey, 0)
  85. for _, item := range surveys {
  86. list = append(list, questionnaire_survey.Format(item))
  87. }
  88. response.Success(c, map[string]any{
  89. "list": list,
  90. })
  91. }
  92. // 删除
  93. func Delete(c *gin.Context) {
  94. type Validator struct {
  95. ID int64 `json:"id" form:"id" binding:"required"`
  96. }
  97. var validator Validator
  98. err := c.ShouldBind(&validator)
  99. if err != nil {
  100. response.FailValidator(c, err)
  101. return
  102. }
  103. deleteErr := questionnaire_survey.Delete(validator.ID)
  104. if deleteErr != nil {
  105. response.Fail(c, deleteErr)
  106. return
  107. }
  108. response.Success(c, map[string]any{})
  109. }
  110. // 修改PEG.js
  111. func UpdatePeg(c *gin.Context) {
  112. type Validator struct {
  113. ID int64 `json:"id" form:"id" binding:"required"`
  114. Peg string `json:"peg" form:"peg" binding:"required"`
  115. }
  116. var validator Validator
  117. err := c.ShouldBind(&validator)
  118. if err != nil {
  119. response.FailValidator(c, err)
  120. return
  121. }
  122. updateErr := questionnaire_survey.UpdatePeg(validator.ID, validator.Peg)
  123. if updateErr != nil {
  124. response.Fail(c, updateErr)
  125. return
  126. }
  127. response.Success(c, map[string]any{})
  128. }
  129. // 修改备注
  130. func UpdateRemark(c *gin.Context) {
  131. type Validator struct {
  132. ID int64 `json:"id" form:"id" binding:"required"`
  133. Remark string `json:"remark" form:"remark" binding:"required"`
  134. }
  135. var validator Validator
  136. err := c.ShouldBind(&validator)
  137. if err != nil {
  138. response.FailValidator(c, err)
  139. return
  140. }
  141. updateErr := questionnaire_survey.UpdateRemark(validator.ID, validator.Remark)
  142. if updateErr != nil {
  143. response.Fail(c, updateErr)
  144. return
  145. }
  146. response.Success(c, map[string]any{})
  147. }
  148. // 修改状态
  149. func UpdateStatus(c *gin.Context) {
  150. type Validator struct {
  151. ID int64 `json:"id" form:"id" binding:"required"`
  152. Status int `json:"status" form:"status" binding:"required"`
  153. }
  154. var validator Validator
  155. err := c.ShouldBind(&validator)
  156. if err != nil {
  157. response.FailValidator(c, err)
  158. return
  159. }
  160. updateErr := questionnaire_survey.UpdateStatus(validator.ID, validator.Status)
  161. if updateErr != nil {
  162. response.Fail(c, updateErr)
  163. return
  164. }
  165. response.Success(c, map[string]any{})
  166. }
  167. // 获取关联的问题库列表
  168. func ListQuestionnaireSubject(c *gin.Context) {
  169. type Validator struct {
  170. ID int64 `json:"id" form:"id" binding:"required"`
  171. }
  172. var validator Validator
  173. err := c.ShouldBind(&validator)
  174. if err != nil {
  175. response.FailValidator(c, err)
  176. return
  177. }
  178. subjects := questionnaire_survey.ListSubjects(validator.ID)
  179. var list []*validators.SurveyQuestionnaireSubject
  180. for _, subject := range subjects {
  181. list = append(list, questionnaire_survey.FormatSurveySubject(subject))
  182. }
  183. response.Success(c, map[string]any{
  184. "list": list,
  185. })
  186. }
  187. // 批量添加关联的问题库
  188. func AddQuestionnaireSubject(c *gin.Context) {
  189. type Validator struct {
  190. ID int64 `json:"id" form:"id" binding:"required"`
  191. SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"`
  192. }
  193. var validator Validator
  194. err := c.ShouldBind(&validator)
  195. if err != nil {
  196. response.FailValidator(c, err)
  197. return
  198. }
  199. addErr := questionnaire_survey.AddSubject(validator.ID, validator.SubjectIds)
  200. if addErr != nil {
  201. response.Fail(c, addErr)
  202. return
  203. }
  204. response.Success(c, map[string]any{})
  205. }
  206. // 移除关联的问题库
  207. func DeleteQuestionnaireSubject(c *gin.Context) {
  208. type Validator struct {
  209. ID int64 `json:"id" form:"id" binding:"required"`
  210. SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"`
  211. }
  212. var validator Validator
  213. err := c.ShouldBind(&validator)
  214. if err != nil {
  215. response.FailValidator(c, err)
  216. return
  217. }
  218. removeErr := questionnaire_survey.DeleteSubject(validator.ID, validator.SubjectIds)
  219. if removeErr != nil {
  220. response.Fail(c, removeErr)
  221. return
  222. }
  223. response.Success(c, map[string]any{})
  224. }
  225. // 批量修改关联问题库的排序
  226. func UpdateQuestionnaireSubjectSort(c *gin.Context) {
  227. type Validator struct {
  228. ID int64 `json:"id" form:"id" binding:"required"`
  229. SubjectIds []int64 `json:"subjectIds" form:"subjectIds" binding:"required"`
  230. }
  231. var validator Validator
  232. err := c.ShouldBind(&validator)
  233. if err != nil {
  234. response.FailValidator(c, err)
  235. return
  236. }
  237. updateErr := questionnaire_survey.UpdateSort(validator.ID, validator.SubjectIds)
  238. if updateErr != nil {
  239. response.Fail(c, updateErr)
  240. return
  241. }
  242. response.Success(c, map[string]any{})
  243. }
  244. // 修改关联问题库的是否必填
  245. func UpdateQuestionnaireSubjectIsRequired(c *gin.Context) {
  246. type Validator struct {
  247. ID int64 `json:"id" form:"id" binding:"required"`
  248. IsRequired int `json:"isRequired" form:"isRequired" binding:"required"`
  249. }
  250. var validator Validator
  251. err := c.ShouldBind(&validator)
  252. if err != nil {
  253. response.FailValidator(c, err)
  254. return
  255. }
  256. updateErr := questionnaire_survey.UpdateIsRequired(validator.ID, validator.IsRequired == 1)
  257. if updateErr != nil {
  258. response.Fail(c, updateErr)
  259. return
  260. }
  261. response.Success(c, map[string]any{})
  262. }
  263. func CacheList(c *gin.Context) {
  264. survey_import.CacheList()
  265. response.Success(c, map[string]any{})
  266. }