|
@@ -488,8 +488,8 @@ type MySteelChemicalApiInfoBody struct {
|
|
|
IncludeInfo bool `json:"includeInfo"`
|
|
|
}
|
|
|
|
|
|
+// GetEdbDataFromMySteelChemical 批量获得钢联化工的指标数据
|
|
|
func GetEdbDataFromMySteelChemical(indexCodes []string, startTime, endTime, order string) (item *models.MySteelChemicalApiResp, err error) {
|
|
|
- // 如果没有配置,获取配置的方式是api,那么就走官方接口
|
|
|
if utils.MysteelChemicalApiToken == "" {
|
|
|
err = errors.New("钢联接口token未配置")
|
|
|
return
|
|
@@ -516,8 +516,8 @@ func GetEdbDataFromMySteelChemical(indexCodes []string, startTime, endTime, orde
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// GetMySteelChemicalIndexNameMap 获取钢联化工的所有指标的信息
|
|
|
func GetMySteelChemicalIndexNameMap(indexCodes []string) (indexNameMap map[string]*models.MySteelChemicalApiInfoItem, err error) {
|
|
|
- // 如果没有配置,获取配置的方式是api,那么就走官方接口
|
|
|
if utils.MysteelChemicalApiToken == "" {
|
|
|
err = errors.New("钢联接口token未配置")
|
|
|
return
|
|
@@ -576,3 +576,88 @@ func MySteelChemicalPost(postUrl, hType string, postData []byte) (body []byte, e
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func RefreshDataFromMysteelChemical(edbCode, startDate, endDate, edbTerminalCode string) (err error) {
|
|
|
+ terminal, err := GetTerminal(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, edbTerminalCode)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("获取钢联化工接口配置出错 Err: %s", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if edbTerminalCode == "" {
|
|
|
+ // 设置指标与终端关系的缓存
|
|
|
+ terminalCodeCacheKey := utils.CACHE_EDB_TERMINAL_CODE_URL + edbCode
|
|
|
+ _ = utils.Rc.Put(terminalCodeCacheKey, terminal.TerminalCode, utils.GetTodayLastSecond())
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果配置了api的token, 那么就走api接口
|
|
|
+ if utils.MysteelChemicalApiToken != "" {
|
|
|
+ resp, er := GetEdbDataFromMySteelChemical([]string{edbCode}, startDate, endDate, "desc")
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !resp.Success {
|
|
|
+ err = errors.New(resp.Message)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ dataObj := new(models.BaseFromMysteelChemicalData)
|
|
|
+ exitDataList, er := dataObj.GetIndexDataList(edbCode)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ existDataMap := make(map[string]*models.BaseFromMysteelChemicalData)
|
|
|
+ for _, v := range exitDataList {
|
|
|
+ dateStr := v.DataTime.Format(utils.FormatDate)
|
|
|
+ existDataMap[dateStr] = v
|
|
|
+ }
|
|
|
+ mysteelChemicalDatas, er := tranformData(resp)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ addItems := make([]*models.BaseFromMysteelChemicalData, 0)
|
|
|
+ indexObj := &models.BaseFromMysteelChemicalIndex{}
|
|
|
+ existIndex, er := indexObj.GetIndexItem(edbCode)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(mysteelChemicalDatas) == 0 {
|
|
|
+ err = errors.New("没有获取到数据")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 因为只有一个指标,所以取第一个就可以了
|
|
|
+ items := mysteelChemicalDatas[0]
|
|
|
+ for _, v := range items {
|
|
|
+ dateStr := v.DataTime.Format(utils.FormatDate)
|
|
|
+ if findData, ok := existDataMap[dateStr]; !ok {
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ v.BaseFromMysteelChemicalIndexId = existIndex.BaseFromMysteelChemicalIndexId
|
|
|
+ addItems = append(addItems, v)
|
|
|
+ } else {
|
|
|
+ if findData != nil && findData.Value != v.Value {
|
|
|
+ dataObj.BaseFromMysteelChemicalDataId = findData.BaseFromMysteelChemicalDataId
|
|
|
+ dataObj.Value = v.Value
|
|
|
+ dataObj.ModifyTime = time.Now()
|
|
|
+
|
|
|
+ err = dataObj.Update([]string{"value", "modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = dataObj.AddV2(addItems)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|