Ver código fonte

update price curve

tmp
shenjiachi 3 semanas atrás
pai
commit
f2075e639d
2 arquivos alterados com 29 adições e 8 exclusões
  1. +8
    -8
      app/hdl/hdl_points_center.go
  2. +21
    -0
      app/utils/time.go

+ 8
- 8
app/hdl/hdl_points_center.go Ver arquivo

@@ -352,12 +352,12 @@ func GetPriceCurve(c *gin.Context) {
var sql = fmt.Sprintf("SELECT price,date FROM `egg_energy_price` WHERE HOUR = 23 AND DATE >= \"%s\" AND DATE != \"%s\" ORDER BY DATE ASC ", date, now.Format("2006-01-02"))
results, _ := db.Db.QueryString(sql)
for _, v := range results {
tmpDate := utils.TimeParseStd(v["date"])
tmpDate := utils.TimeParseDateStd(v["date"])
yData = append(yData, v["price"])
xData = append(xData, tmpDate.Format("01-02"))
}
yData = append(yData, m.Price)
tmpDate := utils.TimeParseStd(m.Date)
tmpDate := utils.TimeParseDateStd(m.Date)
xData = append(xData, tmpDate.Format("01-02"))
break
case "2":
@@ -372,11 +372,11 @@ func GetPriceCurve(c *gin.Context) {
// continue
//}
yData = append(yData, results[0]["price"])
xData = append(xData, results[0]["hour"]+":00")
xData = append(xData, results[0]["date"]+" "+results[0]["hour"]+":00")
}
}
yData = append(yData, m.Price)
xData = append(xData, m.Hour+":00")
xData = append(xData, m.Date+" "+m.Hour+":00")
break
case "3":
var nums = 29
@@ -386,14 +386,14 @@ func GetPriceCurve(c *gin.Context) {
sql = fmt.Sprintf(sql, date)
results, _ := db.Db.QueryString(sql)
if results != nil {
tmpDate := utils.TimeParseStd(results[0]["date"])
year, week, _, _ := utils.GetWeekInfoByDate(results[0]["date"])
yData = append(yData, results[0]["price"])
xData = append(xData, tmpDate.Format("01-02"))
xData = append(xData, fmt.Sprintf("%s年%s周", year, week))
}
}
yData = append(yData, m.Price)
tmpDate := utils.TimeParseStd(m.Date)
xData = append(xData, tmpDate.Format("01-02"))
year, week, _, _ := utils.GetWeekInfoByDate(m.Date)
xData = append(xData, fmt.Sprintf("%s年%s周", year, week))
break
}



+ 21
- 0
app/utils/time.go Ver arquivo

@@ -71,6 +71,11 @@ func TimeParseStd(src string) time.Time {
return t
}

func TimeParseDateStd(src string) time.Time {
t, _ := TimeParse("2006-01-02", src)
return t
}

func TimeStdParseUnix(src string) int64 {
t, err := TimeParse("2006-01-02 15:04:05", src)
if err != nil {
@@ -237,3 +242,19 @@ func GetStartOfWeek(t time.Time) time.Time {
func GetZeroTime(d time.Time) time.Time {
return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
}

// GetWeekInfoByDate 获取周数、开始时间、结束时间
func GetWeekInfoByDate(dateStr string) (string, string, string, string) {
date := TimeParseDateStd(dateStr)
year, week := date.ISOWeek()
location, _ := time.LoadLocation("Asia/Shanghai")
// 计算给定年份1月1日是星期几
startOfYear := time.Date(year, time.January, 1, 0, 0, 0, 0, location)
daysOffset := int(startOfYear.Weekday()) - int(time.Monday) + 1
// 计算给定年份的第一周的开始日期
firstWeekStart := startOfYear.AddDate(0, 0, -daysOffset+1)
// 计算给定周的开始日期
weekStart := firstWeekStart.AddDate(0, 0, (week-1)*7)
weekEnd := weekStart.AddDate(0, 0, 6)
return IntToStr(year), IntToStr(week), weekStart.Format("2006-01-02"), weekEnd.Format("2006-01-02")
}

Carregando…
Cancelar
Salvar