diff --git a/internal/controller/visitor.go b/internal/controller/visitor.go index b34f93f..39d24da 100644 --- a/internal/controller/visitor.go +++ b/internal/controller/visitor.go @@ -3,6 +3,8 @@ package controller import ( "context" "github.com/gogf/gf/v2/errors/gerror" + "github.com/gogf/gf/v2/os/gtime" + "github.com/gogf/gf/v2/util/gconv" "vistor/api/v1" "vistor/internal/service" ) @@ -22,6 +24,12 @@ func (c *cVisitor) VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) } func (c *cVisitor) VisitorStatistic(ctx context.Context, req *v1.VisitorStatisticReq) (res *v1.VisitorStatisticRes, err error) { + diff := service.Visitor.GetDiffDays(gtime.New(req.EndDate).Time, gtime.New(req.StartDate).Time) + duration := gconv.Int(diff) + 1 + if duration > 30 { + return nil, gerror.Newf("请选择30天内日期进行查询") + } + res, err = service.Visitor.VisitorStatistic(ctx, req) if err != nil { return nil, gerror.Newf("系统繁忙,请稍后再试") diff --git a/internal/service/visitor.go b/internal/service/visitor.go index 60945aa..3c0e3ad 100644 --- a/internal/service/visitor.go +++ b/internal/service/visitor.go @@ -25,6 +25,7 @@ var Visitor = visitorService{} type IVisitor interface { VisitorAccess(ctx context.Context, req *v1.VisitorAccessReq) 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 { @@ -64,10 +65,12 @@ func (s *visitorService) VisitorStatistic(ctx context.Context, req *v1.VisitorSt } if req.StatisticType == consts.StatisticTypeDay { - startDate := gconv.Int(gtime.New(req.EndDate).Format("Ymd")) - endDate := gconv.Int(gtime.New(req.StartDate).Format("Ymd")) + diff := s.GetDiffDays(gtime.New(req.EndDate).Time, gtime.New(req.StartDate).Time) + duration := gconv.Int(diff) + 1 - duration := startDate - endDate + 1 + if duration > 30 { + return nil, gerror.Newf("请选择30天内日期进行查询") + } for i := 0; duration > i; i++ { 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 } +// GetDiffDays 获取两个时间相差的天数,0表同一天,正数表t1>t2,负数表t1