Files
2023-01-25 16:16:36 +08:00

42 lines
958 B
Go

package service
import (
"crm/dao"
"crm/models"
"time"
)
type DashboardService struct {
dashboardDao *dao.DashboardDao
}
func NewDashboardService() *DashboardService {
return &DashboardService{
dashboardDao: dao.NewDashboardDao(),
}
}
// 数据汇总
func (d *DashboardService) Summary(uid int64, days int) models.DashboardSum {
ds := d.dashboardDao.Count(uid, days)
now := time.Now().Unix()
ds.Amount = make([]float64, days)
ds.Date = make([]string, days)
for i, dd := 0, days; i < days; i++ {
day := now - (int64(dd) * 24 * 60 * 60)
start, end := dayRange(day)
ds.Amount[i] = d.dashboardDao.AmountSum(start, end, uid)
ds.Date[i] = time.Unix(day, 0).Format("01-02")
dd--
}
return ds
}
// 获取某一天的时间范围
func dayRange(day int64) (int64, int64) {
t := time.Unix(day, 0)
start := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
end := start.AddDate(0, 0, 1)
return start.Unix(), end.Unix()
}