From 0892eb147256dcc52825a39adea14527e324097a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Mon, 24 Jul 2017 14:49:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 43 +++++++++++++++---- app/models/shixun_member.rb | 1 + app/views/layouts/_logined_header.html.erb | 2 +- .../users/shixuns_or_courses_filter.js.erb | 2 - app/views/users/show.html.erb | 25 +++++++++-- app/views/users/user_show_course_list.js.erb | 2 +- 6 files changed, 58 insertions(+), 17 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 8e4d9e42e..795486167 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2026,12 +2026,26 @@ class UsersController < ApplicationController @blog_list = @blog_list.limit(3) watch_query = User.watched_by(@user.id); @user_watchlist_count = watch_query.count(); - @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12); + @user_watchlist = watch_query.order("#{Watcher.table_name}.id desc").limit(12) fan_query = @user.watcher_users; @user_fanlist_count = fan_query.count(); - @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12); + @user_fanlist = fan_query.order("#{Watcher.table_name}.id desc").limit(12) + + # 我创建的实训数 + @create_num = (@user == User.current ? Shixun.where(:user_id => @user).count : Shixun.where(:status => [2, 3], :user_id => @user).count) + # 我合作的实训数 + coop_id = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id} and role = 2").map(&:shixun_id) # 合作者的实训id + @cooperative_num = (@user == User.current ? Shixun.where(:id => coop_id).count : Shixun.where(:status => [2, 3], :id => coop_id).count) + # 我挑战的实训数 + ch_id = Shixun.find_by_sql("select id from shixuns where id in (select shixun_id from myshixuns where user_id = #{@user.id})") + @challenge_num = (@user == User.current ? Shixun.where(:id => ch_id).count : Shixun.where(:status => [2, 3], :id => ch_id)) + # 我的所有课程数 + @all_courses_count = @user.courses.not_deleted_not_end.count + # 我创建的课程数 + @create_courses_count = @user.courses.not_deleted_not_end.where(:tea_id => @user.id).count + # 我参与的课程数 + @join_courses_count = @user.courses.not_deleted_not_end.where("tea_id != #{@user.id}").count -=begin # 合作者及创建者 ids = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id}") # 已挑战过 @@ -2040,11 +2054,10 @@ class UsersController < ApplicationController ids2 = ids2.map{|shixun| shixun.id} unless ids2.blank? id = ids + ids2 id = id.uniq -=end if @user == User.current - @shixuns = Shixun.where(:user_id => @user).order("created_at desc") + @shixuns = Shixun.where(:id => id).order("created_at desc") else - @shixuns = Shixun.where(:status => [2, 3], :user_id => @user).order("created_at desc") + @shixuns = Shixun.where(:status => [2, 3], :id => id).order("created_at desc") end @limit = 5 @is_remote = true @@ -2215,12 +2228,22 @@ class UsersController < ApplicationController @shixuns = Shixun.where(:status => [2, 3], :user_id => @user).order("created_at desc") end elsif params[:filter] == "cooperative" + # 合作者的实训id + id = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id} and role = 2").map(&:shixun_id) + if @user == User.current + @shixuns = Shixun.where(:id => id).order("created_at desc") + else + @shixuns = Shixun.where(:status => [2, 3], :id => id).order("created_at desc") + end + elsif params[:filter] == "all" # 合作者及创建者 ids = Shixun.find_by_sql("select shixun_id from shixun_members where user_id=#{@user.id}") + # 已挑战过 + ids2 = Shixun.find_by_sql("select id from shixuns where id in (select shixun_id from myshixuns where user_id = #{@user.id})") ids = ids.map{|shixun| shixun.shixun_id} unless ids.blank? - # 我创建的id - create_id = Shixun.where(:user_id => @user).pluck(:id) - id = ids - create_id + ids2 = ids2.map{|shixun| shixun.id} unless ids2.blank? + id = ids + ids2 + id = id.uniq if @user == User.current @shixuns = Shixun.where(:id => id).order("created_at desc") else @@ -2238,6 +2261,8 @@ class UsersController < ApplicationController @courses = @user.courses.not_deleted_not_end.where(:tea_id => @user.id).order("updated_at desc") elsif params[:filter] == "join" @courses = @user.courses.not_deleted_not_end.where("tea_id != #{@user.id}").order("updated_at desc") + elsif params[:filter] == "all" + @courses = @user.courses.not_deleted_not_end.order("updated_at desc") end @limit = 5 @is_remote = true diff --git a/app/models/shixun_member.rb b/app/models/shixun_member.rb index c39c2521c..beab86fff 100644 --- a/app/models/shixun_member.rb +++ b/app/models/shixun_member.rb @@ -1,4 +1,5 @@ class ShixunMember < ActiveRecord::Base + # role 实训角色: 1 创建者 2 合作者 attr_accessible :shixun_id, :user_id, :role belongs_to :shixun belongs_to :user diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 35a9d68e8..36321d951 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -16,8 +16,8 @@