topic_bank
jingquan huang 6 years ago
parent 55ab874409
commit 21b1931824

@ -1,5 +1,5 @@
#coding=utf-8 #coding=utf-8
# 执行示例 bundle exec rake public_course:student args=149,2903 # 执行示例 RAILS_ENV=production bundle exec rake public_classes:student args=3,3056,'2019-03-01','2019-03-31',10,1
# args 第一个参数是subject_id第二个参数是课程course_id # args 第一个参数是subject_id第二个参数是课程course_id
# 第一期时间2018-12-16 至2019-03-31 # 第一期时间2018-12-16 至2019-03-31
# 第二期时间2019-04-07 至2019-07-28 # 第二期时间2019-04-07 至2019-07-28
@ -22,10 +22,13 @@ namespace :public_classes do
task :student => :environment do task :student => :environment do
puts "subject_id is #{subject_id}" puts "subject_id is #{subject_id}"
puts "course_id is #{course_id}" puts "course_id is #{course_id}"
puts "start time is #{start_time}"
puts "end time is #{end_time}"
puts "limt is #{limit}"
user_ids = Myshixun.find_by_sql("select distinct(user_id) from myshixuns where created_at between #{start_time} and #{end_time} and shixun_id in (select shixun_id from stage_shixuns user_ids = Myshixun.find_by_sql("select distinct(user_id) from myshixuns where created_at between '#{start_time}' and '#{end_time}' and shixun_id in (select shixun_id from stage_shixuns
where stage_id in (select id from stages where subject_id=#{subject_id})) limit #{limit}").map(&:user_id) where stage_id in (select id from stages where subject_id=#{subject_id})) limit #{limit}").map(&:user_id)
puts user_ids puts "user_ids count is #{user_ids.count}"
if user_ids.present? if user_ids.present?
user_ids.each do |user_id| user_ids.each do |user_id|
puts user_id puts user_id
@ -39,8 +42,8 @@ namespace :public_classes do
end end
task :test_user => :environment do task :test_user => :environment do
users = User.where(is_test: true) users = User.where(is_test: true).limit(limit)
users.limit(limit).find_each do |user| users.find_each do |user|
puts user.id puts user.id
CourseMember.create!(course_id: course_id, user_id: user.id, role: 4) CourseMember.create!(course_id: course_id, user_id: user.id, role: 4)
end end

@ -1,30 +1,22 @@
# bundle exec rake sync:public_message args=149,2903 # bundle exec rake sync:public_message args=149,2903
namespace :sync do namespace :sync do
task :public_message => :environment do if ENV['args']
subject_id = ENV['args'].split(",")[0] # 对应课程的id subject_id = ENV['args'].split(",")[0] # 对应课程的id
shixun_id = ENV['args'].split(",")[1] # 对应课程的id shixun_id = ENV['args'].split(",")[1] # 对应课程的id
board_id = ENV['args'].split(",")[2] board_id = ENV['args'].split(",")[2]
message_id = ENV['args'].split(",")[3] message_id = ENV['args'].split(",")[3]
status = ENV['args'].split(",")[4] # 表示相应的期数 start_time = ENV['args'].split(",")[4] # 表示课程模块
end_time = ENV['args'].split(",")[5] # 表示课程模块
if status.to_i == 1 limit = ENV['args'].split(",")[6] # 限制导入的数量
start_time = '2018-12-16' end
end_time = '2019-04-01'
elsif status.to_i == 2
start_time = '2019-04-07'
end_time = '2019-07-28'
else
# 这种情况是取所有的
start_time = '2015-01-01'
end_time = '2022-07-28'
end
task :public_message => :environment do
shixun_ids = Shixun.find_by_sql("select shixun_id from stage_shixuns where stage_id in (select id from stages where shixun_ids = Shixun.find_by_sql("select shixun_id from stage_shixuns where stage_id in (select id from stages where
subject_id=#{subject_id}) ").map(&:shixun_id) subject_id=#{subject_id}) ").map(&:shixun_id)
discusses = Discuss.where(dis_id: shixun_ids).where("created_at >? and created_at <?", start_time, end_time) discusses = Discuss.where(dis_id: shixun_ids).where("created_at >? and created_at <?", start_time, end_time)
if discusses.present? if discusses.present?
discusses.find_each do |discuss| discusses.limit(limit).find_each do |discuss|
puts discuss.user_id puts discuss.user_id
puts board_id puts board_id
puts message_id puts message_id
@ -35,23 +27,6 @@ namespace :sync do
end end
task :sigle_message => :environment do task :sigle_message => :environment do
subject_id = ENV['args'].split(",")[0] # 对应课程的id
shixun_id = ENV['args'].split(",")[1] # 对应课程的id
board_id = ENV['args'].split(",")[2]
message_id = ENV['args'].split(",")[3]
status = ENV['args'].split(",")[4] # 表示相应的期数
if status.to_i == 1
start_time = '2018-12-16'
end_time = '2019-04-01'
elsif status.to_i == 2
start_time = '2019-04-07'
end_time = '2019-07-28'
else
# 这种情况是取所有的
start_time = '2015-01-01'
end_time = '2022-07-28'
end
if subject_id.to_i == -1 if subject_id.to_i == -1
discusses = Discuss.where("parent_id is null and dis_id=?", shixun_id) discusses = Discuss.where("parent_id is null and dis_id=?", shixun_id)
@ -119,18 +94,8 @@ namespace :sync do
end end
end end
task :board_count => :environment do task :delete_boards => :environment do
Course.find_each do |course| course = Course.find(course_id)
puts course.id course.boards.destroy
begin
messages_count = Message.find_by_sql("select count(*) as count from messages where board_id in (select id from boards where course_id=#{course.id})").first.try(:count)
Board.update_column(messages_count: messages_count)
rescue
end
end
end end
end end

Loading…
Cancel
Save