From 5c123fba177e6e2a2e6a84bc1f5670a008008943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 21 Sep 2022 16:00:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A4=B4=E6=AD=8C=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=AF=86=E9=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index e7cf0e142..ff1d4b887 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -349,7 +349,7 @@ class UsersController < ApplicationController # 通过login参数查询头歌账号信息,注册并登录 def autologin_register_by_educoder(edu_login) - req_params = { "login" => "#{edu_login}", "private_token" => "hriEn3UwXfJs3PmyXnSH" } + req_params = { "login" => "#{edu_login}", "private_token" => "hriEn3UwXfJs3PmyXnqQ" } api_url= "https://data.educoder.net" client = Faraday.new(url: api_url) response = client.public_send("get", "/api/sources/get_user_info_by_login", req_params) From 28656ad6cdc2ded8fed956036fe701a3098fd800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 21 Sep 2022 17:50:05 +0800 Subject: [PATCH 2/3] =?UTF-8?q?rake=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E5=92=8C=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/update_educoder_user.rake | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/tasks/update_educoder_user.rake diff --git a/lib/tasks/update_educoder_user.rake b/lib/tasks/update_educoder_user.rake new file mode 100644 index 000000000..2551b967f --- /dev/null +++ b/lib/tasks/update_educoder_user.rake @@ -0,0 +1,45 @@ +namespace :update_educoder_user do + desc "update educoder user mail phone" + task done: :environment do + data = User.where("mail like '%***%' or phone like '%***%'") + data = User.where(login: ENV['login']) if ENV['login'].present? + data.each do |user| + begin + req_params = { "login" => "#{user.login}", "private_token" => "hriEn3UwXfJs3PmyXnqQ" } + api_url = "https://data.educoder.net" + client = Faraday.new(url: api_url) + response = client.public_send("get", "/api/sources/get_user_info_by_login", req_params) + result = JSON.parse(response.body) + #查询 + next if result["status"].to_s != "0" + + # login 邮箱 手机号 姓名 学校/单位 + user_info = result["data"] + Rails.logger.info("user_info====== #{user_info}") + login = user_info["login"] + email = user_info["mail"] + phone = user_info["phone"] + real_name = user_info["username"] + department_name = user_info["school"] + password = "12345678" + + user.update_columns(mail: "#{email}", phone: "#{phone}") + + sync_params = { + email: email, + login_name: user.login, + source_id: 0 + } + interactor = Gitea::User::UpdateInteractor.call(user.login, sync_params) + if interactor.success? + puts "success user: #{user.id} username:#{user.login}" + else + puts "error user: #{user.id} username:#{user.login}, error:#{interactor.error.to_s}" + end + + rescue Exception => e + puts "error user: #{user.id} username:#{user.login}, error:#{e}" + end + end + end +end \ No newline at end of file From cc426833165934ade919c6ac5043c3a17bf794fc Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Sep 2022 10:07:52 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=B4=BB?= =?UTF-8?q?=E8=B7=83=E5=BA=A6=E8=AE=A1=E7=AE=97=E8=AE=BF=E9=97=AE=E9=87=8F?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 9 ++++-- app/models/timeable_visit_record.rb | 28 +++++++++++++++++++ ...923012923_create_timeable_visit_records.rb | 13 +++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 app/models/timeable_visit_record.rb create mode 100644 db/migrate/20220923012923_create_timeable_visit_records.rb diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 32bb1f0eb..5ee1fdde3 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -47,8 +47,13 @@ class RepositoriesController < ApplicationController end def entries - @project.increment!(:visits) - CacheAsyncSetJob.perform_later("project_common_service", {visits: 1}, @project.id) + @week_project_visit_record, @month_project_visit_record = TimeableVisitRecord.build(@project.id) + if @week_project_visit_record.visits < 300 && @month_project_visit_record.visits < 1000 + @week_project_visit_record.increment!(:visits) + @month_project_visit_record.increment!(:visits) + @project.increment!(:visits) + CacheAsyncSetJob.perform_later("project_common_service", {visits: 1}, @project.id) + end if @project.educoder? @entries = Educoder::Repository::Entries::ListService.call(@project&.project_educoder.repo_name) else diff --git a/app/models/timeable_visit_record.rb b/app/models/timeable_visit_record.rb new file mode 100644 index 000000000..974e785e7 --- /dev/null +++ b/app/models/timeable_visit_record.rb @@ -0,0 +1,28 @@ +# == Schema Information +# +# Table name: timeable_visit_records +# +# id :integer not null, primary key +# time :string(255) +# project_id :integer +# visits :integer +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_timeable_visit_records_on_project_id (project_id) +# index_timeable_visit_records_on_time (time) +# + +class TimeableVisitRecord < ApplicationRecord + + belongs_to :project + + def self.build(project_id) + week = TimeableVisitRecord.find_or_create_by!(time: Date.today.cweek, project_id: project_id) + month = TimeableVisitRecord.find_or_create_by!(time: Date.today.strftime("%Y%m"), project_id: project_id) + + return week, month + end +end diff --git a/db/migrate/20220923012923_create_timeable_visit_records.rb b/db/migrate/20220923012923_create_timeable_visit_records.rb new file mode 100644 index 000000000..ec105d20e --- /dev/null +++ b/db/migrate/20220923012923_create_timeable_visit_records.rb @@ -0,0 +1,13 @@ +class CreateTimeableVisitRecords < ActiveRecord::Migration[5.2] + def change + create_table :timeable_visit_records do |t| + t.string :time + t.references :project + t.integer :visits, default: 0 + + t.timestamps + end + + add_index :timeable_visit_records, :time + end +end