module CompetitionsHelper
  def chart_school_str user_ids
    chart_school_name = ""
    chart_school_name = School.where(id: UserExtension.where(user_id: user_ids).pluck(:school_id).uniq).pluck(:name).join("、")
  end

  # 耗时：小时、分、秒  00:00:00
  # 小于1秒钟则不显示
  def com_spend_time time
    hour = time / (60*60)
    min = time % (60*60) / 60
    sec = time % (60*60) % 60
    hour_str = "00"
    min_str = "00"
    sec_str = "00"
    if hour >= 1 && hour < 10
      hour_str = "0#{hour}"
    elsif hour >= 10
      hour_str = "#{hour}"
    end

    if min >= 1 && min < 10
      min_str = "0#{min}"
    elsif min >= 10
      min_str = "#{min}"
    end

    if sec >= 1 && sec < 10
      sec_str = "0#{sec}"
    elsif sec >= 10
      sec_str = "#{sec}"
    end

    time = "#{hour_str} : #{min_str} : #{sec_str}"
    return time
  end

  def chart_stages competition
    stages = []
    statistic_stages = competition.competition_stages.where("score_rate > 0")

    unless statistic_stages.size == 1
      end_time = competition.max_stage_end_time || competition.end_time
      if end_time && end_time < Time.now
        stages << {id: nil, name: statistic_stages.size > 1 ? "总排行榜" : "排行榜", rate: 1.0, start_time: competition.start_time, end_time: competition.end_time}
      end
    end

    statistic_stages.each do |stage|
      if (stage.max_end_time && stage.max_end_time < Time.now) || stage.max_end_time.nil?
        stages << {id: stage.id, name: "#{stage.name}排行榜", rate: stage.score_rate, start_time: stage.min_start_time, end_time: stage.max_end_time}
      end
    end

    # stages = stages.sort { |a, b| b[:end_time] <=> a[:end_time] } if stages.size > 0
    return stages
  end
end