classify.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package controllers
  2. import (
  3. "eta/eta_mini_api/models"
  4. "eta/eta_mini_api/models/request"
  5. "eta/eta_mini_api/services"
  6. "eta/eta_mini_api/utils"
  7. "fmt"
  8. )
  9. type ClassifyController struct {
  10. BaseAuthController
  11. }
  12. // Tree
  13. // @Title 分类树
  14. // @Description 分类树
  15. // @Param request body request.ClassifyTreeForm true "type json string"
  16. // @Success 200 {object} models.ReportDetailResp
  17. // @router /tree [get]
  18. func (this *ClassifyController) Tree() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. this.Data["json"] = br
  22. this.ServeJSON()
  23. }()
  24. params := new(request.ClassifyTreeForm)
  25. if e := this.ParseForm(params); e != nil {
  26. br.Msg = "参数解析异常"
  27. br.ErrMsg = fmt.Sprintf("参数解析异常, %v", e)
  28. return
  29. }
  30. classifyOb := new(models.MiniClassify)
  31. cond := fmt.Sprintf(` AND %s = 1`, classifyOb.Cols().Enabled)
  32. pars := make([]interface{}, 0)
  33. if params.DiamondDistrict > 0 {
  34. cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().DiamondDistrict)
  35. pars = append(pars, params.DiamondDistrict)
  36. }
  37. if params.Frequency > 0 {
  38. cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().Frequency)
  39. pars = append(pars, params.Frequency)
  40. }
  41. if params.HotComment > 0 {
  42. cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().HotComment)
  43. pars = append(pars, params.HotComment)
  44. }
  45. if params.KeyPoint > 0 {
  46. cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().KeyPoint)
  47. pars = append(pars, params.KeyPoint)
  48. }
  49. list, e := classifyOb.GetItemsByCondition(cond, pars, []string{}, fmt.Sprintf("%s ASC, %s ASC", classifyOb.Cols().Sort, classifyOb.Cols().ParentId))
  50. if e != nil {
  51. br.Msg = "获取失败"
  52. br.ErrMsg = fmt.Sprintf("获取分类失败, %v", e)
  53. return
  54. }
  55. classifies := make([]*models.MiniClassifyItem, 0)
  56. for _, v := range list {
  57. classifies = append(classifies, v.Format2Item())
  58. }
  59. var rootId int
  60. if utils.RunMode == "debug" {
  61. rootId = 659
  62. }
  63. classifies = services.GetClassifyTreeRecursive(classifies, rootId)
  64. br.Data = classifies
  65. br.Ret = 200
  66. br.Msg = "获取成功"
  67. br.Success = true
  68. }