From ab2f6dd6875a5b3e15bb19325b2f90bda7b3b695 Mon Sep 17 00:00:00 2001 From: XuCheng642 <287102909@qq.com> Date: Fri, 13 Oct 2017 21:42:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E6=88=90=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=88=90=E7=BB=A9=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 65 +++++++++++++++++------ app/controllers/managements_controller.rb | 24 +++++++-- 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index bdf25d52b..19b69edf1 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -533,11 +533,21 @@ class CoursesController < ApplicationController @search = params[:search] q = params[:search] ? "#{params[:search].strip}" : "" - if @order == "student_id" - @members = @course.members.joins("join user_extensions on members.user_id = user_extensions.user_id").order("student_id #{@r_sort}").select{|m| m.roles.to_s.include?("Student")} - else - @members = @course.members.joins("join users on members.user_id = users.id").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@r_sort}, login #{@r_sort}").select{|m| m.roles.to_s.include?("Student")} - end + # if @order == "student_id" + # @members = @course.members.joins("join user_extensions on members.user_id = user_extensions.user_id").order("student_id #{@r_sort}").select{|m| m.roles.to_s.include?("Student")} + # else + # @members = @course.members.joins("join users on members.user_id = users.id").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@r_sort}, login #{@r_sort}").select{|m| m.roles.to_s.include?("Student")} + # end + @members = Member.find_by_sql("SELECT members.*,( + SELECT SUM(student_works.work_score) + FROM student_works,homework_commons + WHERE student_works.homework_common_id = homework_commons.id + AND homework_commons.course_id = #{@course.id} + AND student_works.user_id = members.user_id + ) AS score FROM members + JOIN students_for_courses + ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id + WHERE members.course_id = #{@course.id} ORDER BY score desc") if q.nil? || q == "" else members = [] @@ -576,11 +586,21 @@ class CoursesController < ApplicationController @search = params[:search] q = params[:search] ? "#{params[:search].strip}" : "" - if @order == "student_id" - @members = @course.members.where(:course_group_id => 0).joins("join user_extensions on members.user_id = user_extensions.user_id").order("student_id #{@sort}").select{|m| m.roles.to_s.include?("Student")} - else - @members = @course.members.where(:course_group_id => 0).joins("join users on members.user_id = users.id").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@sort}, login #{@b_sort}").select{|m| m.roles.to_s.include?("Student")} - end + @members = Member.find_by_sql("SELECT members.*,( + SELECT SUM(student_works.work_score) + FROM student_works,homework_commons + WHERE student_works.homework_common_id = homework_commons.id + AND homework_commons.course_id = #{@course.id} + AND student_works.user_id = members.user_id + ) AS score FROM members + JOIN students_for_courses + ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id + WHERE members.course_id = #{@course.id} AND members.course_group_id = 0 ORDER BY score desc") + # if @order == "student_id" + # @members = @course.members.where(:course_group_id => 0).joins("join user_extensions on members.user_id = user_extensions.user_id").order("student_id #{@sort}").select{|m| m.roles.to_s.include?("Student")} + # else + # @members = @course.members.where(:course_group_id => 0).joins("join users on members.user_id = users.id").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@sort}, login #{@b_sort}").select{|m| m.roles.to_s.include?("Student")} + # end if q.nil? || q == "" else members = [] @@ -613,17 +633,27 @@ class CoursesController < ApplicationController end def has_group_student_list - @order, @r_sort = params[:order] || "student_id", params[:sort] || "asc" - @sort = @r_sort == "desc" ? "asc" : "desc" + #@order, @r_sort = params[:order] || "student_id", params[:sort] || "asc" + #@sort = @r_sort == "desc" ? "asc" : "desc" @search = params[:search] q = params[:search] ? "#{params[:search].strip}" : "" @group = @course.course_groups.find params[:group_id] - if @order == "student_id" - @members = @course.members.where(:course_group_id => @group.id).joins("join user_extensions on members.user_id = user_extensions.user_id").order("student_id #{@sort}").select{|m| m.roles.to_s.include?("Student")} - else - @members = @course.members.where(:course_group_id => @group.id).joins("join users on members.user_id = users.id").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@sort}, login #{@b_sort}").select{|m| m.roles.to_s.include?("Student")} - end + @members = Member.find_by_sql("SELECT members.*,( + SELECT SUM(student_works.work_score) + FROM student_works,homework_commons + WHERE student_works.homework_common_id = homework_commons.id + AND homework_commons.course_id = #{@course.id} + AND student_works.user_id = members.user_id + ) AS score FROM members + JOIN students_for_courses + ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id + WHERE members.course_id = #{@course.id} AND members.course_group_id = #{@group.id} ORDER BY score desc") + # if @order == "student_id" + # @members = @course.members.where(:course_group_id => @group.id).joins("join user_extensions on members.user_id = user_extensions.user_id").select{|m| m.roles.to_s.include?("Student")}.reorder("student_id #{@sort}") + # else + # @members = @course.members.where(:course_group_id => @group.id).joins("join users on members.user_id = users.id").select{|m| m.roles.to_s.include?("Student")}.reorder("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@sort}, login #{@b_sort}") + # end if q.nil? || q == "" else members = [] @@ -635,6 +665,7 @@ class CoursesController < ApplicationController end @members = members end + #分页 @member_count = @members.count @all_member_ids = @members.map(&:id).join(",") diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index 0d9dd4446..c0b797c4c 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -839,12 +839,28 @@ end AppliedMessage.create(:user_id => aas.user_id, :status => 2, :viewed => 0, :applied_id => aas.id, :applied_type => "ApplyAddSchools", :name => school.name ) users = UserExtensions.where("school_id = #{aas.school_id}") users.update_all(:school_id => school.id) - ApplyAddDepartment.where(:school_id => aas.school_id).update_all(:school_id => school.id) + # 判断重复 + before_apply_departments = Department.where(:school_id => params[:applied_id]) + after_apply_deparments = Department.where(:school_id => params[:school_id]) + before_apply_departments.each do |department| + after_dep = Department.where(:school_id => params[:school_id], :name => department.name).first + if after_dep + UserExtensions.where(:school_id => params[:applied_id], :department_id => department.id).update_all(:department_id => after_dep.id) + else + UserExtensions.where(:school_id => params[:applied_id]).update_all(:department_id => new_department.id) + if after_dep.status == 2 ||after_dep.status == 3 + new_department = Department.create(:name => department.name,:school_id =>params[:school_id], :is_auth => 1) + else + new_department = Department.create(:name => department.name,:school_id =>params[:school_id], :is_auth => 0) + end + end + ApplyAddDepartment.where(:department_id => department.id).destroy_all + department.destroy + end + UserExtensions.where(:school_id => params[:applied_id]).update_all(:school_id => params[:school_id]) - - - Department.where(:school_id => aas.school_id).update_all(:school_id => school.id) + # Department.where(:school_id => aas.school_id).update_all(:school_id => school.id) aas.school.destroy aas.update_attribute(:school_id, school.id) end