竞赛通知api
This commit is contained in:
parent
d6633cb73a
commit
9ba00b21c9
|
@ -0,0 +1,21 @@
|
||||||
|
class NoticesController < ApplicationController
|
||||||
|
|
||||||
|
def create
|
||||||
|
tip_exception("参数有误") if params["source"].blank?
|
||||||
|
user_id = params[:user_id]
|
||||||
|
|
||||||
|
if params["source"] == "CompetitionBegin"
|
||||||
|
competition_id = params[:competition_id]
|
||||||
|
SendTemplateMessageJob.perform_later('CompetitionBegin', user_id, competition_id)
|
||||||
|
elsif params["source"] == "CompetitionResult"
|
||||||
|
competition_id = params[:competition_id]
|
||||||
|
SendTemplateMessageJob.perform_later('CompetitionResult', user_id, competition_id)
|
||||||
|
elsif params["source"] == "CompetitionView"
|
||||||
|
competition_id = params[:competition_id]
|
||||||
|
SendTemplateMessageJob.perform_later('CompetitionView', user_id, competition_id)
|
||||||
|
else
|
||||||
|
tip_exception("#{params["source"]}未配置")
|
||||||
|
end
|
||||||
|
render_ok
|
||||||
|
end
|
||||||
|
end
|
|
@ -326,6 +326,14 @@ class SendTemplateMessageJob < ApplicationJob
|
||||||
receivers_email_string, email_title, email_content = MessageTemplate::TeamLeft.get_email_message_content(receiver, organization, team)
|
receivers_email_string, email_title, email_content = MessageTemplate::TeamLeft.get_email_message_content(receiver, organization, team)
|
||||||
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
|
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
|
||||||
end
|
end
|
||||||
|
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}")
|
||||||
|
return unless user.present? && project.present?
|
||||||
|
receivers = User.where(id: user_id)
|
||||||
|
receivers_string, content, notification_url = MessageTemplate::TeamLeft.get_message_content(receivers, nil, nil)
|
||||||
|
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {user_id: user_id, competition_name: project.first&.name, identifier: project.first&.identifier})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -74,6 +74,11 @@ class MessageTemplate < ApplicationRecord
|
||||||
self.create(type: 'MessageTemplate::TeamJoined', sys_notice: '你已被拉入组织 <b>{organization}</b> 的 <b>{team}</b> 团队,拥有<b>{role}</b>权限', email: email_html, email_title: "#{PLATFORM}: 在 {organization} 组织你的账号有权限变更", notification_url: '{baseurl}/{login}')
|
self.create(type: 'MessageTemplate::TeamJoined', sys_notice: '你已被拉入组织 <b>{organization}</b> 的 <b>{team}</b> 团队,拥有<b>{role}</b>权限', email: email_html, email_title: "#{PLATFORM}: 在 {organization} 组织你的账号有权限变更", notification_url: '{baseurl}/{login}')
|
||||||
email_html = File.read("#{email_template_html_dir}/team_left.html")
|
email_html = File.read("#{email_template_html_dir}/team_left.html")
|
||||||
self.create(type: 'MessageTemplate::TeamLeft', sys_notice: '你已被移出组织 <b>{organization}</b> 的 <b>{team}</b> 团队', email: email_html, email_title: "#{PLATFORM}: 在 {organization} 组织你的账号有权限变更", notification_url: '{baseurl}/{login}')
|
self.create(type: 'MessageTemplate::TeamLeft', sys_notice: '你已被移出组织 <b>{organization}</b> 的 <b>{team}</b> 团队', email: email_html, email_title: "#{PLATFORM}: 在 {organization} 组织你的账号有权限变更", notification_url: '{baseurl}/{login}')
|
||||||
|
|
||||||
|
# 竞赛通知
|
||||||
|
self.create(type: 'MessageTemplate::CompetitionBegin', sys_notice: '你报名的竞赛 <b>{competition_name}</b> 已进入比赛进行阶段,可在此期间提交作品', notification_url: '{to_url}')
|
||||||
|
self.create(type: 'MessageTemplate::CompetitionResult', sys_notice: '你报名的竞赛 <b>{competition_name}</b> 已进入成绩公示阶段,可查看排行榜信息', notification_url: '{to_url}')
|
||||||
|
self.create(type: 'MessageTemplate::CompetitionView', sys_notice: '你报名的竞赛 <b>{competition_name}</b> 距作品提交结束日期仅剩3天,若尚未提交参赛作品,请尽快提交', notification_url: '{to_url}')
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sys_notice
|
def self.sys_notice
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: message_templates
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# sys_notice :text(65535)
|
||||||
|
# email :text(65535)
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# notification_url :string(255)
|
||||||
|
# email_title :string(255)
|
||||||
|
#
|
||||||
|
|
||||||
|
# 报名的竞赛进入比赛进行阶段
|
||||||
|
# 触发场景
|
||||||
|
# 赛队成员报名的竞赛已进入比赛进行阶段
|
||||||
|
# 通知文案格式
|
||||||
|
# 你报名的竞赛 xxx 已进入比赛进行阶段,可在此阶段提交作品
|
||||||
|
# 时间:x分钟/小时/天/月前
|
||||||
|
# 通知文案示例
|
||||||
|
# 你报名的竞赛 代码审查大赛 已进入比赛进行阶段,可在此期间提交作品
|
||||||
|
# 时间:3小时前
|
||||||
|
# 点击通知跳转页面
|
||||||
|
# 点击此通知将跳转到代码审查大赛详情页:
|
||||||
|
# http://117.50.100.12:8080/competitions/lgw7st/home
|
||||||
|
class MessageTemplate::CompetitionBegin < MessageTemplate
|
||||||
|
|
||||||
|
# MessageTemplate::FollowedTip.get_message_content(User.where(login: 'yystopf'), User.last)
|
||||||
|
def self.get_message_content(receivers, competition)
|
||||||
|
return receivers_string(receivers), sys_notice.to_s.gsub('{competition_name}', competition&.name), notification_url.to_s.gsub('{to_url}', "/competitions/#{competition.identifier}/home")
|
||||||
|
# rescue
|
||||||
|
# return '', '', ''
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,35 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: message_templates
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# sys_notice :text(65535)
|
||||||
|
# email :text(65535)
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# notification_url :string(255)
|
||||||
|
# email_title :string(255)
|
||||||
|
#
|
||||||
|
|
||||||
|
# 报名的竞赛进入成绩公示阶段
|
||||||
|
# 触发场景
|
||||||
|
# 赛队成员报名的竞赛已进入成绩公示阶段
|
||||||
|
# 通知文案格式
|
||||||
|
# 你报名的竞赛 xxx 已进入成绩公示阶段,可查看排行榜信息
|
||||||
|
# 时间:x分钟/小时/天/月前
|
||||||
|
# 通知文案示例
|
||||||
|
# 你报名的竞赛 代码审查大赛 已进入成绩公示阶段,可查看排行榜信息
|
||||||
|
# 时间:3小时前
|
||||||
|
# 点击通知跳转页面
|
||||||
|
# 点击此通知将跳转到代码审查大赛详情页:
|
||||||
|
# http://117.50.100.12:8080/competitions/lgw7st/home
|
||||||
|
class MessageTemplate::CompetitionResult < MessageTemplate
|
||||||
|
|
||||||
|
# MessageTemplate::FollowedTip.get_message_content(User.where(login: 'yystopf'), User.last)
|
||||||
|
def self.get_message_content(receivers, competition)
|
||||||
|
return receivers_string(receivers), sys_notice.gsub('{competition_name}', competition&.title), notification_url.gsub('{to_url}', "/competitions/#{competition.identifier}/home")
|
||||||
|
rescue
|
||||||
|
return '', '', ''
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,35 @@
|
||||||
|
# == Schema Information
|
||||||
|
#
|
||||||
|
# Table name: message_templates
|
||||||
|
#
|
||||||
|
# id :integer not null, primary key
|
||||||
|
# type :string(255)
|
||||||
|
# sys_notice :text(65535)
|
||||||
|
# email :text(65535)
|
||||||
|
# created_at :datetime not null
|
||||||
|
# updated_at :datetime not null
|
||||||
|
# notification_url :string(255)
|
||||||
|
# email_title :string(255)
|
||||||
|
#
|
||||||
|
|
||||||
|
# 报名的竞赛比赛结束时间临近
|
||||||
|
# 触发场景
|
||||||
|
# 赛队成员报名的竞赛阶段处于比赛进行中,且距比赛结束日期仅剩3天
|
||||||
|
# 通知文案格式
|
||||||
|
# 你报名的竞赛 xxx 距作品提交结束日期仅剩3天,若尚未提交参赛作品,请尽快提交
|
||||||
|
# 时间:x分钟/小时/天/月前
|
||||||
|
# 通知文案示例
|
||||||
|
# 你报名的竞赛 代码审查大赛 距作品提交结束日期仅剩3天,若尚未提交参赛作品,请尽快提交
|
||||||
|
# 时间:3小时前
|
||||||
|
# 点击通知跳转页面
|
||||||
|
# 点击此通知将跳转到代码审查大赛详情页:
|
||||||
|
# http://117.50.100.12:8080/competitions/lgw7st/home
|
||||||
|
class MessageTemplate::CompetitionView < MessageTemplate
|
||||||
|
|
||||||
|
# MessageTemplate::FollowedTip.get_message_content(User.where(login: 'yystopf'), User.last)
|
||||||
|
def self.get_message_content(receivers, competition)
|
||||||
|
return receivers_string(receivers), sys_notice.gsub('{competition_name}', competition&.title), notification_url.gsub('{to_url}', "/competitions/#{competition.identifier}/home")
|
||||||
|
rescue
|
||||||
|
return '', '', ''
|
||||||
|
end
|
||||||
|
end
|
1923
config/routes.rb
1923
config/routes.rb
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue