From c00a8a67f9e7568036fb62ddaf523850fb2af1db Mon Sep 17 00:00:00 2001 From: xiaoxiaoqiong Date: Thu, 21 Apr 2022 10:33:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E6=8A=A5=E5=90=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competition_infos_controller.rb | 21 ++++++++++++++++--- .../enroll_list.json.jbuilder | 2 +- .../enroll_status.json.jbuilder | 1 + config/routes.rb | 1 + ...20421020008_add_competition_user_status.rb | 5 +++++ 5 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20220421020008_add_competition_user_status.rb diff --git a/app/controllers/competition_infos_controller.rb b/app/controllers/competition_infos_controller.rb index 01a4de2b4..010a1ea81 100644 --- a/app/controllers/competition_infos_controller.rb +++ b/app/controllers/competition_infos_controller.rb @@ -1,7 +1,7 @@ class CompetitionInfosController < ApplicationController include ApplicationHelper - before_action :find_competition, only: [:show, :update, :enroll, :upload, :enroll_status, :statistics, :enroll_list] - before_action :require_admin, only: [:index, :new, :edit, :create] + before_action :find_competition, only: [:show, :update, :enroll, :upload, :enroll_status, :statistics, :enroll_list, :enroll_update, :enroll_status_update] + before_action :require_admin, only: [:index, :new, :edit, :create, :enroll_status_update] before_action :check_competition_manager, only: [:update] def index @@ -58,6 +58,9 @@ class CompetitionInfosController < ApplicationController if params[:sub_competition].present? competition_users = competition_users.where(sub_competition: params[:sub_competition].to_s) end + if params[:keyword].present? + competition_users = competition_users.where("competition_users.org_name LIKE :keyword OR competition_users.leader LIKE :keyword OR competition_users.phone LIKE :keyword", keyword: "%#{params[:keyword].to_s}%") + end if params[:upload].to_s == "true" competition_users = competition_users.joins("join attachments on attachments.container_type='CompetitionUser' and attachments.container_id = competition_users.id") end @@ -91,6 +94,14 @@ class CompetitionInfosController < ApplicationController def show end + def enroll_status_update + competition_user = CompetitionUser.find_by(competition_info: @competition_info.id, user_id: params[:user_id]) + tip_exception "未找到该报名用户" if competition_user.blank? + tip_exception "状态参数错误" unless ['0', '1'].include?(params[:status].to_s) + competition_user.update_attributes!(status: params[:status].to_i) + render_ok + end + def enroll competition_user = CompetitionUser.find_by(competition_info: @competition_info.id, user_id: current_user.id) tip_exception "您已经报名!" if competition_user.present? @@ -98,14 +109,17 @@ class CompetitionInfosController < ApplicationController competition_user.competition_info = @competition_info competition_user.user = current_user competition_user.members = params[:members] + competition_user.status = 1 competition_user.save render_ok end def enroll_update competition_user = CompetitionUser.find_by(competition_info: @competition_info.id, user_id: current_user.id) - competition_user = competition_user.update_attributes!(enroll_params) + tip_exception "未报名,请先报名" if competition_user.blank? + competition_user.update_attributes!(enroll_params) competition_user.members = params[:members] + competition_user.status = 1 competition_user.save render_ok end @@ -129,6 +143,7 @@ class CompetitionInfosController < ApplicationController attachment.save end end + competition_user.update_attributes!(status: 2) render_ok end diff --git a/app/views/competition_infos/enroll_list.json.jbuilder b/app/views/competition_infos/enroll_list.json.jbuilder index 02c5d8316..395d54886 100644 --- a/app/views/competition_infos/enroll_list.json.jbuilder +++ b/app/views/competition_infos/enroll_list.json.jbuilder @@ -3,7 +3,7 @@ json.message "success" json.count @competition_users_count json.data do json.array! @competition_users.to_a do |c_user| - json.extract! c_user, :org_name, :org_job, :org_rank, :leader, :zone, :sub_competition, :subject_source_type, :subject_source_name, :phone + json.extract! c_user, :id, :org_name, :org_job, :org_rank, :leader, :zone, :sub_competition, :subject_source_type, :subject_source_name, :phone json.user_id c_user.user_id json.user_real_name c_user.user&.real_name json.members c_user.members diff --git a/app/views/competition_infos/enroll_status.json.jbuilder b/app/views/competition_infos/enroll_status.json.jbuilder index dc82cdafb..5a1a82fdf 100644 --- a/app/views/competition_infos/enroll_status.json.jbuilder +++ b/app/views/competition_infos/enroll_status.json.jbuilder @@ -2,6 +2,7 @@ json.status 0 json.message "success" json.data do json.enroll_status @competition_user.present? + json.status @competition_user&.status.to_i if @competition_user.present? json.enroll_info do json.extract! @competition_user, :org_name, :org_job, :org_rank, :leader, :zone, :sub_competition, :subject_source_type, :subject_source_name, :phone diff --git a/config/routes.rb b/config/routes.rb index 937cebe17..5d2b728e0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -394,6 +394,7 @@ Rails.application.routes.draw do get :statistics get :enroll_status post :enroll_update + post :enroll_status_update post :enroll post :upload end diff --git a/db/migrate/20220421020008_add_competition_user_status.rb b/db/migrate/20220421020008_add_competition_user_status.rb new file mode 100644 index 000000000..8ae80d066 --- /dev/null +++ b/db/migrate/20220421020008_add_competition_user_status.rb @@ -0,0 +1,5 @@ +class AddCompetitionUserStatus < ActiveRecord::Migration[5.2] + def change + add_column :competition_users, :status, :integer, default: 1 + end +end