From f6748fe5796bcd3f4ebaa4e5336b9ade0b8724bb Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 12:59:04 +0800 Subject: [PATCH 1/6] =?UTF-8?q?hotfix:=20=E4=B8=BAcommon.GetTermList?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/common/service/term.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/internal/common/service/term.go b/internal/common/service/term.go index b14b74df2..0e0d1597f 100644 --- a/internal/common/service/term.go +++ b/internal/common/service/term.go @@ -18,11 +18,11 @@ package service import ( "fmt" + "github.com/west2-online/fzuhelper-server/pkg/logger" "github.com/west2-online/fzuhelper-server/kitex_gen/common" "github.com/west2-online/fzuhelper-server/pkg/base" "github.com/west2-online/fzuhelper-server/pkg/constants" - "github.com/west2-online/fzuhelper-server/pkg/taskqueue" "github.com/west2-online/jwch" ) @@ -30,18 +30,29 @@ func (s *CommonService) GetTermList() (*jwch.SchoolCalendar, error) { if s.cache.IsKeyExist(s.ctx, constants.TermListKey) { list, err := s.cache.Common.GetTermListCache(s.ctx, constants.TermListKey) if err != nil { + logger.Errorf("service.GetTermList: term list cache read failed, key=%s, err=%v", constants.TermListKey, err) return nil, fmt.Errorf("service.GetTermList: Get term list cache failed %w", err) } + if list == nil { + logger.Errorf("service.GetTermList: term list cache returned nil, key=%s", constants.TermListKey) + } return list, nil } calendar, err := jwch.NewStudent().GetSchoolCalendar() if err = base.HandleJwchError(err); err != nil { + logger.Errorf("service.GetTermList: fetch school calendar failed, err=%v", err) return nil, fmt.Errorf("service.GetTermList: Get term list failed %w", err) } - s.taskQueue.Add(fmt.Sprintf("setTermListCache:%s", constants.TermListKey), taskqueue.QueueTask{Execute: func() error { - return s.cache.Common.SetTermListCache(s.ctx, constants.TermListKey, calendar) - }}) + if calendar == nil { + logger.Errorf("service.GetTermList: fetched school calendar is nil") + } + go func() { + err = s.cache.Common.SetTermListCache(s.ctx, constants.TermListKey, calendar) + if err != nil { + logger.Errorf("service.GetTermList: set term list cache failed %v", err) + } + }() return calendar, nil } From 0cbd4a44d17a259f90f23e8dc8532c063eb75d76 Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 13:53:46 +0800 Subject: [PATCH 2/6] dep: update jwch --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 901c0f020..56531dd6e 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/viper v1.21.0 github.com/spf13/viper/remote v1.20.1 github.com/upyun/go-sdk/v3 v3.0.4 - github.com/west2-online/jwch v0.2.42 + github.com/west2-online/jwch v0.4.23 github.com/west2-online/yjsy v0.0.10 go.baoshuo.dev/llmfunc v0.0.2 go.uber.org/zap v1.27.1 diff --git a/go.sum b/go.sum index cebd01c73..3f4a9e609 100644 --- a/go.sum +++ b/go.sum @@ -636,6 +636,8 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/west2-online/jwch v0.2.42 h1:/HXkTpNI6hD/6WAPVZ8iy70WqPr0Hz2I4gmBobAKDL4= github.com/west2-online/jwch v0.2.42/go.mod h1:DlIfTRlv5BY+4mt6PI/xzleEbEqAoUYi3xMffe4FC3A= +github.com/west2-online/jwch v0.4.23 h1:hGlTXLiPXMWiiyuETMSVxuSvKdW48+Qwdot7t/YZ63s= +github.com/west2-online/jwch v0.4.23/go.mod h1:DlIfTRlv5BY+4mt6PI/xzleEbEqAoUYi3xMffe4FC3A= github.com/west2-online/yjsy v0.0.10 h1:x51yWeoPjPKQ57XTmgR1PQYLx+L6tO2UXeqy/XflSio= github.com/west2-online/yjsy v0.0.10/go.mod h1:coXKeHqvNcFdNS2IFVZSHZ21fHnSWQXiY8AR/v4xSuE= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= From e065d899d224453534551013d9c95173d58f027d Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 14:09:22 +0800 Subject: [PATCH 3/6] fix: common.GetTermList error handle --- internal/common/service/term.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/internal/common/service/term.go b/internal/common/service/term.go index 0e0d1597f..bca61bf36 100644 --- a/internal/common/service/term.go +++ b/internal/common/service/term.go @@ -18,11 +18,11 @@ package service import ( "fmt" - "github.com/west2-online/fzuhelper-server/pkg/logger" "github.com/west2-online/fzuhelper-server/kitex_gen/common" "github.com/west2-online/fzuhelper-server/pkg/base" "github.com/west2-online/fzuhelper-server/pkg/constants" + "github.com/west2-online/fzuhelper-server/pkg/logger" "github.com/west2-online/jwch" ) @@ -33,8 +33,9 @@ func (s *CommonService) GetTermList() (*jwch.SchoolCalendar, error) { logger.Errorf("service.GetTermList: term list cache read failed, key=%s, err=%v", constants.TermListKey, err) return nil, fmt.Errorf("service.GetTermList: Get term list cache failed %w", err) } - if list == nil { + if list == nil || len(list.Terms) == 0 { logger.Errorf("service.GetTermList: term list cache returned nil, key=%s", constants.TermListKey) + return nil, fmt.Errorf("service.GetTermList: Get term list cache failed: cache returned nil") } return list, nil } @@ -44,9 +45,6 @@ func (s *CommonService) GetTermList() (*jwch.SchoolCalendar, error) { logger.Errorf("service.GetTermList: fetch school calendar failed, err=%v", err) return nil, fmt.Errorf("service.GetTermList: Get term list failed %w", err) } - if calendar == nil { - logger.Errorf("service.GetTermList: fetched school calendar is nil") - } go func() { err = s.cache.Common.SetTermListCache(s.ctx, constants.TermListKey, calendar) if err != nil { From ad2c4457160e72adf302b3556ab1e1173c2220e5 Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 14:11:32 +0800 Subject: [PATCH 4/6] fix: ci --- go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.sum b/go.sum index 3f4a9e609..9caea1c96 100644 --- a/go.sum +++ b/go.sum @@ -634,8 +634,6 @@ github.com/upyun/go-sdk/v3 v3.0.4 h1:2DCJa/Yi7/3ZybT9UCPATSzvU3wpPPxhXinNlb1Hi8Q github.com/upyun/go-sdk/v3 v3.0.4/go.mod h1:P/SnuuwhrIgAVRd/ZpzDWqCsBAf/oHg7UggbAxyZa0E= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/west2-online/jwch v0.2.42 h1:/HXkTpNI6hD/6WAPVZ8iy70WqPr0Hz2I4gmBobAKDL4= -github.com/west2-online/jwch v0.2.42/go.mod h1:DlIfTRlv5BY+4mt6PI/xzleEbEqAoUYi3xMffe4FC3A= github.com/west2-online/jwch v0.4.23 h1:hGlTXLiPXMWiiyuETMSVxuSvKdW48+Qwdot7t/YZ63s= github.com/west2-online/jwch v0.4.23/go.mod h1:DlIfTRlv5BY+4mt6PI/xzleEbEqAoUYi3xMffe4FC3A= github.com/west2-online/yjsy v0.0.10 h1:x51yWeoPjPKQ57XTmgR1PQYLx+L6tO2UXeqy/XflSio= From 4be143abe4ab0e27fda05711258ba20fbe7d7e84 Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 14:18:11 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/common/service/term.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/common/service/term.go b/internal/common/service/term.go index bca61bf36..577ee8bd4 100644 --- a/internal/common/service/term.go +++ b/internal/common/service/term.go @@ -40,6 +40,7 @@ func (s *CommonService) GetTermList() (*jwch.SchoolCalendar, error) { return list, nil } + // 校历页面不需要鉴权 calendar, err := jwch.NewStudent().GetSchoolCalendar() if err = base.HandleJwchError(err); err != nil { logger.Errorf("service.GetTermList: fetch school calendar failed, err=%v", err) From 5b29bee7e5abe55c0b0c641d4cf39c03454512d3 Mon Sep 17 00:00:00 2001 From: FantasyRL <1845983502@qq.com> Date: Fri, 24 Apr 2026 14:20:24 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=BAlist=E7=A9=BA=E6=97=B6=E4=B9=9F=E5=8E=BB=E6=9F=A5?= =?UTF-8?q?=E6=A0=A1=E5=8E=86=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/common/service/term.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/common/service/term.go b/internal/common/service/term.go index 577ee8bd4..8147ebc4d 100644 --- a/internal/common/service/term.go +++ b/internal/common/service/term.go @@ -33,11 +33,9 @@ func (s *CommonService) GetTermList() (*jwch.SchoolCalendar, error) { logger.Errorf("service.GetTermList: term list cache read failed, key=%s, err=%v", constants.TermListKey, err) return nil, fmt.Errorf("service.GetTermList: Get term list cache failed %w", err) } - if list == nil || len(list.Terms) == 0 { - logger.Errorf("service.GetTermList: term list cache returned nil, key=%s", constants.TermListKey) - return nil, fmt.Errorf("service.GetTermList: Get term list cache failed: cache returned nil") + if list != nil && len(list.Terms) > 0 { + return list, nil } - return list, nil } // 校历页面不需要鉴权