search.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package talent_service
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. "youngmini_server/app/dao"
  6. "youngmini_server/app/model/talent_model"
  7. )
  8. func SearchByTaskName(r *ghttp.Request) *TalentHttpResult {
  9. taskOrBrandName := r.GetRequestString("task_name", "nil")
  10. if taskOrBrandName == "nil" {
  11. return &TalentHttpResult{Code: -1, Msg: "input task_name param"}
  12. }
  13. taskOrBrandName = "%" + taskOrBrandName + "%"
  14. var searchResult talent_model.SearchByNameResult
  15. err := g.DB().Model(dao.TaskBaseInfo.Table).WithAll().
  16. Where(dao.TaskBaseInfo.Columns.TaskStatus, taskStatusInProgress).
  17. Where("(task_name like ? or brand_name like ?)", taskOrBrandName, taskOrBrandName).
  18. Scan(&searchResult.SearchResult)
  19. if err != nil {
  20. return &TalentHttpResult{Code: -2, Msg: "query task info failed"}
  21. }
  22. // 如果搜索结果位空则推荐任务
  23. if len(searchResult.SearchResult) <= 0 {
  24. err = g.DB().Model("task_base_info").WithAll().
  25. Where(dao.TaskBaseInfo.Columns.TaskStatus, taskStatusInProgress).
  26. Order("task_id").Limit(6).Scan(&searchResult.RecommendResult)
  27. if err != nil {
  28. return &TalentHttpResult{Code: -3, Msg: "query commend task info failed"}
  29. }
  30. }
  31. return &TalentHttpResult{Code: 0, Msg: "success", Data: searchResult}
  32. }