123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- 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
- }
|