package DictDao import ( "dsBigData/Business/Dict/DictModel" "dsBigData/Utils/CommonUtil" "dsBigData/Utils/EsUtil" "encoding/json" "github.com/olivere/elastic/v7" "github.com/tidwall/gjson" ) var esClient = EsUtil.EsClient var CTX = EsUtil.CTX /** 功能:获取办学类型 作者:吴缤 日期:2020-07-01 */ func GetDictInfo(dictKind string) ([]DictModel.Dict, error) { enableFlagTerm := elastic.NewTermQuery("enable_flag", 1) delFlagTerm := elastic.NewTermQuery("del_flag", 0) dictKindTerm := elastic.NewTermQuery("data_content.dict_kind", dictKind) bUseTerm := elastic.NewTermQuery("data_content.b_use", "1") boolQuery := elastic.NewBoolQuery().Must(enableFlagTerm, delFlagTerm, dictKindTerm, bUseTerm) result, err := esClient.Search(). Index("sys_dic"). Query(boolQuery). Size(100). Sort("data_content.sort_id", true). Do(CTX) if err != nil { return nil, err } resByte, err := json.Marshal(result.Hits) if err != nil { return nil, err } var dictArr []DictModel.Dict resStr := string(resByte) resCount := gjson.Get(resStr, "total.value") for i := 0; i < int(resCount.Num); i++ { var dict DictModel.Dict dict.DictCode = gjson.Get(resStr, "hits."+CommonUtil.ConvertIntToString(i)+"._source.data_content.dict_code").Str dict.DictValue = gjson.Get(resStr, "hits."+CommonUtil.ConvertIntToString(i)+"._source.data_content.dict_value").Str dictArr = append(dictArr, dict) } return dictArr, nil }