package controllers import ( "eta/eta_mini_api/models" "eta/eta_mini_api/models/request" "eta/eta_mini_api/services" "eta/eta_mini_api/utils" "fmt" ) type ClassifyController struct { BaseAuthController } // Tree // @Title 分类树 // @Description 分类树 // @Param request body request.ClassifyTreeForm true "type json string" // @Success 200 {object} models.ReportDetailResp // @router /tree [get] func (this *ClassifyController) Tree() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() params := new(request.ClassifyTreeForm) if e := this.ParseForm(params); e != nil { br.Msg = "参数解析异常" br.ErrMsg = fmt.Sprintf("参数解析异常, %v", e) return } classifyOb := new(models.MiniClassify) cond := fmt.Sprintf(` AND %s = 1`, classifyOb.Cols().Enabled) pars := make([]interface{}, 0) if params.DiamondDistrict > 0 { cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().DiamondDistrict) pars = append(pars, params.DiamondDistrict) } if params.Frequency > 0 { cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().Frequency) pars = append(pars, params.Frequency) } if params.HotComment > 0 { cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().HotComment) pars = append(pars, params.HotComment) } if params.KeyPoint > 0 { cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().KeyPoint) pars = append(pars, params.KeyPoint) } list, e := classifyOb.GetItemsByCondition(cond, pars, []string{}, fmt.Sprintf("%s ASC, %s ASC", classifyOb.Cols().Sort, classifyOb.Cols().ParentId)) if e != nil { br.Msg = "获取失败" br.ErrMsg = fmt.Sprintf("获取分类失败, %v", e) return } classifies := make([]*models.MiniClassifyItem, 0) for _, v := range list { classifies = append(classifies, v.Format2Item()) } var rootId int if utils.RunMode == "debug" { rootId = 659 } classifies = services.GetClassifyTreeRecursive(classifies, rootId) br.Data = classifies br.Ret = 200 br.Msg = "获取成功" br.Success = true }