diff --git a/internal/application/cpdaily/login/cas.go b/internal/application/cpdaily/login/cas.go index c148f95..6f4f038 100644 --- a/internal/application/cpdaily/login/cas.go +++ b/internal/application/cpdaily/login/cas.go @@ -58,7 +58,7 @@ func (c *CpdailyCasLogin) GetClient() *resty.Client { func (c *CpdailyCasLogin) Login(ctx context.Context, schoolDetail *school.SchoolDetailInfo, username, password string) { jar := cookiejar.NewPersistCookieJar() - c.client = c.client.SetCookieJar(jar).SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) + c.client.SetCookieJar(jar).SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) // 获取合法的登录URL loginUrl := getCasValidLoginUrl(schoolDetail) @@ -78,7 +78,7 @@ func (c *CpdailyCasLogin) Login(ctx context.Context, schoolDetail *school.School loginResponseUrl := loginPageResponse.RawResponse.Request.URL // 关闭client的重定向 - c.client = c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) + c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) // 解析登录页面 loginPage, err := goquery.NewDocumentFromReader(bytes.NewReader(loginPageBytes)) diff --git a/internal/application/cpdaily/login/iap.go b/internal/application/cpdaily/login/iap.go index a11b0b5..ef15500 100644 --- a/internal/application/cpdaily/login/iap.go +++ b/internal/application/cpdaily/login/iap.go @@ -34,7 +34,7 @@ func (c *CpdailyIapLogin) Login(ctx context.Context, schoolDetail *school.School loginUrl := getIapValidLoginUrl(schoolDetail) jar := cookiejar.NewPersistCookieJar() - c.client = c.client.SetCookieJar(jar). + c.client.SetCookieJar(jar). SetRedirectPolicy(resty.NoRedirectPolicy()) ltInfoResponse, err := c.client.R(). @@ -103,7 +103,7 @@ func (c *CpdailyIapLogin) Login(ctx context.Context, schoolDetail *school.School Wrap(err) }) - c.client = c.client.SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) + c.client.SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) finalLoginResponse, err := c.client.R(). WithContext(ctx). @@ -123,7 +123,7 @@ func (c *CpdailyIapLogin) Login(ctx context.Context, schoolDetail *school.School ActivateSession(ctx, schoolDetail.WecloudUrl, c.client) - c.client = c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) + c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) default: loginResponseBytes, err := io.ReadAll(loginResponse.Body) utils.OkOrPanic(err, func(err error) error { diff --git a/internal/application/cpdaily/login/nut.go b/internal/application/cpdaily/login/nut.go index 2007e3b..787d39e 100644 --- a/internal/application/cpdaily/login/nut.go +++ b/internal/application/cpdaily/login/nut.go @@ -29,7 +29,7 @@ type CpdailyNutLogin struct { func (c CpdailyNutLogin) Login(ctx context.Context, schoolDetail *school.SchoolDetailInfo, username, password string) { jar := cookiejar.NewPersistCookieJar() - c.client = c.client.SetCookieJar(jar).SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) + c.client.SetCookieJar(jar).SetRedirectPolicy(resty.FlexibleRedirectPolicy(20)) // 获取合法的登录URL loginUrl := getCasValidLoginUrl(schoolDetail) @@ -45,7 +45,7 @@ func (c CpdailyNutLogin) Login(ctx context.Context, schoolDetail *school.SchoolD utils.OkOrPanic(err) loginResponseUrl := loginPageResponse.RawResponse.Request.URL // 关闭client的重定向 - c.client = c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) + c.client.SetRedirectPolicy(resty.NoRedirectPolicy()) // 解析登录页面 loginPage, err := goquery.NewDocumentFromReader(bytes.NewReader(loginPageBytes)) diff --git a/internal/application/cpdaily/task/auto.go b/internal/application/cpdaily/task/auto.go index 1dc4319..abb3318 100644 --- a/internal/application/cpdaily/task/auto.go +++ b/internal/application/cpdaily/task/auto.go @@ -10,15 +10,14 @@ import ( "resty.dev/v3" ) -func GetCpdailyTaskService(ctx context.Context, Type cptask.TaskType, client *resty.Client, schoolId string) CpdailyTask { - detail := school.GetSchoolDetail(ctx, schoolId) +func GetCpdailyTaskService(ctx context.Context, Type cptask.TaskType, client *resty.Client, schoolDetail school.SchoolDetailInfo) CpdailyTask { switch Type { case cptask.TaskTypeCollection: - return NewCollectionTask(client, detail.WecloudUrl) + return NewCollectionTask(client, schoolDetail.WecloudUrl) case cptask.TaskTypeSign: - return NewAutoSignTask(client, detail.WecloudUrl) + return NewAutoSignTask(client, schoolDetail.WecloudUrl) case cptask.TaskTypeSleepCheck: - return NewSleepCheckTask(client, detail.WecloudUrl) + return NewSleepCheckTask(client, schoolDetail.WecloudUrl) default: utils.OkOrPanic(errors2.NewBusinessError(400, "不支持的任务类型")) } diff --git a/internal/framework/schedule/cpdaily_handler.go b/internal/framework/schedule/cpdaily_handler.go index dbed862..bf64d17 100644 --- a/internal/framework/schedule/cpdaily_handler.go +++ b/internal/framework/schedule/cpdaily_handler.go @@ -102,7 +102,7 @@ func (c *CpdailyTaskHandler) ProcessTask(ctx context.Context, task *asynq.Task) restyClient = login.GetClient(ctx, cookie) } // 获取任务执行handler - taskExecutor := task2.GetCpdailyTaskService(ctx, targetTask.TaskType, restyClient, targetTask.Edges.CpUser.SchoolID) + taskExecutor := task2.GetCpdailyTaskService(ctx, targetTask.TaskType, restyClient, schoolDetail) cpdailyRealTask := taskExecutor.QueryFormByTitle(ctx, targetTask.Title) diff --git a/internal/service/cpdaily/cptask.go b/internal/service/cpdaily/cptask.go index 25b9aba..bae8050 100644 --- a/internal/service/cpdaily/cptask.go +++ b/internal/service/cpdaily/cptask.go @@ -51,7 +51,7 @@ func (v CpTaskServiceV1) GetRecentTasks(ctx context.Context, req *v1.GetRecentTa db2.Global.CpUser.UpdateOne(cpUser).SetCookie(cookie).ExecX(ctx) client = login.GetClient(ctx, cookie) } - taskService := task.GetCpdailyTaskService(ctx, req.Type, client, cpUser.SchoolID) + taskService := task.GetCpdailyTaskService(ctx, req.Type, client, schoolDetail) titleList := taskService.GetRecentTaskTitle(ctx) return utils.SuccessWithData[[]string](titleList) } @@ -126,7 +126,7 @@ func (v CpTaskServiceV1) TaskFormData(ctx context.Context, req *v1.GetCpTaskForm db2.Global.CpUser.UpdateOneID(cpUser.ID).SetCookie(cookie).ExecX(ctx) client = login.GetClient(ctx, cookie) } - taskService := task.GetCpdailyTaskService(ctx, cpTask.TaskType, client, cpUser.SchoolID) + taskService := task.GetCpdailyTaskService(ctx, cpTask.TaskType, client, schoolDetail) formMap := taskService.QueryFormByTitle(ctx, cpTask.Title) formDetail := taskService.ParseFormJson(ctx, formMap) return utils.SuccessWithData[any](formDetail)