Browse Source

Merge remote-tracking branch 'origin/master' into change_orm

# Conflicts:
#	services/data/chart_info.go
Roc 3 years ago
parent
commit
b0f370bdc5
4 changed files with 600 additions and 3 deletions
  1. 152 0
      services/data/base_edb_lib.go
  2. 434 3
      services/data/chart_info.go
  3. 9 0
      utils/config.go
  4. 5 0
      utils/constants.go

+ 152 - 0
services/data/base_edb_lib.go

@@ -0,0 +1,152 @@
+package data
+
+import (
+	"encoding/json"
+	"fmt"
+	"hongze/hongze_chart_lib/models"
+	"hongze/hongze_chart_lib/utils"
+	"io/ioutil"
+	"net/http"
+	"strings"
+)
+
+//新增指标数据
+func AddEdbData(source int, edbCode string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	urlStr := ``
+	switch source {
+	case utils.DATA_SOURCE_THS:
+		urlStr = "/ths/add"
+	case utils.DATA_SOURCE_WIND:
+		urlStr = "/wind/add"
+	case utils.DATA_SOURCE_PB:
+		urlStr = "/pb/add"
+	case utils.DATA_SOURCE_MANUAL:
+		urlStr = "/manual/add"
+	case utils.DATA_SOURCE_LZ:
+		urlStr = "/lz/add"
+	case utils.DATA_SOURCE_YS:
+		urlStr = "/smm/add"
+	case utils.DATA_SOURCE_GL:
+		urlStr = "/mysteel/add"
+	case utils.DATA_SOURCE_ZZ:
+		urlStr = "/zz/add"
+	case utils.DATA_SOURCE_DL:
+		urlStr = "/dl/add"
+	case utils.DATA_SOURCE_SH:
+		urlStr = "/sh/add"
+	case utils.DATA_SOURCE_CFFEX:
+		urlStr = "/cffex/add"
+	case utils.DATA_SOURCE_SHFE:
+		urlStr = "/shfe/add"
+	case utils.DATA_SOURCE_GIE:
+		urlStr = "/gie/add"
+	case utils.DATA_SOURCE_LT:
+		urlStr = "/lt/add"
+	case utils.DATA_SOURCE_COAL:
+		urlStr = "/coal/add"
+	default:
+	}
+	if urlStr == "" {
+		err = fmt.Errorf("未实现该指标的刷新接口,请联系管理员")
+		return
+	}
+	resp, err = postRefreshEdbData(param, urlStr)
+	return
+}
+
+// RefreshEdbData 刷新指标数据
+func RefreshEdbData(edbInfoId, source int, edbCode, startDate string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	param["EdbInfoId"] = edbInfoId
+	param["StartDate"] = startDate
+	urlStr := ``
+	switch source {
+	case utils.DATA_SOURCE_THS:
+		urlStr = "/ths/refresh"
+	case utils.DATA_SOURCE_WIND:
+		urlStr = "/wind/refresh"
+	case utils.DATA_SOURCE_PB:
+		urlStr = "/pb/refresh"
+	case utils.DATA_SOURCE_MANUAL:
+		urlStr = "/manual/refresh"
+	case utils.DATA_SOURCE_LZ:
+		urlStr = "/lz/refresh"
+	case utils.DATA_SOURCE_YS:
+		urlStr = "/smm/refresh"
+	case utils.DATA_SOURCE_GL:
+		urlStr = "/mysteel/refresh"
+	case utils.DATA_SOURCE_ZZ:
+		urlStr = "/zz/refresh"
+	case utils.DATA_SOURCE_DL:
+		urlStr = "/dl/refresh"
+	case utils.DATA_SOURCE_SH:
+		urlStr = "/sh/refresh"
+	case utils.DATA_SOURCE_CFFEX:
+		urlStr = "/cffex/refresh"
+	case utils.DATA_SOURCE_SHFE:
+		urlStr = "/shfe/refresh"
+	case utils.DATA_SOURCE_GIE:
+		urlStr = "/gie/refresh"
+	case utils.DATA_SOURCE_LT:
+		urlStr = "/lt/refresh"
+	case utils.DATA_SOURCE_COAL:
+		urlStr = "/coal/refresh"
+	}
+	if urlStr == "" {
+		err = fmt.Errorf(fmt.Sprint("source:", source, ";未实现该指标的刷新接口,请联系管理员"))
+		return
+	}
+	resp, err = postRefreshEdbData(param, urlStr)
+	return
+}
+
+// RefreshEdbCalculateData 刷新计算指标数据请求
+func RefreshEdbCalculateData(edbInfoId int, edbCode, startDate string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	param["EdbInfoId"] = edbInfoId
+	param["StartDate"] = startDate
+	resp, err = postRefreshEdbData(param, "/calculate/refresh")
+	return
+}
+
+// postRefreshEdbData 刷新指标数据
+func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *models.BaseResponse, err error) {
+	postUrl := utils.EDB_LIB_URL + urlStr
+	postData, err := json.Marshal(param)
+	if err != nil {
+		return
+	}
+	result, err := HttpPost(postUrl, string(postData), "application/json")
+	if err != nil {
+		return
+	}
+	err = json.Unmarshal(result, &resp)
+	if err != nil {
+		return
+	}
+	return resp, nil
+}
+
+func HttpPost(url, postData string, params ...string) ([]byte, error) {
+	body := ioutil.NopCloser(strings.NewReader(postData))
+	client := &http.Client{}
+	req, err := http.NewRequest("POST", url, body)
+	if err != nil {
+		return nil, err
+	}
+	contentType := "application/x-www-form-urlencoded;charset=utf-8"
+	if len(params) > 0 && params[0] != "" {
+		contentType = params[0]
+	}
+	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("authorization", utils.MD5(utils.APP_EDB_LIB_NAME_EN+utils.EDB_LIB_Md5_KEY))
+	resp, err := client.Do(req)
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	fmt.Println("HttpPost:" + string(b))
+	return b, err
+}

+ 434 - 3
services/data/chart_info.go

@@ -1,6 +1,7 @@
 package data
 
 import (
+	"errors"
 	"fmt"
 	"hongze/hongze_chart_lib/models/data_manage"
 	"hongze/hongze_chart_lib/utils"
@@ -9,7 +10,309 @@ import (
 	"time"
 )
 
-func ChartInfoRefreshV1(chartInfoId int) (err error) {
+func ChartInfoRefresh(chartInfoId int) (err error) {
+	var errmsg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
+			fmt.Println("ChartInfoRefresh Err:" + errmsg)
+		}
+	}()
+	baseEdbInfoArr, calculateInfoArr, err := data_manage.GetChartInfoRefreshData(chartInfoId)
+	if err != nil {
+		errmsg = "获取需要刷新的指标失败:Err:" + err.Error()
+		return
+	}
+	var startDate string
+
+	newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
+	baseMap := make(map[int]*data_manage.EdbInfo)
+	for _, bv := range baseEdbInfoArr {
+		if _, ok := baseMap[bv.EdbInfoId]; !ok {
+			newBaseEdbInfoArr = append(newBaseEdbInfoArr, bv)
+		}
+		baseMap[bv.EdbInfoId] = bv
+	}
+
+	fmt.Println("calculateInfoArr:", len(calculateInfoArr))
+
+	newCalculateInfoArr := make([]*data_manage.EdbInfo, 0)
+	calculateMap := make(map[int]*data_manage.EdbInfo)
+	var calculateArr []int
+	for _, bv := range calculateInfoArr {
+		if _, ok := calculateMap[bv.EdbInfoId]; !ok {
+			newCalculateInfoArr = append(newCalculateInfoArr, bv)
+			calculateArr = append(calculateArr, bv.EdbInfoId)
+		}
+		calculateMap[bv.EdbInfoId] = bv
+	}
+	sort.Ints(calculateArr)
+	for _, bv := range newBaseEdbInfoArr {
+		source := bv.Source
+		edbInfoId := bv.EdbInfoId
+		edbCode := bv.EdbCode
+		startDate = bv.StartDate
+		sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
+		if err != nil {
+			return err
+		}
+		startDate = sTime.Format(utils.FormatDate)
+
+		if source == utils.DATA_SOURCE_THS {
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
+			err = RefreshEdbDataByThs(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByThs Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_WIND {
+			endDate := time.Now().Format(utils.FormatDate)
+			err = RefreshEdbDataByWind(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByWind Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_PB {
+			startDate := sTime.Format(utils.FormatDateUnSpace)
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDateUnSpace)
+			err = RefreshEdbDataByPb(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByPb Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_MANUAL {
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
+			err = data_manage.RefreshEdbDataByManual(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByManual Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_LZ {
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
+			err = data_manage.RefreshEdbDataByLz(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByLz Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_YS {
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
+			err = data_manage.RefreshAllEdbDataByYs(edbInfoId, source, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByYs Err:" + err.Error()
+			}
+		} else if source == utils.DATA_SOURCE_GL {
+			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
+			err = data_manage.RefreshEdbDataByGl(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
+			}
+		}else if source == utils.DATA_SOURCE_LT {
+			endDate := time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshAllEdbDataByLt(edbInfoId, source, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshAllEdbDataByLT Err:" + err.Error()
+			}
+		}else if source == utils.DATA_SOURCE_COAL {
+			endDate := time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshEdbDataByCoal(edbInfoId, edbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
+			}
+		}
+
+		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+		if err != nil {
+			return err
+		}
+		if maxAndMinItem != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
+			if err != nil {
+				return err
+			}
+		}
+	}
+
+	for _, v := range calculateArr {
+		edbInfo := calculateMap[v]
+		if edbInfo == nil {
+			return err
+		}
+		edbInfoId := edbInfo.EdbInfoId
+		source := edbInfo.Source
+		edbCode := edbInfo.EdbCode
+
+		fmt.Println("source:", source)
+		fmt.Println("edbInfoId:", edbInfoId)
+
+		if source == utils.DATA_SOURCE_CALCULATE { //指标运算
+			startDate = edbInfo.StartDate
+			sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
+			if err != nil {
+				return err
+			}
+			startDate = sTime.Format(utils.FormatDate)
+
+			var edbInfoIdBytes []string
+			calculateMap, err := data_manage.GetEdbInfoCalculateDetail(edbInfoId, edbInfo.Source)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
+				return err
+			}
+			var formulaStr string
+			edbInfoList := make([]*data_manage.EdbInfo, 0)
+
+			for _, v := range calculateMap {
+				formulaStr += v.FromTag + ","
+				edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
+				edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
+				edbInfoList = append(edbInfoList, edbInfo)
+			}
+			fmt.Println("start RefreshCalculate")
+			endDate := ""
+			err = RefreshCalculate(edbInfoList, int(edbInfoId), edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
+			if err != nil {
+				errmsg = "RefreshCalculate Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY { //刷新累计值转月值
+			calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			year := time.Now().Year()
+			startDate = strconv.Itoa(year) + "-01" + "-01"
+			endDate := ""
+			err = data_manage.RefreshCalculateLjzzy(edbInfoId, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateLjzzy Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_TBZ { //刷新同比值
+			calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
+			endDate := "" // time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshCalculateTbz(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateTbz Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_TCZ { //同差值
+			calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
+			endDate := "" //time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshCalculateTcz(edbInfoId, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateTcz Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS { //N数值移动平均计算
+			fmt.Println("刷新计算指标:", edbInfoId)
+			calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
+			err = data_manage.RefreshCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode)
+			if err != nil {
+				errmsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_HBZ { //刷新环比
+			calculateTbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
+			endDate := "" //time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshCalculateHbz(edbInfoId, edbInfo.Source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateHbz Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_HCZ { //刷新环差值
+			calculateTbz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
+			endDate := "" //time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshCalculateHcz(edbInfoId, edbInfo.Source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateHcz Err:" + err.Error()
+				return err
+			}
+		} else if source == utils.DATA_SOURCE_CALCULATE_BP { //刷新变频
+			calculateTbz, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoCalculateBpDetail Err:" + err.Error()
+				return err
+			}
+			fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
+			if err != nil {
+				errmsg = "GetEdbInfoById Err:" + err.Error()
+				return err
+			}
+			startDate = time.Now().AddDate(-1, -2, 0).Format(utils.FormatDate)
+			endDate := "" //time.Now().Format(utils.FormatDate)
+			err = data_manage.RefreshCalculateBp(edbInfoId, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
+			if err != nil {
+				errmsg = "RefreshCalculateBp Err:" + err.Error()
+				return err
+			}
+		}
+		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+		if err != nil {
+			return err
+		}
+		if maxAndMinItem != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
+			if err != nil {
+				return err
+			}
+		}
+	}
+	return err
+}
+
+// ChartInfoRefreshVOld 图表刷新(旧版,2022年03月25日11:35:06 作废)
+func ChartInfoRefreshVOld(chartInfoId int) (err error) {
 	var errmsg string
 	defer func() {
 		if err != nil {
@@ -99,13 +402,13 @@ func ChartInfoRefreshV1(chartInfoId int) (err error) {
 			if err != nil {
 				errmsg = "RefreshEdbDataByGl Err:" + err.Error()
 			}
-		} else if source == utils.DATA_SOURCE_LT {
+		}else if source == utils.DATA_SOURCE_LT {
 			endDate := time.Now().Format(utils.FormatDate)
 			err = data_manage.RefreshAllEdbDataByLt(edbInfoId, source, edbCode, startDate, endDate)
 			if err != nil {
 				errmsg = "RefreshAllEdbDataByLT Err:" + err.Error()
 			}
-		} else if source == utils.DATA_SOURCE_COAL {
+		}else if source == utils.DATA_SOURCE_COAL {
 			endDate := time.Now().Format(utils.FormatDate)
 			err = data_manage.RefreshAllEdbDataByCoal(edbInfoId, source, edbCode, startDate, endDate)
 			if err != nil {
@@ -322,3 +625,131 @@ func ChartInfoRefreshV1(chartInfoId int) (err error) {
 
 	return err
 }
+
+// ChartInfoRefreshV1 图表刷新
+func ChartInfoRefreshV1(chartInfoId int) (err error) {
+	var errmsg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
+			fmt.Println("ChartInfoRefresh Err:" + errmsg)
+		}
+	}()
+	baseEdbInfoArr, calculateInfoArr, err := data_manage.GetChartInfoRefreshData(chartInfoId)
+	if err != nil {
+		errmsg = "获取需要刷新的指标失败:Err:" + err.Error()
+		return
+	}
+	var startDate string
+
+	newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
+	baseMap := make(map[int]*data_manage.EdbInfo)
+	for _, bv := range baseEdbInfoArr {
+		if _, ok := baseMap[bv.EdbInfoId]; !ok {
+			newBaseEdbInfoArr = append(newBaseEdbInfoArr, bv)
+		}
+		baseMap[bv.EdbInfoId] = bv
+	}
+
+	fmt.Println("calculateInfoArr:", len(calculateInfoArr))
+
+	newCalculateInfoArr := make([]*data_manage.EdbInfo, 0)
+	calculateMap := make(map[int]*data_manage.EdbInfo)
+	var calculateArr []int
+	for _, bv := range calculateInfoArr {
+		if _, ok := calculateMap[bv.EdbInfoId]; !ok {
+			newCalculateInfoArr = append(newCalculateInfoArr, bv)
+			calculateArr = append(calculateArr, bv.EdbInfoId)
+		}
+		calculateMap[bv.EdbInfoId] = bv
+	}
+	sort.Ints(calculateArr)
+	for _, bv := range newBaseEdbInfoArr {
+		source := bv.Source
+		edbInfoId := bv.EdbInfoId
+		edbCode := bv.EdbCode
+		startDate = bv.StartDate
+		frequency := bv.Frequency
+		if bv.StartDate == "0000-00-00" {
+			continue
+		}
+		sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
+		if err != nil {
+			return err
+		}
+
+		var limitDay int
+		startDate := ""
+		switch frequency {
+		case "日度":
+			limitDay = utils.DATA_REFRESH
+		case "周度":
+			limitDay = utils.DATA_REFRESH * 7
+		case "月度":
+			limitDay = utils.DATA_REFRESH * 30
+		case "季度":
+			limitDay = utils.DATA_REFRESH * 90
+		case "年度":
+			limitDay = utils.DATA_REFRESH * 365
+		default:
+			limitDay = utils.DATA_REFRESH
+		}
+		startDate = sTime.AddDate(0, 0, -limitDay).Format(utils.FormatDate)
+
+		fmt.Println("source:", source)
+		respItem, err := RefreshEdbData(edbInfoId, source, edbCode, startDate)
+		if err != nil {
+			errmsg = errors.New("RefreshEdbData Err:" + err.Error()).Error()
+			return err
+		}
+		if respItem.Ret != 200 {
+			errmsg = errors.New(respItem.ErrMsg + ";EdbCode:" + edbCode).Error()
+			return err
+		}
+
+		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+		if err != nil {
+			return err
+		}
+		if maxAndMinItem != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
+			if err != nil {
+				return err
+			}
+		}
+	}
+
+	//刷新相关计算指标
+	for _, v := range calculateArr {
+		edbInfo := calculateMap[v]
+		if edbInfo == nil {
+			return err
+		}
+		startDate = edbInfo.StartDate
+		source := edbInfo.Source
+
+		if source == utils.DATA_SOURCE_CALCULATE {
+			startDate = edbInfo.StartDate
+			sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
+			if err != nil {
+				return err
+			}
+			startDate = sTime.Format(utils.FormatDate)
+		}
+
+		result, err := RefreshEdbCalculateData(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)
+		if err != nil {
+			fmt.Println(v, "RefreshEdbCalculateData err", time.Now())
+			errmsg = "RefreshEdbCalculateData Err:" + err.Error()
+			return err
+		}
+		if result.Ret != 200 {
+			fmt.Println(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
+			errmsg = fmt.Sprint(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
+			return fmt.Errorf("刷新失败"+errmsg)
+		}
+		fmt.Println("end calculateArr:", v, time.Now())
+	}
+
+	return err
+}

+ 9 - 0
utils/config.go

@@ -18,6 +18,11 @@ var (
 	Re          error        //redis错误
 )
 
+// 经济数据库
+var (
+	EDB_LIB_URL string
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -57,9 +62,13 @@ func init() {
 
 		//同花顺,万得接口服务地址(阿里云windows服务器地址;内网地址)
 		Hz_Server_Data_Url = "http://172.19.173.231:7000/"
+
+		EDB_LIB_URL = "http://172.19.173.232:8300/edbapi/"
 	} else {
 		//同花顺,万得接口服务地址(阿里云windows服务器地址;外网地址)
 		Hz_Server_Data_Url = "http://139.196.136.213:7000/"
+
+		EDB_LIB_URL = "http://8.136.199.33:8300/edbapi/"
 	}
 }
 

+ 5 - 0
utils/constants.go

@@ -90,3 +90,8 @@ const (
 var (
 	Hz_Server_Data_Url string //同花顺,万得接口服务地址(阿里云windows服务器地址)
 )
+
+//EDB_LIB
+var (
+	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
+	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"