From 37a64e6972df2b705670774047c65f9a0ce60ac1 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 03 七月 2024 16:15:10 +0800 Subject: [PATCH] 月度统计定时任务按设定的时间查询相应数据&修复若干bug --- service/system_config.go | 33 +++++++++++++++++++++++++++++++-- 1 files changed, 31 insertions(+), 2 deletions(-) diff --git a/service/system_config.go b/service/system_config.go index daab2d6..e11412e 100644 --- a/service/system_config.go +++ b/service/system_config.go @@ -2,6 +2,7 @@ import ( "errors" + "fmt" "github.com/spf13/cast" "gorm.io/gorm" "strings" @@ -65,9 +66,37 @@ func (slf SystemConfigService) GetInventoryCutOffPoint() (day int, timeStr string, err error) { config, err := models.NewSystemConfigSearch().SetConfigType(constvar.SystemConfigTypeInventoryCutOffPoint).First() - if err != nil { - err = errors.New("搴撳瓨缁撶畻鏃堕棿鐐规湭閰嶇疆") + if err == gorm.ErrRecordNotFound { + config = &models.SystemConfig{ + Val: "01-00:01", + } + } + if err != nil && err != gorm.ErrRecordNotFound { return } return slf.CheckInventoryCutOffPoint(config.Val) } + +func (slf SystemConfigService) GetInventoryCutOffTime() (beginTime, endTime time.Time, err error) { + day, timeStr, err := slf.GetInventoryCutOffPoint() + // 鍋囪褰撳墠鏃堕棿 + currentTime := time.Now() + // 瑙f瀽缁欏畾鐨勬椂闂村瓧绗︿覆涓� time 瀵硅薄 + parsedTime, err := time.Parse("15:04", timeStr) + if err != nil { + fmt.Println("鏃堕棿瑙f瀽閿欒:", err) + return + } + + // 鍒涘缓涓�涓棩鏈熸椂闂村璞★紝鍋囪鍦ㄥ綋鍓嶆湀鐨勭粰瀹氭棩鍜屾椂闂� + endTime = time.Date(currentTime.Year(), currentTime.Month(), day, parsedTime.Hour(), parsedTime.Minute(), 0, 0, currentTime.Location()) + + // 濡傛灉缁欏畾鐨勬棩鏈熸椂闂村湪褰撳墠鏃堕棿涔嬪悗锛屾垜浠渶瑕佸洖鍒颁笂涓湀 + if endTime.After(currentTime) { + lastMonth := currentTime.AddDate(0, -1, 0) + endTime = time.Date(lastMonth.Year(), lastMonth.Month(), day, parsedTime.Hour(), parsedTime.Minute(), 0, 0, currentTime.Location()) + } + lastMonth := endTime.AddDate(0, -1, 0) + beginTime = time.Date(lastMonth.Year(), lastMonth.Month(), day, parsedTime.Hour(), parsedTime.Minute(), 0, 0, currentTime.Location()) + return beginTime, endTime, nil +} -- Gitblit v1.8.0