package helpCenter import ( util "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/encrypt" "app.yhyue.com/moapp/jypkg/public" "fmt" "jy/src/jfw/config" "jy/src/jfw/jyutil" "log" "time" ) var ( mongodb = public.MQFW se = &encrypt.SimpleEncrypt{Key: "topnet2015topnet2015"} ) // HelpHome 帮助中心 栏目 // helpId栏目id isHome 是否帮助中心首页请求 num 获取数量 func HelpHome(helpCode string, isHome bool, num int) []jyutil.HelpColumn { log.Printf("帮助中心参数helpCode:%s,isHome:%v,num:%d", helpCode, isHome, num) //获取帮助中心所有栏目 if helpCode == "" { //获取帮助中心栏目id columnCode, _ := config.Sysconfig["columnCode"].(map[string]interface{}) helpCode = util.InterfaceToStr(columnCode["帮助中心"]) } else { var ss jyutil.HelpColumn data, ok := mongodb.FindOne("column", map[string]interface{}{ "s_columncode": helpCode, }) if ok && data != nil && len(*data) > 0 { //栏目页 获取下一级所有栏目 ss.Name = util.InterfaceToStr((*data)["s_columnname"]) ss.Code = util.InterfaceToStr((*data)["s_columncode"]) ss.Href = fmt.Sprintf("/helpCenter/catalog/%s", ss.Code) if dataSeed := RecursiveQuery(ss.Code, true, num); dataSeed != nil && len(dataSeed) > 0 { ss.SeedData = dataSeed } } return []jyutil.HelpColumn{ss} } if isHome { //首页 最多获取两级目录 data, ok := mongodb.Find("column", map[string]interface{}{ "pid": helpCode, }, `{"i_order":1}`, nil, false, -1, -1) if ok && data != nil && len(*data) > 0 { var allColumn []jyutil.HelpColumn for _, v := range *data { var ss jyutil.HelpColumn ss.Name = util.InterfaceToStr(v["s_columnname"]) ss.Code = util.InterfaceToStr(v["s_columncode"]) ss.Href = fmt.Sprintf("/helpCenter/catalog/%s", ss.Code) if dataSeed := RecursiveQuery(ss.Code, true, num); dataSeed != nil && len(dataSeed) > 0 { ss.SeedData = dataSeed } allColumn = append(allColumn, ss) } return allColumn } } return RecursiveQuery(helpCode, isHome, num) } // RecursiveQuery pid:父级id isHome 是否首页展示(首页展示只获取一层子集) num 栏目&文章获取数量限制 func RecursiveQuery(pid string, isHome bool, num int) []jyutil.HelpColumn { if pid == "" { return nil } start, end := -1, -1 if num != 0 { start, end = 0, num } var allColumn []jyutil.HelpColumn data, ok := mongodb.Find("column", map[string]interface{}{ "pid": pid, }, `{"i_order":1}`, nil, false, start, end) if ok && data != nil && len(*data) > 0 { //存在子栏目 for _, v := range *data { var ss jyutil.HelpColumn ss.Code = util.InterfaceToStr(v["s_columncode"]) //栏目情况下不需要id 只需要code ss.Name = util.InterfaceToStr(v["s_columnname"]) ss.Href = fmt.Sprintf("/helpCenter/catalog/%s", ss.Code) if !isHome { //子栏目信息 ss.SeedData = RecursiveQuery(ss.Code, isHome, num) } //栏目信息 allColumn = append(allColumn, ss) } return allColumn } //无子栏目信息 获取文章信息 dataArticle, ok := mongodb.FindOne("column", map[string]interface{}{ "s_columncode": pid, }) if ok && dataArticle != nil && len(*dataArticle) > 0 { columnCode := util.InterfaceToStr((*dataArticle)["s_columncode"]) typeName := util.InterfaceToStr((*dataArticle)["s_columnlevel"]) dataAll, ok1 := mongodb.Find("content", map[string]interface{}{ typeName: columnCode, "i_status": 1, "releasetime": map[string]interface{}{"$lt": time.Now().Unix()}, }, `{"releasetime":-1,"l_createdate":-1}`, nil, false, start, num) if ok1 && dataAll != nil && len(*dataAll) > 0 { for _, v := range *dataAll { var ss jyutil.HelpColumn //文章信息 ss.IsColumn = 1 ss.Id = se.EncodeString(util.InterfaceToStr(v["_id"])) ss.Name = util.InterfaceToStr(v["s_title"]) ss.Href = fmt.Sprintf("/helpCenter/detail/%s.html", ss.Id) ss.Code = columnCode allColumn = append(allColumn, ss) } } } return allColumn }