package partner import ( "app.yhyue.com/moapp/jy_docs/services/model" docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util" "fmt" "log" ) var ( DocClassMap = map[string]string{} ) // 初始化 文档分类关系 func InitDocClass() { var dcs = []*model.DocClass{} err := docRpcUtil.GetJyDocsDB().Table("doc_class").Find(&dcs).Error if err == nil && len(dcs) > 0 { var ( jyMap = map[string]string{} tagMap = map[string]string{} ) for _, dc := range dcs { switch dc.State { case 0: jyMap[dc.Code] = dc.Name default: switch dc.Level { case 1: var ( dcpKey = fmt.Sprintf("p_%s_%d_class", dc.Name, dc.State) //一级class dtpKey = fmt.Sprintf("p_%s_%d_tag", dc.Name, dc.State) //一级tag ) DocClassMap[dcpKey] = dc.Code tagMap[dtpKey] = dc.Code case 2: var ( dcKey = fmt.Sprintf("c_%s_%d_class", dc.Name, dc.State) //二级class dtKey = fmt.Sprintf("c_%s_%d_tag", dc.Name, dc.State) //二级tag ) DocClassMap[dcKey] = dc.Code tagMap[dtKey] = dc.Code } } } if tagMap != nil && len(tagMap) > 0 { for k, v := range tagMap { if jyMap[v] != "" { DocClassMap[k] = jyMap[v] } } } } } // 先查内存 再查表数据 func SwitchDocClass(pName, name string, state int) (docTag []string, docClass string) { var ( dcpKey = fmt.Sprintf("p_%s_%d_class", pName, state) //一级class dtpKey = fmt.Sprintf("p_%s_%d_tag", pName, state) //一级tag dcKey = fmt.Sprintf("c_%s_%d_class", name, state) //二级class dtKey = fmt.Sprintf("c_%s_%d_tag", name, state) //二级tag ) if DocClassMap[dcpKey] != "" && DocClassMap[dtpKey] != "" { docClass = DocClassMap[dcpKey] if DocClassMap[dcKey] != "" { docClass = DocClassMap[dcKey] } docTag = append(docTag, DocClassMap[dtpKey]) if DocClassMap[dtKey] != "" { docTag = append(docTag, DocClassMap[dtKey]) } return } orm := docRpcUtil.GetJyDocsDB() mdc := model.DocClass{} //合作商文库一级分类 err := orm.Where("`name`= ? AND `level` = 1 AND state = ?", pName, state).First(&mdc).Error if err != nil { log.Println("一级分类转换失败:", err.Error()) return } //剑鱼文库一级分类 err = orm.Where("`code`= ? AND `level` = 1 AND state = 0", mdc.Code).First(&mdc).Error if err != nil { log.Println("一级分类转换失败:", err.Error()) return } DocClassMap[dcpKey] = mdc.Code DocClassMap[dtpKey] = mdc.Name docTag = append(docTag, mdc.Name) //二级分类 if name != "" { //合作商文库二级分类 err = orm.Where("`name`= ? AND `level` = 2 AND state = ?", name, state).First(&mdc).Error if err != nil { log.Println("二级分类转换失败:", err.Error()) return } //剑鱼文库二级分类 err = orm.Where("`code`= ? AND `level` = 2 AND state = 0", mdc.Code).First(&mdc).Error if err != nil { log.Println("二级分类转换失败:", err.Error()) return } DocClassMap[dcKey] = mdc.Code DocClassMap[dtKey] = mdc.Name docTag = append(docTag, mdc.Name) } docClass = mdc.Code return }