|
@@ -0,0 +1,88 @@
|
|
|
+package data_manage
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_task/models/data_manage"
|
|
|
+ "hongze/hongze_task/utils"
|
|
|
+ "rdluck_tools/http"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+type EdbDataFromPb struct {
|
|
|
+ Date map[string]int64 `json:"date"`
|
|
|
+ Ticker map[string]string `json:"ticker"`
|
|
|
+ Field map[string]string `json:"field"`
|
|
|
+ Value map[string]float64 `json:"value"`
|
|
|
+}
|
|
|
+
|
|
|
+//万得
|
|
|
+func SyncEdbDataByPb(edbInfoId int64, edbCode, startDate, endDate string) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("SyncEdbDataByPb Err:" + err.Error())
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ pbUrl := utils.Hz_Data_PB_Url + `edbInfo/pb?EdbCode=%s&StartDate=%s&EndDate=%s`
|
|
|
+ pbUrl = fmt.Sprintf(pbUrl, edbCode, startDate, endDate)
|
|
|
+ utils.FileLog.Info("pbUrl:%s", pbUrl)
|
|
|
+ body, err := http.Get(pbUrl)
|
|
|
+ fmt.Println(pbUrl)
|
|
|
+ fmt.Println("SyncEdbDataByPb body:")
|
|
|
+ fmt.Println(string(body))
|
|
|
+ utils.FileLog.Info("pb %s", string(body))
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(EdbDataFromPb)
|
|
|
+ err = json.Unmarshal(body, &item)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ pbList := make([]*data_manage.EdbDataPb, 0)
|
|
|
+ if len(item.Date) > 0 {
|
|
|
+ dateMap := item.Date
|
|
|
+ for k, v := range dateMap {
|
|
|
+ v = v / 1000
|
|
|
+ t := time.Unix(v, 0)
|
|
|
+ dateTime := t.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ val := item.Value[k]
|
|
|
+ field := item.Field[k]
|
|
|
+ ticker := item.Ticker[k]
|
|
|
+
|
|
|
+ count, err := data_manage.GetEdbDataPbCount(edbInfoId, dateTime)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ err = data_manage.ModifyEdbDataPb(edbInfoId, dateTime, val)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ item := new(data_manage.EdbDataPb)
|
|
|
+ item.EdbCode = edbCode
|
|
|
+ item.EdbInfoId = int(edbInfoId)
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ item.DataTime = dateTime
|
|
|
+ item.Value = val
|
|
|
+ item.Status = 1
|
|
|
+ item.Field=field
|
|
|
+ item.Ticker=ticker
|
|
|
+ pbList = append(pbList, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(pbList) > 0 {
|
|
|
+ err = data_manage.AddEdbDataPb(pbList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|