Browse Source

add:增加同步数据节点观点数据的定时任务

zqbao 3 months ago
parent
commit
3a606d1948

+ 1 - 0
config/config.go

@@ -83,6 +83,7 @@ type Gn struct {
 	DataEdbValueListUrl string `mapstructure:"data-edb-value-list-url" json:"data-edb-value-list-url" yaml:"data-edb-value-list-url" description:"获取数据节点的指标明细数据地址"`
 	DataAccessKey       string `mapstructure:"data-access-key" json:"data-access-key" yaml:"data-access-key" description:"数据节点的access_key"`
 	DataAccessSecret    string `mapstructure:"data-access-secret" json:"data-access-secret" yaml:"data-access-secret" description:"数据节点的access_secret"`
+	DataAccessMarketUrl string `mapstructure:"data-access-market-url" json:"data-access-market-url" yaml:"data-access-market-url" description:"获取数据节点的市场数据地址"`
 	AuthClientId        string `mapstructure:"auth-client-id" json:"auth-client-id" yaml:"auth-client-id" description:"统一认证-ClientID"`
 	AuthClientSecret    string `mapstructure:"auth-client-secret" json:"auth-client-secret" yaml:"auth-client-secret" description:"统一认证-密钥"`
 	AuthSSOCallbackUrl  string `mapstructure:"auth-sso-callback-url" json:"auth-sso-callback-url" yaml:"auth-sso-callback-url" description:"统一认证-回调地址"`

+ 44 - 2
controller/knowledge/knowledge.go

@@ -4,6 +4,8 @@ import (
 	"encoding/json"
 	"eta_gn/eta_bridge/controller/resp"
 	"eta_gn/eta_bridge/global"
+	knowledgeDao "eta_gn/eta_bridge/models/request/knowledge"
+	"eta_gn/eta_bridge/services/index_data"
 	"eta_gn/eta_bridge/services/knowledge"
 
 	"github.com/gin-gonic/gin"
@@ -11,8 +13,8 @@ import (
 
 type KnowledgeController struct{}
 
-// Save 存储
-func (k *KnowledgeController) Save(c *gin.Context) {
+// ReportSave 存储
+func (k *KnowledgeController) ReportSave(c *gin.Context) {
 	res, err := knowledge.ForwardRequest(c, global.CONFIG.EtaReport.Host+"v1/report/knowledge/upload")
 	if err != nil {
 		global.LOG.Error("knowledge save error: ", err)
@@ -32,3 +34,43 @@ func (k *KnowledgeController) Save(c *gin.Context) {
 
 	resp.Ok("保存成功", c)
 }
+
+func (k *KnowledgeController) ViewPointSave(c *gin.Context) {
+
+	var req knowledgeDao.KnowledgeRefreshReq
+	if e := c.Bind(&req); e != nil {
+		resp.FailData("参数解析失败", "Err:"+e.Error(), c)
+		return
+	}
+
+	param := make(map[string]interface{})
+	var res *index_data.MarketOverviewResp
+	pageNum := 1
+	for {
+		param["pageNum"] = pageNum
+		param["pageSize"] = req.PageSise
+		if req.UpdateTime != "" {
+			param["UPDATE_TIME"] = req.UpdateTime
+		}
+		tmp, err := index_data.GetMarketOverview(param)
+		if err != nil {
+			global.LOG.Error("knowledge save error: ", err)
+			resp.Fail("保存失败", c)
+			return
+		}
+		if res == nil {
+			res = tmp
+		} else {
+			res.Data.Records = append(res.Data.Records, tmp.Data.Records...)
+		}
+		if res.Code != "000000" {
+			global.LOG.Info("knowledgeResp Res:%v ", res)
+			continue
+		}
+		if len(res.Data.Records) != req.PageSise {
+			break
+		}
+		pageNum++
+	}
+	resp.OkData("保存成功", res, c)
+}

+ 6 - 0
models/request/knowledge/knowledge.go

@@ -0,0 +1,6 @@
+package knowledge
+
+type KnowledgeRefreshReq struct {
+	PageSise   int    `json:"pageSize"`
+	UpdateTime string `json:"UPDATE_TIME"`
+}

+ 2 - 1
routers/knowledge.go

@@ -9,5 +9,6 @@ import (
 func InitKnowledgeRouter(r *gin.RouterGroup) {
 	control := new(knowledge.KnowledgeController)
 	group := r.Group("knowledge/")
-	group.POST("save", control.Save)
+	group.POST("report/save", control.ReportSave)
+	group.POST("viewpoint/save", control.ViewPointSave)
 }

+ 116 - 0
services/index_data/gn_base_data_platform.go

@@ -483,3 +483,119 @@ func GetIndexInfoListV2(param IndexInfoV2Req) (resp GnEdbIndexListResp, err erro
 
 	return
 }
+
+// type MarketOverviewResp struct {
+// 	Code string             `json:"code"`
+// 	Msg  string             `json:"msg"`
+// 	Data MarketOverviewData `json:"data"`
+// 	Time string             `json:"time"`
+// }
+
+type MarketOverviewData struct {
+	Result  bool `json:"result"`
+	Total   int  `json:"total"`
+	Records []struct {
+		Category         string `json:"CATEGORY"`
+		Content          string `json:"CONTENT"`
+		CreateOriginTime string `json:"CREATE_ORIGIN_TIME"`
+		CreateTime       string `json:"CREATE_TIME"`
+		DataDate         string `json:"DATA_DATE"`
+		DataSource       string `json:"DATA_SOURCE"`
+		DataSourceCode   string `json:"DATA_SOURCE_CODE"`
+		Des              string `json:"DES"`
+		Id               int    `json:"ID"`
+		IsValidData      int    `json:"IS_VALID_DATA"`
+		Person           string `json:"PERSON"`
+		Titile           string `json:"TITILE"`
+		UpdateOriginTime string `json:"UPDATE_ORIGIN_TIME"`
+		UpdateTime       string `json:"UPDATE_TIME"`
+	} `json:"records"`
+}
+
+func MockGnData() []byte {
+	demoJson := `{
+    "code": "000000",
+    "msg": "处理成功",
+    "time": "2024-09-24T07:12:40.020Z",
+    "data": {
+        "result": true,
+        "total": 6,
+        "records": [
+            {
+                "CATEGORY": "市场简况",
+                "CONTENT": " 产地需求保持,煤价延续上涨。榆林区域销售良好,同时受保供加码影响,市场煤持续收缩,支撑煤价继续小涨。6100K价格1080元/吨,环比涨5元/吨;5800K价格1025元/吨,环比涨10元/吨。鄂尔多斯区域拉运积极性保持,市场情绪平稳。5500K价格890元/吨、5000K价格755元/吨、4500K价格645元/吨,均环比持平。晋北区域坑口采购需求持续向好,叠加港口价格上涨传导,报价普遍上调。大同5000K价格860元/吨,环比涨20元/吨;朔州5500KS1.5价格1010元/吨,环比涨20元/吨;朔州4500S1.6价格755元/吨,环比涨10元/吨;忻州5000S1.3价格815元/吨,环比涨15元/吨。\n 港口方面:近期产地市场煤持续收缩,发港调货难度增加,港口流通货源补充不足,支撑贸易商情绪保持乐观。而在高温、水电乏力和工业企业开工率上升影响下,电厂日耗保持高位,采购需求有所释放。5500K价格1160元/吨,环比涨5元/吨;5000K价格1030元/吨,环比涨5元/吨;4500K价格910元/吨,环比涨5元/吨。",
+                "CREATE_ORIGIN_TIME": null,
+                "CREATE_TIME": "2024-12-20 14:30:53",
+                "DATA_DATE": "2022-08-17 00:00:00",
+                "DATA_SOURCE": "CCTD",
+                "DATA_SOURCE_CODE": "S02",
+                "DES": null,
+                "ID": 645,
+                "IS_VALID_DATA": 1,
+                "PERSON": null,
+                "TITLE": "CCTD2022-08-17市场简况",
+                "UPDATE_ORIGIN_TIME": null,
+                "UPDATE_TIME": "2024-12-20 14:30:53"
+            }
+        ]
+    }
+}`
+
+	return []byte(demoJson)
+}
+
+type MarketOverviewResp struct {
+	Code string `json:"code"`
+	Msg  string `json:"msg"`
+	Time string `json:"time"`
+	Data struct {
+		Result  bool `json:"result"`
+		Total   int  `json:"total"`
+		Records []struct {
+			Category         string `json:"CATEGORY"`
+			Content          string `json:"CONTENT"`
+			CreateOriginTime string `json:"CREATE_ORIGIN_TIME"`
+			CreateTime       string `json:"CREATE_TIME"`
+			DataDate         string `json:"DATA_DATE"`
+			DataSource       string `json:"DATA_SOURCE"`
+			DataSourceCode   string `json:"DATA_SOURCE_CODE"`
+			Des              string `json:"DES"`
+			ID               int    `json:"ID"`
+			IsValidData      int    `json:"IS_VALID_DATA"`
+			Person           string `json:"PERSON"`
+			Title            string `json:"TITLE"`
+			UpdateOriginTime string `json:"UPDATE_ORIGIN_TIME"`
+			UpdateTime       string `json:"UPDATE_TIME"`
+		} `json:"records"`
+	} `json:"data"`
+}
+
+func GetMarketOverview(param interface{}) (resp *MarketOverviewResp, err error) {
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("获取市场简况失败;ERR:"+err.Error(), 3)
+		}
+	}()
+
+	// urlStr := global.CONFIG.Gn.DataAccessMarketUrl
+
+	result := MockGnData()
+	// // 获取token
+	// token, err := GetGnAccessToken(false)
+	// if err != nil {
+	// 	return
+	// }
+
+	// // 请求
+	// result, err := HttpPostGn(urlStr, token, param, 0)
+	// if err != nil {
+	// 	return
+	// }
+
+	//  解析响应结果
+	err = json.Unmarshal(result, &resp)
+	if err != nil {
+		return
+	}
+	return
+}