text.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package controllers
  2. import (
  3. "errors"
  4. "github.com/gin-gonic/gin"
  5. "gorm.io/gorm"
  6. "speechAnalysis/extend/code"
  7. "speechAnalysis/extend/util"
  8. "speechAnalysis/models"
  9. "speechAnalysis/pkg/logx"
  10. "speechAnalysis/request"
  11. )
  12. type TextCtl struct{}
  13. // AddText
  14. // @Tags 文字库
  15. // @Summary 新增文字
  16. // @Produce application/json
  17. // @Param object body request.AddTextReq true "参数"
  18. // @Success 200 {object} util.Response "成功"
  19. // @Router /api-sa/v1/text/add [post]
  20. func (slf TextCtl) AddText(c *gin.Context) {
  21. var req request.AddTextReq
  22. if err := c.BindJSON(&req); err != nil {
  23. logx.Errorf("add text params err:%v", err)
  24. util.ResponseFormat(c, code.RequestParamError, err.Error())
  25. return
  26. }
  27. text := models.Word{
  28. Content: req.Content,
  29. LocomotiveNumber: req.LocomotiveNumber,
  30. }
  31. if err := slf.paramsCheck(text); err != nil {
  32. util.ResponseFormat(c, code.RequestParamError, err.Error())
  33. return
  34. }
  35. if err := models.NewWordSearch().Create(&text); err != nil {
  36. util.ResponseFormat(c, code.SaveFail, "添加失败,请检查是否重复")
  37. return
  38. }
  39. util.ResponseFormat(c, code.Success, "添加成功")
  40. }
  41. // UpdateText
  42. // @Tags 文字库
  43. // @Summary 修改文字
  44. // @Produce application/json
  45. // @Param object body request.AddTextReq true "参数"
  46. // @Success 200 {object} util.Response "成功"
  47. // @Router /api-sa/v1/text/update [post]
  48. func (slf TextCtl) UpdateText(c *gin.Context) {
  49. var req request.AddTextReq
  50. if err := c.BindJSON(&req); err != nil {
  51. logx.Errorf("add text params err:%v", err)
  52. util.ResponseFormat(c, code.RequestParamError, err.Error())
  53. return
  54. }
  55. text := models.Word{
  56. Model: gorm.Model{
  57. ID: req.Id,
  58. },
  59. Content: req.Content,
  60. LocomotiveNumber: req.LocomotiveNumber,
  61. }
  62. if err := slf.paramsCheck(text); err != nil {
  63. util.ResponseFormat(c, code.RequestParamError, err.Error())
  64. return
  65. }
  66. if req.Id == 0 {
  67. util.ResponseFormat(c, code.RequestParamError, errors.New("ID不能为空"))
  68. return
  69. }
  70. if err := models.NewWordSearch().Save(&text); err != nil {
  71. util.ResponseFormat(c, code.SaveFail, "修改失败,请检查是否重复")
  72. return
  73. }
  74. util.ResponseFormat(c, code.Success, "修改成功")
  75. }
  76. // DeleteText
  77. // @Tags 文字库
  78. // @Summary 修改文字
  79. // @Produce application/json
  80. // @Param object body request.AddTextReq true "参数"
  81. // @Success 200 {object} util.Response "成功"
  82. // @Router /api-sa/v1/text/delete [delete]
  83. func (slf TextCtl) DeleteText(c *gin.Context) {
  84. var req request.AddTextReq
  85. if err := c.BindJSON(&req); err != nil {
  86. logx.Errorf("add text params err:%v", err)
  87. util.ResponseFormat(c, code.RequestParamError, err.Error())
  88. return
  89. }
  90. if err := models.NewWordSearch().SetID(req.Id).Delete(); err != nil {
  91. util.ResponseFormat(c, code.SaveFail, "删除失败,请检查是否重复")
  92. return
  93. }
  94. util.ResponseFormat(c, code.Success, "删除成功")
  95. }
  96. func (slf TextCtl) paramsCheck(text models.Word) (err error) {
  97. if text.Content == "" || text.LocomotiveNumber == "" {
  98. return errors.New("参数缺失")
  99. }
  100. _, err = models.NewWordSearch().SetLocomotiveNumber(text.LocomotiveNumber).SetContent(text.Content).First()
  101. if err == nil {
  102. return errors.New("文字重复")
  103. }
  104. return nil
  105. }
  106. // List
  107. // @Tags 文字库
  108. // @Summary 文字库列表
  109. // @Produce application/json
  110. // @Param object query request.GetTextList true "参数"
  111. // @Success 200 {object} util.ResponseList{data=[]models.Word} "成功"
  112. // @Router /api-sa/v1/text/list [get]
  113. func (slf TextCtl) List(c *gin.Context) {
  114. var params request.GetTextList
  115. if err := c.ShouldBindQuery(&params); err != nil {
  116. util.ResponseFormat(c, code.RequestParamError, err.Error())
  117. return
  118. }
  119. if !params.PageInfo.Check() {
  120. util.ResponseFormat(c, code.RequestParamError, "分页参数错误")
  121. return
  122. }
  123. list, total, err := models.NewWordSearch().
  124. SetPage(params.Page, params.PageSize).
  125. SetKeyword(params.Keyword).
  126. Find()
  127. if err != nil {
  128. util.ResponseFormat(c, code.RequestParamError, "查找失败")
  129. return
  130. }
  131. util.ResponseFormatList(c, code.Success, list, total)
  132. }