|
@@ -1,216 +1,14 @@
|
|
package data_manage
|
|
package data_manage
|
|
|
|
|
|
import (
|
|
import (
|
|
- "encoding/json"
|
|
|
|
"eta/eta_mobile/utils"
|
|
"eta/eta_mobile/utils"
|
|
"fmt"
|
|
"fmt"
|
|
- "github.com/beego/beego/v2/client/orm"
|
|
|
|
- "sort"
|
|
|
|
"strconv"
|
|
"strconv"
|
|
- "strings"
|
|
|
|
"time"
|
|
"time"
|
|
|
|
|
|
"github.com/nosixtools/solarlunar"
|
|
"github.com/nosixtools/solarlunar"
|
|
)
|
|
)
|
|
|
|
|
|
-func GetEdbDataQuarterCount(edbInfoId int) (count int, err error) {
|
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
|
- hsql := `SELECT COUNT(1) AS count FROM edb_data_quarter WHERE edb_info_id=? `
|
|
|
|
- err = o.Raw(hsql, edbInfoId).QueryRow(&count)
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// 指标季度数据计算(公历转农历)
|
|
|
|
-func AddCalculateQuarterV2(edbInfoId, source int, edbCode string) (err error) {
|
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
|
- to, err := o.Begin()
|
|
|
|
- if err != nil {
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- defer func() {
|
|
|
|
- if err != nil {
|
|
|
|
- fmt.Println("Err:", err)
|
|
|
|
- _ = to.Rollback()
|
|
|
|
- } else {
|
|
|
|
- _ = to.Commit()
|
|
|
|
- }
|
|
|
|
- }()
|
|
|
|
-
|
|
|
|
- edbInfoIdStr := strconv.Itoa(edbInfoId)
|
|
|
|
- fmt.Println(edbInfoIdStr)
|
|
|
|
- //计算数据
|
|
|
|
- var condition string
|
|
|
|
- var pars []interface{}
|
|
|
|
- condition += " AND edb_info_id=? "
|
|
|
|
- pars = append(pars, edbInfoId)
|
|
|
|
- dataList, err := GetEdbDataListAll(condition, pars, source, 0)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var yearArr []int
|
|
|
|
- yearMap := make(map[int]int)
|
|
|
|
- dataMap := make(map[string]*EdbInfoSearchData)
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- //日其中获取年
|
|
|
|
- itemDate, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- year := itemDate.Year()
|
|
|
|
- if _, ok := yearMap[year]; !ok {
|
|
|
|
- yearArr = append(yearArr, year)
|
|
|
|
- yearMap[year] = year
|
|
|
|
- }
|
|
|
|
- dataMap[v.DataTime] = v
|
|
|
|
- }
|
|
|
|
- sort.Sort(sort.Reverse(sort.IntSlice(yearArr)))
|
|
|
|
- addSql := ` INSERT INTO edb_data_quarter(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
|
|
|
|
- var isAdd bool
|
|
|
|
- //yearLen := len(yearArr)
|
|
|
|
-
|
|
|
|
- fmt.Println(yearArr)
|
|
|
|
-
|
|
|
|
- for _, yv := range yearArr {
|
|
|
|
- fmt.Println(yv)
|
|
|
|
- }
|
|
|
|
- fmt.Println("isAdd", isAdd)
|
|
|
|
- if isAdd {
|
|
|
|
- addSql = strings.TrimRight(addSql, ",")
|
|
|
|
- utils.FileLog.Info(addSql)
|
|
|
|
- _, err = to.Raw(addSql).Exec()
|
|
|
|
- fmt.Println("err:", err)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// 指标季度数据计算(公历转农历)
|
|
|
|
-func AddCalculateQuarterV3(edbInfoId, source int, edbCode string, list []*EdbDataList) (err error) {
|
|
|
|
- var errMsg string
|
|
|
|
- defer func() {
|
|
|
|
- if errMsg != "" {
|
|
|
|
- fmt.Println("errMsg:", errMsg)
|
|
|
|
- }
|
|
|
|
- }()
|
|
|
|
- lunarDate := "2017-01-01" //农历
|
|
|
|
- fmt.Println(solarlunar.LunarToSolar(lunarDate, false))
|
|
|
|
-
|
|
|
|
- dataList, err := GetHzTestEdbdata()
|
|
|
|
- var yearArr []int
|
|
|
|
- yearMap := make(map[int]int)
|
|
|
|
- var cureentDate time.Time
|
|
|
|
- for k, v := range dataList {
|
|
|
|
- if k == 0 {
|
|
|
|
- cureentDate = v.Dt
|
|
|
|
- }
|
|
|
|
- year := v.Dt.Year()
|
|
|
|
- if _, ok := yearMap[year]; !ok {
|
|
|
|
- yearArr = append(yearArr, year)
|
|
|
|
- }
|
|
|
|
- yearMap[year] = year
|
|
|
|
- }
|
|
|
|
- //排序
|
|
|
|
- fmt.Println(yearArr)
|
|
|
|
- thisYear := cureentDate.Year()
|
|
|
|
- thisMonth := int(cureentDate.Month())
|
|
|
|
-
|
|
|
|
- sort.Ints(yearArr)
|
|
|
|
- fmt.Println("thisYear:", thisYear)
|
|
|
|
-
|
|
|
|
- result := new(HzTestEdbdataResult)
|
|
|
|
- for ky, vy := range yearArr {
|
|
|
|
- if thisMonth < 11 {
|
|
|
|
- currentYearCjnl := strconv.Itoa(thisYear) + "-01-01" //当前年份春节农历
|
|
|
|
- currentYearCjgl := solarlunar.LunarToSolar(currentYearCjnl, false) //当前年份春节公历
|
|
|
|
- currentYearCjglDate, err := time.Parse(utils.FormatDate, currentYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- fmt.Println(ky, vy)
|
|
|
|
- preYear := vy
|
|
|
|
- preYearCjnl := strconv.Itoa(preYear) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- day := currentYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
- fmt.Println("day:", day)
|
|
|
|
- items := new(HzTestEdbdataItems)
|
|
|
|
- dataLen := len(dataList)
|
|
|
|
- for i := dataLen - 1; i >= 0; i-- {
|
|
|
|
- v := dataList[i]
|
|
|
|
- newDate := v.Dt.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(thisYear) + "-11" + "-30"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
-
|
|
|
|
- if newDate.Before(selectDate) {
|
|
|
|
- item := new(HzTestEdbdata)
|
|
|
|
- item.TtradeCode = v.TtradeCode
|
|
|
|
- item.Dt = newDate
|
|
|
|
- item.Close = v.Close
|
|
|
|
- timestamp := item.Dt.UnixNano() / 1e6
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- } else {
|
|
|
|
- fmt.Println(ky, vy)
|
|
|
|
- nextYear := thisYear + 1
|
|
|
|
- nextYearCjnl := strconv.Itoa(nextYear) + "-01-01" //当前年份春节农历
|
|
|
|
- nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
|
|
|
|
-
|
|
|
|
- nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- preYear := vy
|
|
|
|
- preYearCjnl := strconv.Itoa(preYear) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
-
|
|
|
|
- fmt.Println("day:", day)
|
|
|
|
- items := new(HzTestEdbdataItems)
|
|
|
|
- dataLen := len(dataList)
|
|
|
|
- for i := dataLen - 1; i >= 0; i-- {
|
|
|
|
- v := dataList[i]
|
|
|
|
- newDate := v.Dt.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
-
|
|
|
|
- if newDate.Before(selectDate) {
|
|
|
|
- item := new(HzTestEdbdata)
|
|
|
|
- item.TtradeCode = v.TtradeCode
|
|
|
|
- item.Dt = newDate
|
|
|
|
- item.Close = v.Close
|
|
|
|
- timestamp := item.Dt.UnixNano() / 1e6
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- resultJson, err := json.Marshal(result)
|
|
|
|
- utils.FileLog.Info(string(resultJson))
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
// 指标季度数据计算(公历转农历)
|
|
// 指标季度数据计算(公历转农历)
|
|
func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err error) {
|
|
func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err error) {
|
|
var errMsg string
|
|
var errMsg string
|
|
@@ -387,203 +185,6 @@ func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-// AddCalculateQuarterV4ByUniqueCode 指标季度数据计算(公历转农历)
|
|
|
|
-func AddCalculateQuarterV4ByUniqueCode(dataList []*EdbDataListByUniqueCode) (result *EdbDataResult, err error) {
|
|
|
|
- var errMsg string
|
|
|
|
- defer func() {
|
|
|
|
- if errMsg != "" {
|
|
|
|
- fmt.Println("errMsg:", errMsg)
|
|
|
|
- }
|
|
|
|
- }()
|
|
|
|
-
|
|
|
|
- endDate := dataList[len(dataList)-1].DataTime
|
|
|
|
- endDateForm, err := time.Parse(utils.FormatDate, endDate)
|
|
|
|
- if err != nil {
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- thisMonth := int(endDateForm.Month())
|
|
|
|
-
|
|
|
|
- result = new(EdbDataResult)
|
|
|
|
- var yearArr []int
|
|
|
|
- yearMap := make(map[int]int)
|
|
|
|
- var cureentDate time.Time
|
|
|
|
- if thisMonth < 11 {
|
|
|
|
- for k, v := range dataList {
|
|
|
|
- dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- if k == len(dataList)-1 {
|
|
|
|
- cureentDate = dateTime
|
|
|
|
- }
|
|
|
|
- year := dateTime.Year()
|
|
|
|
- if _, ok := yearMap[year]; !ok {
|
|
|
|
- yearArr = append(yearArr, year)
|
|
|
|
- }
|
|
|
|
- yearMap[year] = year
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- for k, v := range dataList {
|
|
|
|
- dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- if k == len(dataList)-1 {
|
|
|
|
- cureentDate = dateTime
|
|
|
|
- }
|
|
|
|
- year := dateTime.Year() + 1
|
|
|
|
- if _, ok := yearMap[year]; !ok {
|
|
|
|
- yearArr = append(yearArr, year)
|
|
|
|
- }
|
|
|
|
- yearMap[year] = year
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //排序
|
|
|
|
- fmt.Println("yearArr:", yearArr)
|
|
|
|
- thisYear := cureentDate.Year()
|
|
|
|
- //thisMonth := int(cureentDate.Month())
|
|
|
|
-
|
|
|
|
- fmt.Println("thisMonth:", thisMonth)
|
|
|
|
- for ky, vy := range yearArr {
|
|
|
|
- fmt.Println("line 432:", ky, vy, thisYear, thisMonth)
|
|
|
|
- if thisMonth < 11 {
|
|
|
|
- currentYearCjnl := strconv.Itoa(thisYear) + "-01-01" //当前年份春节农历
|
|
|
|
- currentYearCjgl := solarlunar.LunarToSolar(currentYearCjnl, false) //当前年份春节公历
|
|
|
|
- currentYearCjglDate, err := time.Parse(utils.FormatDate, currentYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- preYear := vy
|
|
|
|
- preYearCjnl := strconv.Itoa(preYear) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- day := currentYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
-
|
|
|
|
- items := new(EdbDataItems)
|
|
|
|
- items.Year = preYear
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- newDate := dateTime.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(thisYear) + "-11" + "-30"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
- if newDate.Before(selectDate) || newDate == selectDate {
|
|
|
|
- timestamp := newDate.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = newDate.Format(utils.FormatDate)
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- } else {
|
|
|
|
- nextYear := thisYear + 1
|
|
|
|
- nextYearCjnl := strconv.Itoa(nextYear) + "-01-01" //当前年份春节农历
|
|
|
|
- nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
|
|
|
|
-
|
|
|
|
- nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- preYear := vy
|
|
|
|
- preYearCjnl := strconv.Itoa(preYear) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
-
|
|
|
|
- fmt.Println("day:", day, nextYearCjglDate, preYearCjglDate)
|
|
|
|
-
|
|
|
|
- items := new(EdbDataItems)
|
|
|
|
- items.Year = preYear - 1
|
|
|
|
- fmt.Println("preYear:", preYear, "ky:", ky, "yearArrLen:", len(yearArr))
|
|
|
|
- if ky+1 < len(yearArr) {
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- newDate := dateTime.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
-
|
|
|
|
- if newDate.Before(selectDate) || newDate == selectDate {
|
|
|
|
- timestamp := newDate.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = newDate.Format(utils.FormatDate)
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- } else {
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- timestamp := dateTime.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = dateTime.Format(utils.FormatDate)
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-type HzTestEdbdataResult struct {
|
|
|
|
- List []*HzTestEdbdataItems
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-type HzTestEdbdataItems struct {
|
|
|
|
- Items []*HzTestEdbdata
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-type HzTestEdbdata struct {
|
|
|
|
- TtradeCode string `orm:"column(TRADE_CODE)"`
|
|
|
|
- Dt time.Time `orm:"column(DT)"`
|
|
|
|
- Close float64 `orm:"column(CLOSE)"`
|
|
|
|
- ModifyTime time.Time `orm:"column(modify_time)"`
|
|
|
|
- DataTimestamp int64
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func GetHzTestEdbdata() (list []*HzTestEdbdata, err error) {
|
|
|
|
- o := orm.NewOrm()
|
|
|
|
- sql := ` SELECT * FROM hz_test_edbdata WHERE TRADE_CODE=? ORDER BY DT DESC `
|
|
|
|
- _, err = o.Raw(sql, "ST_0000577845").QueryRows(&list)
|
|
|
|
- return
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
type EdbDataItems struct {
|
|
type EdbDataItems struct {
|
|
Items []*EdbDataList
|
|
Items []*EdbDataList
|
|
Year int
|
|
Year int
|
|
@@ -594,132 +195,3 @@ type EdbDataItems struct {
|
|
type EdbDataResult struct {
|
|
type EdbDataResult struct {
|
|
List []*EdbDataItems
|
|
List []*EdbDataItems
|
|
}
|
|
}
|
|
-
|
|
|
|
-func AddCalculateQuarterV5(dataList []*EdbDataList) (result *EdbDataResult, err error) {
|
|
|
|
- var errMsg string
|
|
|
|
- defer func() {
|
|
|
|
- if errMsg != "" {
|
|
|
|
- fmt.Println("errMsg:", errMsg)
|
|
|
|
- }
|
|
|
|
- }()
|
|
|
|
- result = new(EdbDataResult)
|
|
|
|
- thisYear := time.Now().Year()
|
|
|
|
-
|
|
|
|
- endDate := dataList[len(dataList)-1].DataTime
|
|
|
|
- endDateForm, err := time.Parse(utils.FormatDate, endDate)
|
|
|
|
- if err != nil {
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- thisMonth := int(endDateForm.Month())
|
|
|
|
-
|
|
|
|
- fmt.Println(thisMonth)
|
|
|
|
- for i := 4; i > 0; i-- {
|
|
|
|
- if thisMonth < 11 {
|
|
|
|
- nextYear := thisYear
|
|
|
|
- nextYearCjnl := strconv.Itoa(nextYear) + "-01-01" //当前年份春节农历
|
|
|
|
- nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
|
|
|
|
- nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- preYearCjnl := strconv.Itoa(nextYear-i) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
- items := new(EdbDataItems)
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dataDate := v.DataTime
|
|
|
|
- dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
|
|
|
|
- if err != nil {
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- newDate := dataDateForm.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(nextYear) + "-11" + "-30"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
- if newDate.Before(selectDate) {
|
|
|
|
- timestamp := newDate.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = newDate.Format(utils.FormatDate)
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- fmt.Println(nextYear, "年春节阳历", nextYearCjgl)
|
|
|
|
- fmt.Println(i, "年前春节", preYearCjnl)
|
|
|
|
- fmt.Println(i, "年前春节阳历", preYearCjgl)
|
|
|
|
- fmt.Println("与", nextYear, "年春节相差天数", day, "____________")
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- } else {
|
|
|
|
- nextYear := thisYear + 1
|
|
|
|
- nextYearCjnl := strconv.Itoa(nextYear) + "-01-01" //当前年份春节农历
|
|
|
|
- nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
|
|
|
|
- nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成当前春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- preYearCjnl := strconv.Itoa(nextYear-i) + "-01-01" //之前年份春节农历
|
|
|
|
- preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
|
|
|
|
- preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
|
|
|
|
- if err != nil {
|
|
|
|
- errMsg = "生成历史年份春节失败,Err:" + err.Error()
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
|
|
|
|
- items := new(EdbDataItems)
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dataDate := v.DataTime
|
|
|
|
- dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
|
|
|
|
- if err != nil {
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- newDate := dataDateForm.AddDate(0, 0, int(day))
|
|
|
|
- selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
|
|
|
|
- selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
|
|
|
|
- if newDate.Before(selectDate) {
|
|
|
|
- timestamp := newDate.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = newDate.Format(utils.FormatDate)
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- fmt.Println(nextYear, "年春节阳历", nextYearCjgl)
|
|
|
|
- fmt.Println(i, "年前春节", preYearCjnl)
|
|
|
|
- fmt.Println(i, "年前春节阳历", preYearCjgl)
|
|
|
|
- fmt.Println("与", nextYear, "年春节相差天数", day, "____________")
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //合并第五组数据
|
|
|
|
- items := new(EdbDataItems)
|
|
|
|
- for _, v := range dataList {
|
|
|
|
- dataDate := v.DataTime
|
|
|
|
- dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
|
|
|
|
- if err != nil {
|
|
|
|
- return result, err
|
|
|
|
- }
|
|
|
|
- timestamp := dataDateForm.UnixNano() / 1e6
|
|
|
|
- item := new(EdbDataList)
|
|
|
|
- item.DataTime = v.DataTime
|
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
|
- item.Value = v.Value
|
|
|
|
- item.EdbDataId = v.EdbDataId
|
|
|
|
- item.DataTimestamp = timestamp
|
|
|
|
- items.Items = append(items.Items, item)
|
|
|
|
- }
|
|
|
|
- result.List = append(result.List, items)
|
|
|
|
- return
|
|
|
|
-}
|
|
|