go-common/app/admin/main/up/service/data/service.go
2019-04-22 18:49:16 +08:00

63 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package data
import (
"go-common/app/admin/main/up/conf"
"go-common/app/admin/main/up/dao/data"
"go-common/app/admin/main/up/dao/tag"
"time"
)
//Service data service
type Service struct {
c *conf.Config
data *data.Dao
dtag *tag.Dao
}
//New get service
func New(c *conf.Config) *Service {
s := &Service{
c: c,
data: data.New(c),
dtag: tag.New(c),
}
return s
}
func beginningOfDay(t time.Time) time.Time {
d := time.Duration(-t.Hour()) * time.Hour
return t.Truncate(time.Hour).Add(d)
}
func getTuesday(now time.Time) time.Time {
t := beginningOfDay(now)
weekday := int(t.Weekday())
if weekday == 0 {
weekday = 7
}
d := time.Duration(-weekday+2) * 24 * time.Hour
return t.Truncate(time.Hour).Add(d)
}
func getSunday(now time.Time) time.Time {
t := beginningOfDay(now)
weekday := int(t.Weekday())
if weekday == 0 {
return t
}
d := time.Duration(7-weekday) * 24 * time.Hour
return t.Truncate(time.Hour).Add(d)
}
func getDateLastSunday() (date time.Time) {
t := time.Now()
td := getTuesday(t).Add(12 * time.Hour)
if t.Before(td) { //当前时间在本周二12点之前则取上上周日的数据否则取上周日的数据
date = getSunday(t.AddDate(0, 0, -14))
} else {
date = getSunday(t.AddDate(0, 0, -7))
}
//log.Info("current time (%s) tuesday (%s) sunday (%s)", t.Format("2006-01-02 15:04:05"), td, sd)
return
}