|
@@ -13,20 +13,6 @@ import (
|
|
|
"unicode"
|
|
|
)
|
|
|
|
|
|
-var classifyMap = map[string]string{
|
|
|
- "Road Index": "analytics library",
|
|
|
- "Road Active Fleet": "analytics library",
|
|
|
- "Aviation Index": "analytics library",
|
|
|
- "Aviation Active Fleet": "analytics library",
|
|
|
- "Demand-Gasoline": "analytics library",
|
|
|
- "Demand - Diesel": "analytics library",
|
|
|
- "Demand - Jet Fuel": "analytics library",
|
|
|
- "Demand - Maritime Bunker": "analytics library",
|
|
|
- "Oil_Demand_Signals_Weekly_Report": "analytics library",
|
|
|
- "cube dashboards": "cube dashboards",
|
|
|
- "Oil Market Cube": "Oil Market Cube",
|
|
|
-}
|
|
|
-
|
|
|
// RoadIndexProcessor
|
|
|
// @Description: AnalyticsLibrary处理器
|
|
|
type RoadIndexProcessor struct{}
|
|
@@ -3414,74 +3400,89 @@ func getIndexId(prefix string, area string, suffix string) (string, error) {
|
|
|
}
|
|
|
|
|
|
// 处理分类
|
|
|
-func dealClassify(tableName, sheetName string) (int, error) {
|
|
|
- // 查询一级分类是否存在
|
|
|
- paramsLib := make(map[string]interface{})
|
|
|
- paramsLib["classifyName"] = classifyMap[tableName]
|
|
|
- postEdbLib, err := httpRequestFill(paramsLib, utils.GET_RZD_CLASSIFY_BY_NAME)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to get classify: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[models.BaseFromRzdClassify]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
-
|
|
|
- // 处理一级分类
|
|
|
+func dealClassify(tableName string, sheetNames []string) (classifyList map[string]int, err error) {
|
|
|
+ var rzdClassifyList []models.AddRzdClassify
|
|
|
var parentId int
|
|
|
- if requestResponse.Data.BaseFromRzdClassifyId == 0 {
|
|
|
- // 一级分类不存在,新增一级分类
|
|
|
- paramsLib = make(map[string]interface{})
|
|
|
- paramsLib["parentId"] = 0
|
|
|
- paramsLib["classifyName"] = classifyMap[tableName]
|
|
|
- postEdbLib, err = httpRequestFill(paramsLib, utils.ADD_RZD_CLASSIFY)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to add classify: %v", err)
|
|
|
+ classifyList = make(map[string]int)
|
|
|
+ // 查询一级分类是否存在
|
|
|
+ if classify, ok := RzdClassifyMap[tableName]; !ok {
|
|
|
+ rzdMapStruct := classifyMap[tableName]
|
|
|
+ parentClassify := models.AddRzdClassify{
|
|
|
+ ClassifyName: rzdMapStruct.ClassifyName,
|
|
|
+ Sort: rzdMapStruct.Sort,
|
|
|
+ ParentId: 0,
|
|
|
}
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
+ rzdClassifyList = append(rzdClassifyList, parentClassify)
|
|
|
+ resp, httpErr := httpRequestFill(rzdClassifyList, utils.BATCH_ADD_RZD_CLASSYFY)
|
|
|
+ if httpErr != nil {
|
|
|
+ err = fmt.Errorf("添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var rzdResp models.RequestResponse[[]models.BaseFromRzdClassify]
|
|
|
+ jsonErr := json.Unmarshal(resp, &rzdResp)
|
|
|
+ if jsonErr != nil {
|
|
|
+ err = fmt.Errorf("解析添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if rzdResp.Ret != 200 {
|
|
|
+ err = fmt.Errorf("添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
}
|
|
|
- parentId = requestResponse.Data
|
|
|
+ parentId = rzdResp.Data[0].BaseFromRzdClassifyId
|
|
|
+ classifyList[tableName] = rzdResp.Data[0].BaseFromRzdClassifyId
|
|
|
} else {
|
|
|
- // 一级分类已存在,使用其 ID
|
|
|
- parentId = requestResponse.Data.BaseFromRzdClassifyId
|
|
|
+ parentId = classify.BaseFromRzdClassifyId
|
|
|
+ classifyList[tableName] = classify.BaseFromRzdClassifyId
|
|
|
+ }
|
|
|
+ //处理二级分类
|
|
|
+ for _, sheetName := range sheetNames {
|
|
|
+ if _, ok := RzdClassifyMap[sheetName]; !ok {
|
|
|
+ rzdMapStruct := classifyMap[sheetName]
|
|
|
+ rzdClassifyList = append(rzdClassifyList, models.AddRzdClassify{
|
|
|
+ ClassifyName: rzdMapStruct.ClassifyName,
|
|
|
+ Sort: rzdMapStruct.Sort,
|
|
|
+ ParentId: parentId,
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
- // 查询二级分类是否存在
|
|
|
- paramsSubLib := make(map[string]interface{})
|
|
|
- paramsSubLib["classifyName"] = sheetName // 这里替换成实际的二级分类名称
|
|
|
- postSubEdbLib, err := httpRequestFill(paramsSubLib, utils.GET_RZD_CLASSIFY_BY_NAME)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to get sub classify: %v", err)
|
|
|
+ resp, httpErr := httpRequestFill(rzdClassifyList, utils.BATCH_ADD_RZD_CLASSYFY)
|
|
|
+ if httpErr != nil {
|
|
|
+ err = fmt.Errorf("添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- var subRequestResponse models.RequestResponse[models.BaseFromRzdClassify]
|
|
|
- err = json.Unmarshal(postSubEdbLib, &subRequestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
+ var rzdResp models.RequestResponse[[]models.BaseFromRzdClassify]
|
|
|
+ jsonErr := json.Unmarshal(resp, &rzdResp)
|
|
|
+ if jsonErr != nil {
|
|
|
+ err = fmt.Errorf("解析添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- // 新增二级分类
|
|
|
- var classifyId int
|
|
|
- if subRequestResponse.Data.BaseFromRzdClassifyId == 0 {
|
|
|
- paramsLib = make(map[string]interface{})
|
|
|
- paramsLib["parentId"] = parentId
|
|
|
- paramsLib["classifyName"] = sheetName
|
|
|
- postEdbLib, err = httpRequestFill(paramsLib, utils.ADD_RZD_CLASSIFY)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to add classify: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
- classifyId = requestResponse.Data
|
|
|
- } else {
|
|
|
- classifyId = subRequestResponse.Data.BaseFromRzdClassifyId
|
|
|
+ if rzdResp.Ret != 200 {
|
|
|
+ err = fmt.Errorf("添加睿咨得分类失败: %v", err)
|
|
|
+ return
|
|
|
}
|
|
|
+ for _, classify := range rzdResp.Data {
|
|
|
+ classifyList[classify.ClassifyName] = classify.BaseFromRzdClassifyId
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
- return classifyId, nil
|
|
|
+// 处理分类
|
|
|
+func getRzdClassifyList() (list []models.BaseFromRzdClassify, err error) {
|
|
|
+ //查询睿咨得分类
|
|
|
+ postEdbLib, httpErr := httpRequestFill(nil, utils.GET_RZD_CLASSIFY)
|
|
|
+ if httpErr != nil {
|
|
|
+ err = fmt.Errorf("获取睿咨得分类数据失败: %v", httpErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var requestResponse models.RequestResponse[[]models.BaseFromRzdClassify]
|
|
|
+ jsonErr := json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
+ if jsonErr != nil {
|
|
|
+ err = fmt.Errorf("获取睿咨得分类数据失败,解析JSON数据失败: %v", jsonErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if requestResponse.Ret != 200 {
|
|
|
+ err = fmt.Errorf("获取睿咨得分类数据失败,请求应答异常: %v", requestResponse.ErrMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return requestResponse.Data, nil
|
|
|
}
|