@ -57,46 +57,96 @@ class HomeworkService
 
			
		
	
		
		
			
				
					
					    [ @bid , @totle_size , @cur_size , @percent ] 
    [ @bid , @totle_size , @cur_size , @percent ] 
 
			
		
	
		
		
			
				
					
					  end 
  end 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  #启动匿评 
  # 启动匿评 操作 逻辑改变,暂不删除 
 
			
				
				
			
		
	
		
		
			
				
					
					  #statue 1:启动成功, : , ,  
  # #启动匿评 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					  # #statue 1:启动成功, : , ,  
 
			
		
	
		
		
			
				
					
					  # def start_anonymous_comment params,current_user 
 
			
		
	
		
		
			
				
					
					  #   @bid = Bid.find(params[:id]) 
 
			
		
	
		
		
			
				
					
					  #   @course = @bid.courses.first 
 
			
		
	
		
		
			
				
					
					  #   unless is_course_teacher(current_user,@course) || current_user.admin? 
 
			
		
	
		
		
			
				
					
					  #     @statue = 4 
 
			
		
	
		
		
			
				
					
					  #     raise '403' 
 
			
		
	
		
		
			
				
					
					  #   end 
 
			
		
	
		
		
			
				
					
					  #   if(@bid.comment_status == 0) 
 
			
		
	
		
		
			
				
					
					  #     homeworks = @bid.homeworks 
 
			
		
	
		
		
			
				
					
					  #     if(homeworks && homeworks.size >= 2) 
 
			
		
	
		
		
			
				
					
					  #       homeworks.each_with_index do |homework, index| 
 
			
		
	
		
		
			
				
					
					  #         user = homework.user 
 
			
		
	
		
		
			
				
					
					  #         n = @bid.evaluation_num 
 
			
		
	
		
		
			
				
					
					  #         n = n < homeworks.size ? n : homeworks.size - 1 
 
			
		
	
		
		
			
				
					
					  #         assigned_homeworks = get_assigned_homeworks(homeworks, n, index) 
 
			
		
	
		
		
			
				
					
					  #         assigned_homeworks.each do |h| 
 
			
		
	
		
		
			
				
					
					  #           @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) 
 
			
		
	
		
		
			
				
					
					  #           @homework_evaluation.save 
 
			
		
	
		
		
			
				
					
					  #         end 
 
			
		
	
		
		
			
				
					
					  #       end 
 
			
		
	
		
		
			
				
					
					  #       @bid.update_column('comment_status', 1) 
 
			
		
	
		
		
			
				
					
					  #       @statue = 1 
 
			
		
	
		
		
			
				
					
					  #     else 
 
			
		
	
		
		
			
				
					
					  #       @statue = 2 
 
			
		
	
		
		
			
				
					
					  #     end 
 
			
		
	
		
		
			
				
					
					  #   else 
 
			
		
	
		
		
			
				
					
					  #     @statue = 3 
 
			
		
	
		
		
			
				
					
					  #   end 
 
			
		
	
		
		
			
				
					
					  #   @statue 
 
			
		
	
		
		
			
				
					
					  # end 
 
			
		
	
		
		
			
				
					
					  # #关闭匿评 
 
			
		
	
		
		
			
				
					
					  # def stop_anonymous_comment params,current_user 
 
			
		
	
		
		
			
				
					
					  #   @bid = Bid.find(params[:id]) 
 
			
		
	
		
		
			
				
					
					  #   @course = @bid.courses.first 
 
			
		
	
		
		
			
				
					
					  #   unless is_course_teacher(current_user,@course) || current_user.admin? 
 
			
		
	
		
		
			
				
					
					  #     raise '403' 
 
			
		
	
		
		
			
				
					
					  #   end 
 
			
		
	
		
		
			
				
					
					  #   @bid.update_column('comment_status', 2) 
 
			
		
	
		
		
			
				
					
					  # end 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  # 开启匿评 
 
			
		
	
		
		
			
				
					
					  #statue 1:启动成功, : , ,  
 
			
		
	
		
		
			
				
					
					   def  start_anonymous_comment  params , current_user 
   def  start_anonymous_comment  params , current_user 
 
			
		
	
		
		
			
				
					
					    @bid  =  Bid . find ( params [ :id ] ) 
     homework  =  HomeworkCommon . find ( params [ :homework_id ] ) 
 
			
				
				
			
		
	
		
		
			
				
					
					    @course  =  @bid . courses . first 
     return  { :status = >  4 }   unless  current_user . admin?  ||  current_user . allowed_to? ( :as_teacher , Course . find ( params [ :course_id ] ) ) 
 
			
				
				
			
		
	
		
		
			
				
					
					    unless  is_course_teacher ( current_user , @course )  ||  current_user . admin? 
     return  { :status = > 5 }    if  Time . parse ( homework . end_time . to_s ) . strftime ( " %Y-%m-%d " )  > =  Time . now . strftime ( " %Y-%m-%d " ) 
 
			
				
				
			
		
	
		
		
			
				
					
					      @statue  =  4 
     homework_detail_manual  =  homework . homework_detail_manual 
 
			
				
				
			
		
	
		
		
			
				
					
					      raise  '403' 
     if  homework_detail_manual . comment_status  ==  1 
 
			
				
				
			
		
	
		
		
			
				
					
					    end 
       student_works  =  homework . student_works 
 
			
				
				
			
		
	
		
		
			
				
					
					    if ( @bid . comment_status  ==  0 ) 
       if  student_works  &&  student_works . size  > = 2 
 
			
				
				
			
		
	
		
		
			
				
					
					      homeworks  =  @bid . homeworks 
         student_works . each_with_index  do  | work ,  index | 
 
			
				
				
			
		
	
		
		
			
				
					
					      if ( homeworks  &&  homeworks . size  > =  2 ) 
           user  =  work . user 
 
			
				
				
			
		
	
		
		
			
				
					
					        homeworks . each_with_index  do  | homework ,  index | 
           n  =  homework_detail_manual . evaluation_num 
 
			
				
				
			
		
	
		
		
			
				
					
					          user  =  homework . user 
           n  =  n  <  student_works . size  ?  n  :  student_works . size  -  1 
 
			
				
				
			
		
	
		
		
			
				
					
					          n  =  @bid . evaluation_num 
           assigned_homeworks  =  get_assigned_homeworks ( student_works ,  n ,  index ) 
 
			
				
				
			
		
	
		
		
			
				
					
					          n  =  n  <  homeworks . size  ?  n  :  homeworks . size  -  1 
 
			
		
	
		
		
			
				
					
					          assigned_homeworks  =  get_assigned_homeworks ( homeworks ,  n ,  index ) 
 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					           assigned_homeworks . each  do  | h | 
           assigned_homeworks . each  do  | h | 
 
			
		
	
		
		
			
				
					
					            @homework_evaluation  =  HomeworkEvaluation . new ( user_id :  user . id ,  homework_attach_id :  h . id ) 
             student_works_evaluation_distributions  =  StudentWorksEvaluationDistribution . new ( user_id :  user . id ,  student_work_id :  h . id ) 
 
			
				
				
			
		
	
		
		
			
				
					
					            @homework_evaluation . save 
             student_works_evaluation_distributions  . save 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					           end 
           end 
 
			
		
	
		
		
			
				
					
					         end 
         end 
 
			
		
	
		
		
			
				
					
					        @bid . update_column ( 'comment_status' ,  1 ) 
         homework_detail_manual . update_column ( 'comment_status' ,  2  ) 
 
			
				
				
			
		
	
		
		
			
				
					
					        @statue  =  1 
          statue =  1 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					       else 
       else 
 
			
		
	
		
		
			
				
					
					        @statue  =  2 
          statue =  2 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					       end 
       end 
 
			
		
	
		
		
			
				
					
					     else 
     else 
 
			
		
	
		
		
			
				
					
					      @statue  =  3 
        statue =  3 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					     end 
     end 
 
			
		
	
		
		
			
				
					
					    @statue 
     { :status  = >  statue } 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					   end 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					   def  get_assigned_homeworks ( student_works ,  n ,  index ) 
 
			
		
	
		
		
			
				
					
					     student_works  +=  student_works 
 
			
		
	
		
		
			
				
					
					     student_works [ index  +  1  ..  index  +  n ] 
 
			
		
	
		
		
			
				
					
					   end 
   end 
 
			
		
	
		
		
			
				
					
					  #关闭匿评 
  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					   def  stop_anonymous_comment   params , current_user 
   def  stop_anonymous_comment   params , current_user 
 
			
		
	
		
		
			
				
					
					    @bid  =  Bid . find ( params [ :id ] ) 
     homework  =  HomeworkCommon . find ( params [ :homework_id ] ) 
 
			
				
				
			
		
	
		
		
			
				
					
					    @course  =  @bid . courses . first 
     homework_detail_manual  =  homework . homework_detail_manual 
 
			
				
				
			
		
	
		
		
			
				
					
					    unless  is_course_teacher ( current_user , @course )  ||  current_user . admin? 
     homework_detail_manual . update_column ( 'comment_status' ,  3 ) 
 
			
				
				
			
		
	
		
		
			
				
					
					      raise  '403' 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					     work_ids  =  " ( "  <<  homework . student_works . map ( & :id ) . join ( " , " )  <<  " ) " 
 
			
		
	
		
		
			
				
					
					     homework . student_works . each  do  | student_work | 
 
			
		
	
		
		
			
				
					
					       absence_penalty_count  =  student_work . user . student_works_evaluation_distributions . where ( " student_work_id IN  #{ work_ids } " ) . count  -  student_work . user . student_works_scores . where ( " student_work_id IN  #{ work_ids } " ) . count 
 
			
		
	
		
		
			
				
					
					       student_work . absence_penalty  =  absence_penalty_count  >  0  ?  absence_penalty_count  *  homework_detail_manual . absence_penalty  :  0 
 
			
		
	
		
		
			
				
					
					       student_work . save 
 
			
		
	
		
		
			
				
					
					     end 
     end 
 
			
		
	
		
		
			
				
					
					    @bid . update_column ( 'comment_status' ,  2 ) 
 
			
		
	
		
		
			
				
					
					   end 
   end 
 
			
		
	
		
		
			
				
					
					   
   
 
			
		
	
		
		
			
				
					
					  # 匿评作品详情 
  # 匿评作品详情