diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 4c61fb1df..06adc676d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -404,25 +404,6 @@ class ApplicationController < ActionController::Base end end - # 处理返回非0就报错的请求 - def interface_post(uri, params, status, message) - begin - uid_logger_dubug("--uri_exec: params is #{params}, url is #{uri}") - uri = URI.parse(URI.encode(uri.strip)) - res = Net::HTTP.post_form(uri, params).body - uid_logger_dubug("--uri_exec: .....res is #{res}") - res = JSON.parse(res) - if (res && res['code'] != 0) - tip_exception(status, message) - else - res - end - rescue Exception => e - uid_logger("--uri_exec: exception #{e.message}") - raise Educoder::TipException.new("实训平台繁忙(繁忙等级:84)") - end - end - # json格式请求 def interface_json_post(uri, params, status, message) begin diff --git a/app/controllers/hack_user_lastest_codes_controller.rb b/app/controllers/hack_user_lastest_codes_controller.rb index 2d749ce75..d03b9bd7d 100644 --- a/app/controllers/hack_user_lastest_codes_controller.rb +++ b/app/controllers/hack_user_lastest_codes_controller.rb @@ -1,9 +1,9 @@ class HackUserLastestCodesController < ApplicationController before_action :require_login, except: [:listen_result] before_action :find_my_hack, only: [:show, :code_debug, :code_submit, :update_code, - :listen_result, :result, :submit_records] + :listen_result, :result, :submit_records, :restore_initial_code] before_action :update_user_hack_status, only: [:code_debug, :code_submit] - before_action :require_auth_identity, only: [:update_code] + before_action :require_auth_identity, only: [:update_code, :restore_initial_code] before_action :require_manager_identity, only: [:update_code] def show @@ -14,6 +14,11 @@ class HackUserLastestCodesController < ApplicationController @my_hack.update_attribute(:code, params[:code]) end + # 回复初始代码 + def restore_initial_code + @my_hack.update_attribute(:code, @hack.code) + end + # 调试代码 def code_debug exec_mode = "debug" diff --git a/app/controllers/weapps/code_sessions_controller.rb b/app/controllers/weapps/code_sessions_controller.rb index 887e97eed..2dbd08e82 100644 --- a/app/controllers/weapps/code_sessions_controller.rb +++ b/app/controllers/weapps/code_sessions_controller.rb @@ -15,6 +15,8 @@ class Weapps::CodeSessionsController < Weapps::BaseController logged = true else # 根据 code没拿到 unionid + Rails.logger.info("[Weapp] session_key: #{result['session_key']}") + Rails.logger.info("[Weapp] code: #{params[:code]}") user_info = Wechat::Weapp.decrypt(result['session_key'], params[:encrypted_data], params[:iv]) # 老用户,已绑定 diff --git a/app/libs/wechat/weapp.rb b/app/libs/wechat/weapp.rb index cbf26efd2..ca356b28d 100644 --- a/app/libs/wechat/weapp.rb +++ b/app/libs/wechat/weapp.rb @@ -22,8 +22,8 @@ class Wechat::Weapp end def decrypt(session_key, encrypted_data, iv) - session_key = Base64.decode64(session_key).force_encoding("utf-8") - encrypted_data = Base64.decode64(encrypted_data).force_encoding("utf-8") + session_key = Base64.decode64(session_key) + encrypted_data = Base64.decode64(encrypted_data) iv = Base64.decode64(iv) cipher = OpenSSL::Cipher::AES.new(128, :CBC) diff --git a/app/views/hack_user_lastest_codes/restore_initial_code.json.jbuilder b/app/views/hack_user_lastest_codes/restore_initial_code.json.jbuilder new file mode 100644 index 000000000..3b272f298 --- /dev/null +++ b/app/views/hack_user_lastest_codes/restore_initial_code.json.jbuilder @@ -0,0 +1 @@ +json.code @hack.code \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index fc2ff5e3d..577428c7a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,7 +42,6 @@ Rails.application.routes.draw do member do post :publish get :start - get :result post :update_set delete :delete_set end @@ -57,8 +56,16 @@ Rails.application.routes.draw do get :code_debug get :code_submit match :listen_result, :via => [:get, :post] + get :result + get :submit_records + post :restore_initial_code + end + + collection do + get :record_detail end + end diff --git a/public/images/educoder/xcx/myinfobanner.png b/public/images/educoder/xcx/myinfobanner.png new file mode 100644 index 000000000..10046e361 Binary files /dev/null and b/public/images/educoder/xcx/myinfobanner.png differ