diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index ecabeca21..90ed5bc37 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -11,6 +11,20 @@ class SettingsController < ApplicationController get_top_system_notification end + def check_url + url = params[:url] + task_id = params[:task] + term = params[:term] + return normal_status(-1, "缺少url参数") unless url.present? + return normal_status(-1, "缺少term参数") unless term.present? + return normal_status(-1, "缺少task参数") unless task_id.present? + glcc_mate = GlccMediumTermExamineMaterial.new(code_or_pr_url: url, task_id: task_id, term: term, created_on:Time.now) + state = glcc_mate.check_pr_url + errors = glcc_mate.gennerate_content(state) + render_ok({ state:state, state_html: errors}) + end + + private def get_navbar @navbar = default_laboratory.navbar diff --git a/app/models/glcc_medium_term_examine_material.rb b/app/models/glcc_medium_term_examine_material.rb index 70bed6b9a..1e7c3bedb 100644 --- a/app/models/glcc_medium_term_examine_material.rb +++ b/app/models/glcc_medium_term_examine_material.rb @@ -40,10 +40,25 @@ class GlccMediumTermExamineMaterial < ActiveRecord::Base unless pr.present? state << 3 end + if white_list && term == 1 #特殊处理 白名单的中期考核不处理 中期考核后去掉 + state = [] + end state end + def white_list + # 全局设置白名单 key + key = "glcc_white_task_#{self.created_on.year}" + white_task = EduSetting.find_by_name(key) + if white_task + task_ids = white_task.value.split(",") + task_ids.map(&:to_i).include?(self.task_id) + else + false + end + end + def send_mail gcs = glcc_student mail = gcs.mail @@ -52,11 +67,7 @@ class GlccMediumTermExamineMaterial < ActiveRecord::Base state = check_pr_url return unless state.present? title = "2023年GitLink确实开源GLCC开源夏令营#{term == 1 ? "中期考核" : "结项考核"}提醒" - content = "" - state.map{|e| - content = content + number_to_content(e) - } - puts content + content = gennerate_content(state) UserMailer.glcc_pr_check_email(mail,title, gcs.student_name, content).deliver_now end @@ -65,6 +76,10 @@ class GlccMediumTermExamineMaterial < ActiveRecord::Base mail = gcs.mail return "数据异常PR连接为空" if mail.nil? || code_or_pr_url.nil? state = check_pr_url + gennerate_content(state) + end + + def gennerate_content(state) content = "" state.map{|e| content = content + number_to_content(e) diff --git a/app/views/admins/glcc_pr_check/_examine_material.html.erb b/app/views/admins/glcc_pr_check/_examine_material.html.erb index 6daf14546..36454232c 100644 --- a/app/views/admins/glcc_pr_check/_examine_material.html.erb +++ b/app/views/admins/glcc_pr_check/_examine_material.html.erb @@ -6,7 +6,8 @@