fixed 增加竞赛通知job

This commit is contained in:
xxq250 2025-09-08 10:12:29 +08:00
parent f8bc5cdcec
commit 98f80c5af5
3 changed files with 57 additions and 3 deletions

View File

@ -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 <?", Time.now)
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_result end______________________"
end
end

View File

@ -381,7 +381,7 @@ class SendTemplateMessageJob < ApplicationJob
when 'CompetitionBegin'
user_id, competition_id = args[0], args[1]
user = User.find_by_id(user_id)
project = Project.find_by_sql("select *,title as name from competitions where id=#{competition_id}")
project = Project.find_by_sql("select *,title as name from competition_infos where id=#{competition_id}")
return unless user.present? && project.present?
receivers = User.where(id: user_id)
receivers_string, content, notification_url = MessageTemplate::CompetitionBegin.get_message_content(receivers, project.first)
@ -389,7 +389,7 @@ class SendTemplateMessageJob < ApplicationJob
when 'CompetitionReview'
user_id, competition_id = args[0], args[1]
user = User.find_by_id(user_id)
project = Project.find_by_sql("select *,title as name from competitions where id=#{competition_id}")
project = Project.find_by_sql("select *,title as name from competition_infos where id=#{competition_id}")
return unless user.present? && project.present?
receivers = User.where(id: user_id)
receivers_string, content, notification_url = MessageTemplate::CompetitionReview.get_message_content(receivers, project.first)
@ -397,7 +397,7 @@ class SendTemplateMessageJob < ApplicationJob
when 'CompetitionResult'
user_id, competition_id = args[0], args[1]
user = User.find_by_id(user_id)
project = Project.find_by_sql("select *,title as name from competitions where id=#{competition_id}")
project = Project.find_by_sql("select *,title as name from competition_infos where id=#{competition_id}")
return unless user.present? && project.present?
receivers = User.where(id: user_id)
receivers_string, content, notification_url = MessageTemplate::CompetitionResult.get_message_content(receivers, project.first)

View File

@ -38,3 +38,8 @@ sync_competition_tzb_user:
cron: "0 */5 * * *"
class: "SyncCompetitionTzbUserJob"
queue: default
competition_notice:
cron: "*/2 * * * *"
class: "CompetitionNoticeJob"
queue: message