diff --git a/internal/application/cpdaily/login/common.go b/internal/application/cpdaily/login/common.go index 7010b08..07af8b2 100644 --- a/internal/application/cpdaily/login/common.go +++ b/internal/application/cpdaily/login/common.go @@ -87,10 +87,7 @@ func ActivateSession(ctx context.Context, host string, client *resty.Client) { } func CookieEnabled(ctx context.Context, host string, client *resty.Client) bool { - client.SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) - defer func() { - client.SetRedirectPolicy(resty.NoRedirectPolicy()) - }() + client.SetRedirectPolicy(resty.NoRedirectPolicy()) host = strings.TrimSuffix(host, "/") sessionResponse, err := client.R(). WithContext(ctx). @@ -98,13 +95,7 @@ func CookieEnabled(ctx context.Context, host string, client *resty.Client) bool Post(fmt.Sprintf("%s/wec-counselor-attendance-apps/student/attendance/getStuAttendacesInOneDay", host)) utils.OkOrPanic(err) - defer sessionResponse.Body.Close() - - if !sessionResponse.IsSuccess() { - return sessionResponse.StatusCode() == 405 - } - responseContentType := sessionResponse.Header().Get("Content-Type") - return strings.Contains(responseContentType, "json") + return sessionResponse.StatusCode() != 302 } func GetClient(ctx context.Context, cookie string) *resty.Client { diff --git a/internal/framework/schedule/cpdaily_handler.go b/internal/framework/schedule/cpdaily_handler.go index 6d9631d..b9a776a 100644 --- a/internal/framework/schedule/cpdaily_handler.go +++ b/internal/framework/schedule/cpdaily_handler.go @@ -94,14 +94,13 @@ func (c *CpdailyTaskHandler) ProcessTask(ctx context.Context, task *asynq.Task) schoolDetail := school.GetSchoolDetail(ctx, targetTask.Edges.CpUser.SchoolID) cookie := targetTask.Edges.CpUser.Cookie restyClient := login.GetClient(ctx, cookie) - //if !login.CookieEnabled(ctx, schoolDetail.WecloudUrl, restyClient) { - // 定时任务强制登录并更新cookie - loginExecutor := login.GetCpdailyLoginBySchoolInfo(ctx, &schoolDetail) - loginExecutor.Login(ctx, &schoolDetail, targetTask.Edges.CpUser.Username, targetTask.Edges.CpUser.Password) - cookie = loginExecutor.GetCookieString() - db.Global.CpUser.UpdateOneID(targetTask.Edges.CpUser.ID).SetCookie(cookie).ExecX(ctx) - restyClient = login.GetClient(ctx, cookie) - //} + if !login.CookieEnabled(ctx, schoolDetail.WecloudUrl, restyClient) { + loginExecutor := login.GetCpdailyLoginBySchoolInfo(ctx, &schoolDetail) + loginExecutor.Login(ctx, &schoolDetail, targetTask.Edges.CpUser.Username, targetTask.Edges.CpUser.Password) + cookie = loginExecutor.GetCookieString() + db.Global.CpUser.UpdateOneID(targetTask.Edges.CpUser.ID).SetCookie(cookie).ExecX(ctx) + restyClient = login.GetClient(ctx, cookie) + } // 获取任务执行handler taskExecutor := task2.GetCpdailyTaskService(ctx, targetTask.TaskType, restyClient, schoolDetail)