diff --git a/lib/tasks/public_course_sync.rake b/lib/tasks/public_course_sync.rake index 928cd9113..a22a9f1f8 100644 --- a/lib/tasks/public_course_sync.rake +++ b/lib/tasks/public_course_sync.rake @@ -1,5 +1,5 @@ #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 # 第一期时间:2018-12-16 至2019-03-31 # 第二期时间:2019-04-07 至2019-07-28 @@ -22,10 +22,13 @@ namespace :public_classes do task :student => :environment do puts "subject_id is #{subject_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) - puts user_ids + puts "user_ids count is #{user_ids.count}" if user_ids.present? user_ids.each do |user_id| puts user_id @@ -39,8 +42,8 @@ namespace :public_classes do end task :test_user => :environment do - users = User.where(is_test: true) - users.limit(limit).find_each do |user| + users = User.where(is_test: true).limit(limit) + users.find_each do |user| puts user.id CourseMember.create!(course_id: course_id, user_id: user.id, role: 4) end diff --git a/lib/tasks/public_message.rake b/lib/tasks/public_message.rake index 9b2f89224..00299cabc 100644 --- a/lib/tasks/public_message.rake +++ b/lib/tasks/public_message.rake @@ -1,30 +1,22 @@ # bundle exec rake sync:public_message args=149,2903 namespace :sync do - task :public_message => :environment do + if ENV['args'] 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 + start_time = ENV['args'].split(",")[4] # 表示课程模块 + end_time = ENV['args'].split(",")[5] # 表示课程模块 + limit = ENV['args'].split(",")[6] # 限制导入的数量 + 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 subject_id=#{subject_id}) ").map(&:shixun_id) discusses = Discuss.where(dis_id: shixun_ids).where("created_at >? and created_at :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 discusses = Discuss.where("parent_id is null and dis_id=?", shixun_id) @@ -119,18 +94,8 @@ namespace :sync do end end - task :board_count => :environment do - Course.find_each do |course| - puts course.id - - 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 + task :delete_boards => :environment do + course = Course.find(course_id) + course.boards.destroy end end