校验修改

master
dlcios 10 months ago
parent 8cd82147f5
commit 903868d4ed
  1. 8
      internal/controller/visitor.go
  2. 17
      internal/service/visitor.go

@ -3,6 +3,8 @@ package controller
import ( import (
"context" "context"
"github.com/gogf/gf/v2/errors/gerror" "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/api/v1"
"vistor/internal/service" "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) { 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) res, err = service.Visitor.VisitorStatistic(ctx, req)
if err != nil { if err != nil {
return nil, gerror.Newf("系统繁忙,请稍后再试") return nil, gerror.Newf("系统繁忙,请稍后再试")

@ -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-- {
//获取当年第一天 //获取当年第一天

Loading…
Cancel
Save