From 98f80c5af56b5b0bd936b6e619b4e7c4d8e6c156 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Mon, 8 Sep 2025 10:12:29 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E5=A2=9E=E5=8A=A0=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E9=80=9A=E7=9F=A5job?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/competiton_notice_job.rb | 49 +++++++++++++++++++++++++++ app/jobs/send_template_message_job.rb | 6 ++-- config/sidekiq_cron.yml | 5 +++ 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 app/jobs/competiton_notice_job.rb diff --git a/app/jobs/competiton_notice_job.rb b/app/jobs/competiton_notice_job.rb new file mode 100644 index 000000000..79e64b19b --- /dev/null +++ b/app/jobs/competiton_notice_job.rb @@ -0,0 +1,49 @@ +class CompetitionNoticeJob < ApplicationJob + queue_as :default + + def perform + submit_work_begin + submit_work_end + submit_work_result + end + + # "竞赛通知-进入提交作品状态" + def submit_work_begin + Rails.logger.info "__________#{Time.now.to_s}__submit_work_begin start______________________" + competitions = CompetitionInfo.where("enroll_date >=? and enroll_date <= ? ", (Time.now - 5.minutes).strftime('%Y-%m-%d %H:%M:00'), Time.now.strftime('%Y-%m-%d %H:%M:00')) + competitions.each do |c| + competition_users = CompetitionUser.where(competition_info_id: c.id) + competition_users.each do |team| + SendTemplateMessageJob.perform_later('CompetitionBegin', team.user_id, c.id) + end + end + Rails.logger.info "__________#{Time.now.to_s}__submit_work_begin end______________________" + end + + # "竞赛通知-截止提交作品时间前3天" + def submit_work_end + Rails.logger.info "__________#{Time.now.to_s}__submit_work_end start______________________" + competitions = CompetitionInfo.where("upload_date >=? and upload_date <= ? ", (Time.now + 3.days - 5.minutes).strftime('%Y-%m-%d %H:%M:00'), Time.now.strftime('%Y-%m-%d %H:%M:00')) + competitions.each do |c| + competition_users = CompetitionUser.where(competition_info_id: c.id) + competition_users.each do |team| + SendTemplateMessageJob.perform_later('CompetitionReview', team.user_id, c.id) + end + end + Rails.logger.info "__________#{Time.now.to_s}__submit_work_end end______________________" + end + + # "竞赛通知-报名的竞赛进入成绩公示阶段" + def submit_work_result + Rails.logger.info "__________#{Time.now.to_s}__submit_work_result start______________________" + competitions = CompetitionInfo.where("upload_date