package services

import (
	"encoding/json"
	"eta/eta_task/models/data_manage"
	"eta/eta_task/utils"
	"fmt"
	"time"
)

// 谷歌出现数据
func SyncChangesVisitorsCovid() (err error) {
	var startDate string
	maxDate, err := data_manage.GetChangesVisitorsCovidMaxDate()
	if err != nil || maxDate.IsZero() {
		startDate = time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + " 00:00:00"
	} else {
		startDate = maxDate.AddDate(0, 0, 1).Format(utils.FormatDate) + " 00:00:00"
	}

	method := `index/list`
	data := make(map[string]interface{})
	data["Source"] = utils.DATA_SOURCE_GOOGLE_TRAVEL
	data["StartDate"] = startDate
	//data["EndDate"] = endDate
	result, err := HttpPost("SyncChangesVisitorsCovid", method, data)
	utils.FileLog.Info(result)
	fmt.Println(result)

	respObj := new(data_manage.ChangesVisitorsCovidIndexResp)
	err = json.Unmarshal([]byte(result), &respObj)
	if err != nil {
		return err
	}
	//获取所有指标信息  某一天的
	allIndex, err := data_manage.GetChangesVisitorsCovidAll(startDate)
	if err != nil {
		return
	}

	existIndexMap := make(map[uint64]*data_manage.BaseFromChangesVisitorsCovid)
	for _, v := range allIndex {
		existIndexMap[v.Id] = v
	}

	for _, zv := range respObj.Data {
		if _, ok := existIndexMap[zv.Id]; !ok {
			err := data_manage.AddBaseFromChangesVisitorsCovid(zv)
			if err != nil {
				fmt.Println("insert error:", err)
			}
		}
	}
	return err
}