|
|
@ -25,6 +25,7 @@ var Visitor = visitorService{} |
|
|
|
type IVisitor interface { |
|
|
|
type IVisitor interface { |
|
|
|
VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) error |
|
|
|
VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) error |
|
|
|
VisitorStatistic(ctx context.Context, req *v1.VisitorAccessReq) (res *v1.VisitorAccessRes, err error) |
|
|
|
VisitorStatistic(ctx context.Context, req *v1.VisitorAccessReq) (res *v1.VisitorAccessRes, err error) |
|
|
|
|
|
|
|
GetDiffDays(t1, t2 time.Time) int |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (s *visitorService) VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) error { |
|
|
|
func (s *visitorService) VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) error { |
|
|
@ -64,10 +65,12 @@ func (s *visitorService) VisitorStatistic(ctx context.Context, req *v1.VisitorSt |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if req.StatisticType == consts.StatisticTypeDay { |
|
|
|
if req.StatisticType == consts.StatisticTypeDay { |
|
|
|
startDate := gconv.Int(gtime.New(req.EndDate).Format("Ymd")) |
|
|
|
diff := s.GetDiffDays(gtime.New(req.EndDate).Time, gtime.New(req.StartDate).Time) |
|
|
|
endDate := gconv.Int(gtime.New(req.StartDate).Format("Ymd")) |
|
|
|
duration := gconv.Int(diff) + 1 |
|
|
|
|
|
|
|
|
|
|
|
duration := startDate - endDate + 1 |
|
|
|
if duration > 30 { |
|
|
|
|
|
|
|
return nil, gerror.Newf("请选择30天内日期进行查询") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for i := 0; duration > i; i++ { |
|
|
|
for i := 0; duration > i; i++ { |
|
|
|
xAxis = append(xAxis, gtime.New(req.StartDate).AddDate(0, 0, i).Format("Y-m-d")) |
|
|
|
xAxis = append(xAxis, gtime.New(req.StartDate).AddDate(0, 0, i).Format("Y-m-d")) |
|
|
@ -147,6 +150,14 @@ func (s *visitorService) VisitorStatistic(ctx context.Context, req *v1.VisitorSt |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// GetDiffDays 获取两个时间相差的天数,0表同一天,正数表t1>t2,负数表t1<t2
|
|
|
|
|
|
|
|
func (s *visitorService) GetDiffDays(t1, t2 time.Time) int { |
|
|
|
|
|
|
|
t1 = time.Date(t1.Year(), t1.Month(), t1.Day(), 0, 0, 0, 0, time.Local) |
|
|
|
|
|
|
|
t2 = time.Date(t2.Year(), t2.Month(), t2.Day(), 0, 0, 0, 0, time.Local) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return int(t1.Sub(t2).Hours() / 24) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (s *visitorService) getYearStatistic(ctx context.Context, lastYearNum int, condition g.Map) (xAxis g.SliceStr, yAxis g.SliceStr) { |
|
|
|
func (s *visitorService) getYearStatistic(ctx context.Context, lastYearNum int, condition g.Map) (xAxis g.SliceStr, yAxis g.SliceStr) { |
|
|
|
for ; 1 <= lastYearNum; lastYearNum-- { |
|
|
|
for ; 1 <= lastYearNum; lastYearNum-- { |
|
|
|
//获取当年第一天
|
|
|
|
//获取当年第一天
|
|
|
|