search.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package controllers
  2. import (
  3. "hongze/hongze_cygx/models"
  4. "hongze/hongze_cygx/services"
  5. "strings"
  6. )
  7. type SearchController struct {
  8. BaseAuthController
  9. }
  10. // @Title 搜索接口
  11. // @Description 搜索接口
  12. // @Param KeyWord query string true "搜索关键词"
  13. // @Success 200 {object} models.SearchItem
  14. // @router /list [get]
  15. func (this *SearchController) SearchList() {
  16. br := new(models.BaseResponse).Init()
  17. defer func() {
  18. this.Data["json"] = br
  19. this.ServeJSON()
  20. }()
  21. keyWord := this.GetString("KeyWord")
  22. if keyWord == "" {
  23. br.Msg = "请输入搜索词"
  24. br.ErrMsg = "请输入搜索词"
  25. return
  26. }
  27. user := this.User
  28. if user == nil {
  29. br.Msg = "请重新登录"
  30. br.Ret = 408
  31. return
  32. }
  33. categoryList, err := models.GetCategoryByCompanyId(user.CompanyId)
  34. if err != nil {
  35. br.Msg = "检索失败!"
  36. br.ErrMsg = "检索分类信息失败,Err:" + err.Error()
  37. return
  38. }
  39. var categoryNameArr []string
  40. for _, v := range categoryList {
  41. categoryNameArr = append(categoryNameArr, v.CategoryName)
  42. }
  43. categoryName := strings.Join(categoryNameArr, ",")
  44. result, err := services.SearchByKeyWord(keyWord, categoryName)
  45. if err != nil {
  46. br.Msg = "检索失败"
  47. br.ErrMsg = "检索失败,Err:" + err.Error()
  48. return
  49. }
  50. if len(result) == 0 {
  51. result = make([]*models.SearchItem, 0)
  52. }
  53. br.Ret = 200
  54. br.Success = true
  55. br.Msg = "获取成功"
  56. br.Data = result
  57. }
  58. //https://blog.csdn.net/my_miuye/article/details/110496025