fix error
This commit is contained in:
parent
2656b83ae8
commit
6c4c028dcc
|
@ -47,26 +47,8 @@ def initialize
|
||||||
|
|
||||||
def send_test_email
|
def send_test_email
|
||||||
paper_criteria = PaperCriteria.find(params[:id])
|
paper_criteria = PaperCriteria.find(params[:id])
|
||||||
papers = paper_criteria.epaper_topics.group_by(&:category)
|
|
||||||
papers_data = []
|
|
||||||
page = Page.where(:module => "e_paper").first.url rescue ""
|
page = Page.where(:module => "e_paper").first.url rescue ""
|
||||||
papers_sorted = get_all_categories.map do |v|
|
papers_data = Admin::EpaperHelper.get_paper_data(paper_criteria)
|
||||||
tmp = papers.select{|cat,topics| (cat.id==v.id rescue false)}
|
|
||||||
if tmp.count==0
|
|
||||||
tmp = nil
|
|
||||||
end
|
|
||||||
tmp
|
|
||||||
end.compact
|
|
||||||
papers_sorted.each do |paper|
|
|
||||||
paper.each do |category, topics|
|
|
||||||
topics_data = Array(topics).compact
|
|
||||||
papers_data << {
|
|
||||||
"category_title" => (category.title rescue nil),
|
|
||||||
"category" => category,
|
|
||||||
"topics" => topics_data
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
email = Email.new(:mail_subject => paper_criteria.sending_title, :mail_lang => :zh_tw, :template => "admin/e_paper_criterias/emailer", :template_data => {"paper" => paper_criteria, "page" => "http://" + request.host_with_port + page, "siteurl" => "http://" + request.host_with_port ,"papers_data" => papers_data }, :mail_to => params[:email])
|
email = Email.new(:mail_subject => paper_criteria.sending_title, :mail_lang => :zh_tw, :template => "admin/e_paper_criterias/emailer", :template_data => {"paper" => paper_criteria, "page" => "http://" + request.host_with_port + page, "siteurl" => "http://" + request.host_with_port ,"papers_data" => papers_data }, :mail_to => params[:email])
|
||||||
email.deliver
|
email.deliver
|
||||||
render :json => {"success" => true}.to_json
|
render :json => {"success" => true}.to_json
|
||||||
|
@ -74,7 +56,13 @@ def initialize
|
||||||
|
|
||||||
def send_newsletter
|
def send_newsletter
|
||||||
Orbit::Application.load_tasks
|
Orbit::Application.load_tasks
|
||||||
rake = Rake::Task['epaper:send_email'].execute(OpenStruct.new({:paper_criteria_id => params[:id], :domain => request.host_with_port}))
|
Thread.new do
|
||||||
|
begin
|
||||||
|
rake = Rake::Task['epaper:send_email'].execute(OpenStruct.new({:paper_criteria_id => params[:id], :domain => request.host_with_port}))
|
||||||
|
rescue => e
|
||||||
|
puts [e,e.backtrace]
|
||||||
|
end
|
||||||
|
end
|
||||||
# rake = Rake::Task['epaper:send_email'].invoke([params[:id], request.host_with_port])
|
# rake = Rake::Task['epaper:send_email'].invoke([params[:id], request.host_with_port])
|
||||||
render :json => {"success" => true}.to_json
|
render :json => {"success" => true}.to_json
|
||||||
end
|
end
|
||||||
|
@ -84,12 +72,4 @@ def initialize
|
||||||
def paper_criteria_params
|
def paper_criteria_params
|
||||||
params.require(:paper_criteria).permit!
|
params.require(:paper_criteria).permit!
|
||||||
end
|
end
|
||||||
def get_all_categories
|
|
||||||
app = ModuleApp.where(key: 'e_paper').first
|
|
||||||
asc_flag = app.asc rescue true
|
|
||||||
app.categories.enabled.sort_by do |category|
|
|
||||||
tmp = category.sort_number.to_i rescue 0
|
|
||||||
asc_flag ? tmp : -tmp
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
|
@ -0,0 +1,33 @@
|
||||||
|
module Admin::EpaperHelper
|
||||||
|
extend self
|
||||||
|
def get_all_categories
|
||||||
|
app = ModuleApp.where(key: 'e_paper').first
|
||||||
|
asc_flag = app.asc rescue true
|
||||||
|
app.categories.enabled.sort_by do |category|
|
||||||
|
tmp = category.sort_number.to_i rescue 0
|
||||||
|
asc_flag ? tmp : -tmp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def get_paper_data(paper_criteria)
|
||||||
|
papers = paper_criteria.epaper_topics.group_by(&:category)
|
||||||
|
papers_data = []
|
||||||
|
papers_sorted = get_all_categories.map do |v|
|
||||||
|
tmp = papers.select{|cat,topics| (cat.id==v.id rescue false)}
|
||||||
|
if tmp.count==0
|
||||||
|
tmp = nil
|
||||||
|
end
|
||||||
|
tmp
|
||||||
|
end.compact
|
||||||
|
papers_sorted.each do |paper|
|
||||||
|
paper.each do |category, topics|
|
||||||
|
topics_data = Array(topics).compact
|
||||||
|
papers_data << {
|
||||||
|
"category_title" => (category.title rescue nil),
|
||||||
|
"category" => category,
|
||||||
|
"topics" => topics_data
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
papers_data
|
||||||
|
end
|
||||||
|
end
|
|
@ -2,7 +2,8 @@
|
||||||
namespace :epaper do
|
namespace :epaper do
|
||||||
task :send_email, [:paper_criteria_id, :domain] => :environment do |task,args|
|
task :send_email, [:paper_criteria_id, :domain] => :environment do |task,args|
|
||||||
paper = PaperCriteria.find(args[:paper_criteria_id]) rescue nil
|
paper = PaperCriteria.find(args[:paper_criteria_id]) rescue nil
|
||||||
page = Page.where(:module => "e_paper").first.url rescue ""
|
page = Page.where(:module => "e_paper").first.url rescue ""
|
||||||
|
papers_data = Admin::EpaperHelper.get_paper_data(paper)
|
||||||
domain = args[:domain]
|
domain = args[:domain]
|
||||||
if !paper.nil?
|
if !paper.nil?
|
||||||
subscribers = EPaperSubscriber.all
|
subscribers = EPaperSubscriber.all
|
||||||
|
@ -14,7 +15,7 @@ namespace :epaper do
|
||||||
subscriber.save
|
subscriber.save
|
||||||
if emails.count == mail_limit
|
if emails.count == mail_limit
|
||||||
puts "Sending #{mail_limit} mails"
|
puts "Sending #{mail_limit} mails"
|
||||||
email = Email.new(:mail_subject => paper.sending_title, :mail_lang => :zh_tw, :template => "admin/e_paper_criterias/emailer", :template_data => {"paper" => paper, "page" => "http://" + domain + page, "siteurl" => "http://" + domain }, :mail_to => emails)
|
email = Email.new(:mail_subject => paper.sending_title, :mail_lang => :zh_tw, :template => "admin/e_paper_criterias/emailer", :template_data => {"paper" => paper, "page" => "http://" + domain + page, "siteurl" => "http://" + domain, "papers_data" => papers_data }, :mail_to => emails)
|
||||||
email.deliver
|
email.deliver
|
||||||
emails = []
|
emails = []
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
|
Loading…
Reference in New Issue