forked from Trustie/forgeplus
fixed 增加竞赛通知job
This commit is contained in:
parent
f8bc5cdcec
commit
98f80c5af5
|
|
@ -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
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -38,3 +38,8 @@ sync_competition_tzb_user:
|
|||
cron: "0 */5 * * *"
|
||||
class: "SyncCompetitionTzbUserJob"
|
||||
queue: default
|
||||
|
||||
competition_notice:
|
||||
cron: "*/2 * * * *"
|
||||
class: "CompetitionNoticeJob"
|
||||
queue: message
|
||||
Loading…
Reference in New Issue