Browse Source

新增谷歌出行数据

longyu 2 years ago
parent
commit
f987569b0f
4 changed files with 62 additions and 1 deletions
  1. 2 0
      services/data/base_edb_lib.go
  2. 56 0
      services/data/edb_info.go
  3. 3 1
      services/task.go
  4. 1 0
      utils/constants.go

+ 2 - 0
services/data/base_edb_lib.go

@@ -98,6 +98,8 @@ func RefreshEdbData(edbInfoId, source int, edbCode, startDate string) (resp *mod
 		urlStr = "lt/refresh"
 	case utils.DATA_SOURCE_COAL:
 		urlStr = "coal/refresh"
+	case utils.DATA_SOURCE_GOOGLE_TRAVEL:
+		urlStr = "google_travel/refresh"
 	}
 	if urlStr == "" {
 		err = fmt.Errorf(fmt.Sprint("source:", source, ";未实现该指标的刷新接口,请联系管理员"))

+ 56 - 0
services/data/edb_info.go

@@ -1625,3 +1625,59 @@ func RefreshDataFromEic(wg *sync.WaitGroup) (err error) {
 	}
 	return err
 }
+
+
+// RefreshDataFromEic 刷新谷歌出行数据
+func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromGoogleTravel Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromGoogleTravel ErrMsg:"+err.Error(), 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_GOOGLE_TRAVEL)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.EdbCode, startDate)
+		if err != nil {
+			return errors.New("RefreshEdbData Err:" + err.Error())
+		}
+		if resp.Ret != 200 {
+			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		}
+		item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
+		if err != nil {
+			return err
+		}
+		if item != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
+			if err != nil {
+				return err
+			}
+		}
+	}
+	return err
+}

+ 3 - 1
services/task.go

@@ -234,7 +234,7 @@ func OneMinute(cont context.Context) (err error) {
 
 func RefreshData(cont context.Context) (err error) {
 	wg := sync.WaitGroup{}
-	wg.Add(10)
+	wg.Add(11)
 	//hour := time.Now().Hour()
 	//if hour != 0 {
 	//}
@@ -257,6 +257,8 @@ func RefreshData(cont context.Context) (err error) {
 	go data.RefreshDataFromLt(&wg)
 	//煤炭
 	go data.RefreshDataFromCoal(&wg)
+	//谷歌出行数据
+	go data.RefreshDataFromGoogleTravel(&wg)
 
 	wg.Wait()
 	////计算指标

+ 1 - 0
utils/constants.go

@@ -92,6 +92,7 @@ const (
 	DATA_SOURCE_COAL                            //煤炭网->26
 	DATA_SOURCE_PYTHON                          //python代码->27
 	DATA_SOURCE_PB_FINANCE                      //彭博财务数据->28
+	DATA_SOURCE_GOOGLE_TRAVEL                   //谷歌出行->29
 )
 
 //http://datawind.hzinsights.com:8040/hz_server