From 211aaa49fa10240a187155ecdace4b3e1221d2b6 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Mar 2019 09:02:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20190314111921_migrate_shixun_works_1.rb | 93 ------------------- 1 file changed, 93 deletions(-) delete mode 100644 db/migrate/20190314111921_migrate_shixun_works_1.rb diff --git a/db/migrate/20190314111921_migrate_shixun_works_1.rb b/db/migrate/20190314111921_migrate_shixun_works_1.rb deleted file mode 100644 index e3f18e34..00000000 --- a/db/migrate/20190314111921_migrate_shixun_works_1.rb +++ /dev/null @@ -1,93 +0,0 @@ -class MigrateShixunWorks1 < ActiveRecord::Migration - DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z) - - def down_generate_identifier type - if type == "game" - code = DCODES.sample(12).join - return down_generate_identifier(type) if Game.where(identifier: code).present? - elsif type == "myshixun" - code = DCODES.sample(10).join - return down_generate_identifier(type) if Myshixun.where(identifier: code).present? - end - code - end - - def up - ActiveRecord::Base.transaction do - begin - works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and (work_score is null or work_score = 0)") - works.update_all(:myshixun_id => 0, :work_status => 0, :work_score => nil, :final_score => nil, - :cost_time => 0, :update_time => nil, :compelete_status => 0, :commit_time => nil) - - shixun_works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and work_score > 0") - shixun_works.each do |work| - shixun = work.homework_common.try(:homework_commons_shixuns).try(:shixun) - user = work.user - if shixun.present? && user.present? - # 创建新的myshixun和games - # fork版本库,如果用户没有同步,则先同步用户 - g = Gitlab.client - if user.gid.nil? - s = Trustie::Gitlab::Sync.new - s.sync_user(user) - end - gshixun = g.fork(shixun.gpid, user.gid) - shixun_tomcat = Redmine::Configuration['shixun_tomcat'] - - code = down_generate_identifier("myshixun") - # 一般通过默认分支是否存在来判断一个项目是否fork成功 - if gshixun.try(:id).present? - commit_id = g.commits(shixun.gpid).first.try(:id) - # educoder 加入到myshixun中 - myshixun_admin_gid = User.where(:login => "educoder").first.try(:gid) - g.add_team_member(gshixun.id, myshixun_admin_gid, 40) # 40代表角色master - - myshixun = Myshixun.create!(:shixun_id => shixun.id, :user_id => user.id, :identifier => code, - :modify_time => shixun.modify_time, :reset_time => shixun.reset_time, - :onclick_time => Time.now, :gpid => gshixun.id, - :git_url => gshixun.try(:path_with_namespace), :commit_id => commit_id) - - url = "#{Redmine::Configuration['gitlab_address_ip']}/#{g.project(shixun.try(:gpid)).try(:path_with_namespace)}.git" - - rep_url = Base64.urlsafe_encode64(url) # 注意:educoder为默认给实训创建版本库的用户,如果换成别的用户,名字要相应的修改 - uri = "#{shixun_tomcat}/bridge/game/openGameInstance" - params = {tpiID: "#{myshixun.id}", tpmGitURL:rep_url, tpiRepoName: gshixun.try(:name)} - logger.info("openGameInstance params is #{params}") - uri = URI.parse(URI.encode(uri.strip)) - res = Net::HTTP.post_form(uri, params).body - res = JSON.parse(res) - if (res && res['code'].to_i != 0) - raise("实训云平台繁忙(繁忙等级:83)") - end - # 其它创建关卡等操作 - challenges = shixun.challenges - # 之所以增加user_id是为了方便统计查询性能 - challenges.each_with_index do |challenge, index| - status = (index == 0 ? 0 : 3) - code = down_generate_identifier("game") - Game.create!(:challenge_id => challenge.id, :myshixun_id => myshixun.id, :status => status, :user_id => myshixun.user_id, - :open_time => Time.now, :identifier => code, :modify_time => challenge.modify_time) - end - work_score = work.final_score - work.homework_common.homework_challenge_settings.each do |setting| - if work_score > 1 - games = myshixun.games.where(:challenge_id => setting.challenge_id).first - games.update_attributes(:status => 2, :end_time => Time.now, :final_score => setting.challenge.score) - work_score -= setting.score - end - end - work.update_column("myshixun_id", myshixun.id) - end - end - end - rescue Exception => e - puts ("###failed to exec shixun: current task id is #{e}") - # g.delete_project(gshixun.id) if gshixun.try(:id).present? - raise ActiveRecord::Rollback - end - end - end - - def down - end -end From 6cb82826aa7238e7b5d7715ee7067b57a7adb2d0 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Mar 2019 09:11:04 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E3=80=90=E6=B3=A8=E5=86=8C=E3=80=91?= =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91=E6=B5=8B=E8=AF=95=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E4=B8=87=E8=83=BD?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=A0=81=E6=96=B9=E4=BE=BF=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/account_controller.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index 7be3e8e3..34552787 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -677,12 +677,16 @@ class AccountController < ApplicationController req = Hash.new(false) req[:valid] = false type = params[:type].to_i - if type == 1 || type == 2 || type == 4 || type == 6 || params[:phone] =~ /^1\d{10}$/ - code = VerificationCode.where(:phone => params[:phone], :code => params[:code], :code_type => (params[:type].to_i != 1 && params[:type].to_i != 2 && params[:type].to_i != 4) ? 2 : params[:type].to_i ).last + if Redmine::Configuration['gitlab_address'].include?("test") && params[:code] == "134790" + req[:valid] = true else - code = VerificationCode.where(:email => params[:phone], :code => params[:code], :code_type => params[:type].to_i).last + if type == 1 || type == 2 || type == 4 || type == 6 || params[:phone] =~ /^1\d{10}$/ + code = VerificationCode.where(:phone => params[:phone], :code => params[:code], :code_type => (params[:type].to_i != 1 && params[:type].to_i != 2 && params[:type].to_i != 4) ? 2 : params[:type].to_i ).last + else + code = VerificationCode.where(:email => params[:phone], :code => params[:code], :code_type => params[:type].to_i).last + end + req[:valid] = !code.nil? && (Time.now.to_i - code.created_at.to_i) <= 10*60 end - req[:valid] = !code.nil? && (Time.now.to_i - code.created_at.to_i) <= 10*60 render :json => req end From 6fd67e780e44cf0e1a44f70acd74681acd1c29b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 15 Mar 2019 09:17:33 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E8=B7=AF=E5=BE=84=20?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=B8=BA=E7=A9=BA=E5=8F=96=E6=B6=88=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=B2=A1=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/subjects/_new_shixun_list.html.erb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/subjects/_new_shixun_list.html.erb b/app/views/subjects/_new_shixun_list.html.erb index 52e1ef65..d94b28b1 100644 --- a/app/views/subjects/_new_shixun_list.html.erb +++ b/app/views/subjects/_new_shixun_list.html.erb @@ -25,8 +25,10 @@ <% else %>

没有实训数据可以选择

-

- 立即新建 + 立即新建 +

+ 取消 +
<% end %> From 49f639247e1d4edc0bb114d4c959cae1370c18ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Fri, 15 Mar 2019 09:44:50 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8C=89=E9=92=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/subjects/_new_shixun_list.html.erb | 2 +- public/stylesheets/educoder/edu-main.css | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/views/subjects/_new_shixun_list.html.erb b/app/views/subjects/_new_shixun_list.html.erb index d94b28b1..17aafc08 100644 --- a/app/views/subjects/_new_shixun_list.html.erb +++ b/app/views/subjects/_new_shixun_list.html.erb @@ -27,7 +27,7 @@

没有实训数据可以选择

立即新建 <% end %> diff --git a/public/stylesheets/educoder/edu-main.css b/public/stylesheets/educoder/edu-main.css index 4e495353..d814abd5 100644 --- a/public/stylesheets/educoder/edu-main.css +++ b/public/stylesheets/educoder/edu-main.css @@ -859,4 +859,10 @@ html>body #ajax-indicator { position: fixed; } .ListTablecheckbox{ left: 42px; top: -1px !important; -} \ No newline at end of file +} + +.pathhidnmodel{ + position: absolute; + margin-top: 60px; + margin-left: -26px; +} From ea6364960bb8a11662e7ecfe61e28cce102daeb2 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Mar 2019 14:01:45 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0314080805_create_shixun_student_works.rb} | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) rename db/migrate/{20190314080802_create_shixun_student_works.rb => 20190314080805_create_shixun_student_works.rb} (81%) diff --git a/db/migrate/20190314080802_create_shixun_student_works.rb b/db/migrate/20190314080805_create_shixun_student_works.rb similarity index 81% rename from db/migrate/20190314080802_create_shixun_student_works.rb rename to db/migrate/20190314080805_create_shixun_student_works.rb index 240adc00..55e217ff 100644 --- a/db/migrate/20190314080802_create_shixun_student_works.rb +++ b/db/migrate/20190314080805_create_shixun_student_works.rb @@ -13,16 +13,16 @@ class CreateShixunStudentWorks < ActiveRecord::Migration end def up - ActiveRecord::Base.transaction do - begin - works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and (work_score is null or work_score = 0)") - works.update_all(:myshixun_id => 0, :work_status => 0, :work_score => nil, :final_score => nil, - :cost_time => 0, :update_time => nil, :compelete_status => 0, :commit_time => nil) + begin + works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and (work_score is null or work_score = 0)") + works.update_all(:myshixun_id => 0, :work_status => 0, :work_score => nil, :final_score => nil, + :cost_time => 0, :update_time => nil, :compelete_status => 0, :commit_time => nil) - shixun_works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and work_score > 0") - shixun_works.each do |work| - shixun = work.homework_common.try(:homework_commons_shixuns).try(:shixun) - user = work.user + shixun_works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and work_score > 0") + shixun_works.each do |work| + shixun = work.homework_common.try(:homework_commons_shixuns).try(:shixun) + user = work.user + ActiveRecord::Base.transaction do if shixun.present? && user.present? # 创建新的myshixun和games # fork版本库,如果用户没有同步,则先同步用户 @@ -80,11 +80,11 @@ class CreateShixunStudentWorks < ActiveRecord::Migration end end end - rescue Exception => e - puts ("###failed to exec shixun: current task id is #{e}") - # g.delete_project(gshixun.id) if gshixun.try(:id).present? - raise ActiveRecord::Rollback end + rescue Exception => e + puts ("###failed to exec shixun: current task id is #{e}") + # g.delete_project(gshixun.id) if gshixun.try(:id).present? + raise ActiveRecord::Rollback end end