From 06afe5083c78b2dee7953cd3bc0aab65667e2c10 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Tue, 13 May 2025 15:23:35 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E5=AF=BC=E5=85=A5=E6=8C=91=E6=88=98?= =?UTF-8?q?=E6=9D=AF=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3=E5=92=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competition_infos_controller.rb | 8 ++++++++ app/jobs/sync_competition_tzb_user_job.rb | 19 ++++++------------- ...5132525119_create_competition_tzb_users.rb | 14 ++++---------- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/app/controllers/competition_infos_controller.rb b/app/controllers/competition_infos_controller.rb index c762451b8..e5b273f42 100644 --- a/app/controllers/competition_infos_controller.rb +++ b/app/controllers/competition_infos_controller.rb @@ -481,6 +481,14 @@ class CompetitionInfosController < ApplicationController end end + def tzb_actived + tip_exception "请输入挑战激活码" if param[:code].blank? + tzb_user = CompetitionTzbUser.find_by(activation_code: param[:code]) + tip_exception "激活码正在同步确认中,请稍后再试" if tzb_user.blank? + user = User.find_by(tzb_user.user_id) + render_ok({ user: { login: user.login, mail: user.mail, password: tzb_user.pwd } }) + end + def destroy if @competition_info.destroy! flash[:success] = '删除成功' diff --git a/app/jobs/sync_competition_tzb_user_job.rb b/app/jobs/sync_competition_tzb_user_job.rb index 53c689ae3..20a975826 100644 --- a/app/jobs/sync_competition_tzb_user_job.rb +++ b/app/jobs/sync_competition_tzb_user_job.rb @@ -2,36 +2,29 @@ class SyncCompetitionTzbUserJob < ApplicationJob queue_as :default def perform(code=nil) - url = EduSetting.get("SyncCompetitionTzbUserUrl") || "https://www.tiaozhanbei.net/api/v1/ai_contest/123456/project_list/" + url = EduSetting.get("SyncCompetitionTzbUserUrl") || "https://2025.tiaozhanbei.net/api/v1/ai_contest/3579510184/project_list/" uri = URI.parse(url) http = Net::HTTP.new(uri.hostname, uri.port) if uri.scheme == 'https' http.verify_mode = OpenSSL::SSL::VERIFY_NONE http.use_ssl = true end - response = http.send_request('GET', uri.path, nil, {'Content-Type' => 'application/json'}) - Rails.logger.info("SyncCompetitionTzbUserJob body===#{response.body}") + response = http.send_request('GET', uri.path, nil, {'Content-Type' => 'application/json','Authorization' => 'Bearer sk-CQ5oe9UI14nlwYnMtsNV4MBMDLwQ67bQXIa2fDy5m0bSQ5Ts'}) + # Rails.logger.info("SyncCompetitionTzbUserJob body===#{response.body}") result = JSON.parse(response.body) # data = '{"Code":"Ok","Message":"成功","Data":[{"corp_id":123456,"match_id":666,"user_uid":"uid_y0gqNR3EesqZVgA", # "project_pid":"pid_123001","activation_code":"V2nyoEYzl2zRaVySpldc","project_status":"not_finished", # "project_status_text":"未提交","status_level":"school","status_level_text":"校级","school_code":"10003", # "school_name":"清华大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_JHnTBdt8GA3tziq","project_pid":"pid_123002","activation_code":"nde8u5HNQ7qqXjkBIQG0","project_status":"submit_to","project_status_text":"已提交","status_level":"school","status_level_text":"校级","school_code":"10003","school_name":"清华大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_2tCNcoKX8T8oHvk","project_pid":"pid_123003","activation_code":"iZQCh3mfuJ8ESrUPwGRo","project_status":"pass_by","project_status_text":"审核通过","status_level":"school","status_level_text":"校级","school_code":"10001","school_name":"北京大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_DziaXaNTkyS1M05","project_pid":"pid_123004","activation_code":"c42BKyehYWAxeAqjLdc8","project_status":"not_pass_by","project_status_text":"审核未通过","status_level":"province","status_level_text":"省级","school_code":"10001","school_name":"北京大学","province_name":"北京"}]}' # result = JSON.parse(data) - Rails.logger.info("SyncCompetitionTzbUserJob size===#{result["Data"]}") + Rails.logger.info("SyncCompetitionTzbUserJob size===#{result["Data"].size}") result["Data"].each do |row| unless CompetitionTzbUser.find_by(user_uid: row["user_uid"]).present? tzb_user = CompetitionTzbUser.new - tzb_user.corp_id = row["corp_id"] - tzb_user.match_id = row["match_id"] tzb_user.user_uid = row["user_uid"] - tzb_user.project_pid = row["project_pid"] + tzb_user.user_email = row["user_email"] tzb_user.activation_code = row["activation_code"] - tzb_user.project_status = row["project_status"] - tzb_user.status_level = row["status_level"] - tzb_user.project_status_text = row["project_status_text"] - tzb_user.school_code = row["school_code"] - tzb_user.school_name = row["school_name"] - tzb_user.province_name = row["province_name"] + tzb_user.info_json = row.to_json tzb_user.save end end diff --git a/db/migrate/202505132525119_create_competition_tzb_users.rb b/db/migrate/202505132525119_create_competition_tzb_users.rb index e9df67806..95a94f1d0 100644 --- a/db/migrate/202505132525119_create_competition_tzb_users.rb +++ b/db/migrate/202505132525119_create_competition_tzb_users.rb @@ -4,19 +4,13 @@ class CreateCompetitionTzbUsers < ActiveRecord::Migration[5.2] # "status_level":"school","status_level_text":"校级","school_code":"10003","school_name":"清华大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_JHnTBdt8GA3tziq","project_pid":"pid_123002","activation_code":"nde8u5HNQ7qqXjkBIQG0","project_status":"submit_to","project_status_text":"已提交","status_level":"school","status_level_text":"校级","school_code":"10003","school_name":"清华大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_2tCNcoKX8T8oHvk","project_pid":"pid_123003","activation_code":"iZQCh3mfuJ8ESrUPwGRo","project_status":"pass_by","project_status_text":"审核通过","status_level":"school","status_level_text":"校级","school_code":"10001","school_name":"北京大学","province_name":"北京"},{"corp_id":123456,"match_id":666,"user_uid":"uid_DziaXaNTkyS1M05","project_pid":"pid_123004","activation_code":"c42BKyehYWAxeAqjLdc8","project_status":"not_pass_by","project_status_text":"审核未通过","status_level":"province","status_level_text":"省级","school_code":"10001","school_name":"北京大学","province_name":"北京"}]}' create_table :competition_tzb_users do |t| - t.string :corp_id - t.string :match_id t.string :user_uid - t.string :project_pid + t.string :user_email t.string :activation_code - t.string :project_status - t.string :project_status_text - t.string :status_level - t.string :status_level_text - t.string :school_code - t.string :school_name - t.string :province_name + t.text :info_json t.integer :user_id + t.string :pwd + t.boolean :actived, default: false t.timestamps end