孟令鑫 1 gadu atpakaļ
vecāks
revīzija
9a7cf8a67e

+ 45 - 0
common/util/u_io.go

@@ -2,6 +2,7 @@ package util
 
 import (
 	"cicv-data-closedloop/kinglong/common/log"
+	"io"
 	"os"
 	"path/filepath"
 )
@@ -60,3 +61,47 @@ func RemoveDir(dirPath string) error {
 	}
 	return nil
 }
+
+func WriteFile(sourceContent string, targetFilePath string) error {
+	if err := CreateFile(targetFilePath); err != nil {
+		return err
+	}
+	if err := os.WriteFile(targetFilePath, []byte(sourceContent), 0644); err != nil {
+		return err
+	}
+	return nil
+}
+
+// CreateFile 存在则覆盖,不存在则创建文件
+func CreateFile(filePath string) error {
+	if err := CreateParentDir(filePath); err != nil {
+		return err
+	}
+	// 创建文件,如果文件已存在则覆盖
+	file, err := os.Create(filePath)
+	if err != nil {
+		return err
+	}
+	defer func(file *os.File) {
+		err := file.Close()
+		if err != nil {
+
+		}
+	}(file)
+	return nil
+}
+func ReadFile(filePath string) (string, error) {
+	// 1 打开文件
+	file, err := os.Open(filePath)
+	if err != nil {
+		return "", err
+	}
+	defer file.Close()
+
+	// 2 读取文件内容
+	content, err := io.ReadAll(file)
+	if err != nil {
+		return "", err
+	}
+	return string(content), err
+}

+ 10 - 0
common/util/u_json.go

@@ -14,3 +14,13 @@ func MapToJsonString(inputMap map[string]interface{}) (string, error) {
 	jsonString := string(jsonBytes)
 	return jsonString, nil
 }
+
+func JsonStringToMap(source string) (map[string]interface{}, error) {
+	var dataMap map[string]interface{}
+	err := json.Unmarshal([]byte(source), &dataMap)
+	if err != nil {
+		return nil, err
+	} else {
+		return dataMap, nil
+	}
+}

+ 2 - 1
kinglong/common/cfg/cloud_cfg.go

@@ -93,7 +93,8 @@ func InitCloudConfig() {
 	log.GlobalLogger.Info("初始化OSS配置文件 - 成功。")
 	util.CreateDir(CloudConfig.BagDataDir)
 	util.CreateDir(CloudConfig.BagCopyDir)
-
+	timeToLabelJson, _ := util.MapToJsonString(map[string]interface{}{"time": "label"})
+	_ := util.WriteFile(timeToLabelJson, CloudConfig.TimeToLabelJsonPath)
 }
 
 // RefreshCloudConfig 初始化业务配置

+ 3 - 2
kinglong/common/cfg/platform_cfg.go

@@ -1,6 +1,7 @@
 package cfg
 
 import (
+	"cicv-data-closedloop/common/util"
 	"cicv-data-closedloop/kinglong/common/cutil"
 	"cicv-data-closedloop/kinglong/common/log"
 	"encoding/json"
@@ -89,7 +90,7 @@ func GetAccessToken() (string, error) {
 	if err != nil {
 		return "", nil
 	}
-	respMap, err := cutil.JsonStringToMap(respJson)
+	respMap, err := util.JsonStringToMap(respJson)
 	if err != nil {
 		log.GlobalLogger.Error("解析返回结果", respJson, "失败:", err)
 		return "", nil
@@ -136,7 +137,7 @@ func GetStatus(taskConfigId string) (string, error) {
 		log.GlobalLogger.Error("访问接口", CloudConfig.Platform.UrlTask, "失败:", err)
 		return "", err
 	}
-	respMap, err := cutil.JsonStringToMap(resp)
+	respMap, err := util.JsonStringToMap(resp)
 	if err != nil {
 		log.GlobalLogger.Error("解析【返回结果1】", resp, "失败:", err)
 		return "", err

+ 0 - 13
kinglong/common/cutil/u_json.go

@@ -1,13 +0,0 @@
-package cutil
-
-import "encoding/json"
-
-func JsonStringToMap(source string) (map[string]interface{}, error) {
-	var dataMap map[string]interface{}
-	err := json.Unmarshal([]byte(source), &dataMap)
-	if err != nil {
-		return nil, err
-	} else {
-		return dataMap, nil
-	}
-}

+ 6 - 1
kinglong/master/pkg/svc/move_bag_and_send_window.go

@@ -1,6 +1,7 @@
 package svc
 
 import (
+	commonUtil "cicv-data-closedloop/common/util"
 	commonConfig "cicv-data-closedloop/kinglong/common/cfg"
 	"cicv-data-closedloop/kinglong/common/ent"
 	"cicv-data-closedloop/kinglong/common/global"
@@ -69,7 +70,11 @@ func RunTimeWindowProducerQueue() {
 				// 将时间窗口加入运行队列
 				util.AddTimeWindowToTimeWindowConsumerQueue(currentTimeWindow)
 				// 获取copy目录下的字典json,key为触发时间,value为label
-
+				timeToLabelJson, _ := commonUtil.ReadFile(commonConfig.CloudConfig.TimeToLabelJsonPath)
+				timeToLabelMap, _ := commonUtil.JsonStringToMap(timeToLabelJson)
+				timeToLabelMap[currentTimeWindow.FaultTime] = commonUtil.ToString(currentTimeWindow.Labels)
+				timeToLabelJson, _ = commonUtil.MapToJsonString(timeToLabelMap)
+				_ = commonUtil.WriteFile(timeToLabelJson, commonConfig.CloudConfig.TimeToLabelJsonPath)
 				continue
 			} else { // 保证当前窗口只发送一次,每间隔5秒发一次
 				if int(time.Since(global.TcpSendTime).Seconds()) > commonConfig.CloudConfig.TimeWindowSendGap {