From eb7f4e6da3cac2458aca9da17d7b8d72ab0000f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Mon, 24 Oct 2022 16:21:42 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E8=B5=84=E8=AE=AF=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=8A=A5=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../competition_infos_controller.rb | 2 +- app/controllers/watchers_controller.rb | 2 ++ app/models/platform_communicate.rb | 19 +++++++++++-------- .../competition_infos/show.json.jbuilder | 2 +- .../platform_communicates/index.json.jbuilder | 1 + ...0221023114231_add_competition_info_sort.rb | 6 ++++++ 6 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20221023114231_add_competition_info_sort.rb diff --git a/app/controllers/competition_infos_controller.rb b/app/controllers/competition_infos_controller.rb index 5b7f1eb2..ad29137f 100644 --- a/app/controllers/competition_infos_controller.rb +++ b/app/controllers/competition_infos_controller.rb @@ -325,7 +325,7 @@ class CompetitionInfosController < ApplicationController def competition_info_params params.require(:competition_info).permit(:title, :zones, :zones_local, :sub_competitions, :identifier, :content, :video_url, :is_local, :manager_ids, :upload_date, :enroll_date, :guide, :about_us, - :banner_url, :enroll_template, :enroll_columns, :applet_banner_url,:start_at) + :banner_url, :enroll_template, :enroll_columns, :applet_banner_url,:start_at, :sort_no) end def find_competition diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index f338fd9a..8684df95 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -50,6 +50,8 @@ class WatchersController < ApplicationController @target = target_type.capitalize.constantize.find_by(id: params[:id]) when "competition_info" @target = CompetitionInfo.where(:identifier => params[:id]).exists? ? CompetitionInfo.find_by(:identifier => params[:id]) : CompetitionInfo.find_by(id: params[:id]) + when "platform_communicate" + @target = PlatformCommunicate.find_by(id: params[:id]) else @target = target_type.capitalize.constantize.find_by(login: params[:id]) #用户 end diff --git a/app/models/platform_communicate.rb b/app/models/platform_communicate.rb index 0c7f6256..0e15fe6f 100644 --- a/app/models/platform_communicate.rb +++ b/app/models/platform_communicate.rb @@ -2,15 +2,18 @@ # # Table name: platform_communicates # -# id :integer not null, primary key -# title :string(255) -# content :text(65535) -# tag_field :text(65535) -# fake_id :integer -# created_at :datetime not null -# updated_at :datetime not null -# order_index :integer default(0) +# id :integer not null, primary key +# title :string(255) +# content :text(65535) +# tag_field :text(65535) +# fake_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# order_index :integer default("0") +# watchers_count :integer default("0") # class PlatformCommunicate < ApplicationRecord + + has_many :watchers, as: :watchable, dependent: :destroy end diff --git a/app/views/competition_infos/show.json.jbuilder b/app/views/competition_infos/show.json.jbuilder index 7eaec202..51dc00d3 100644 --- a/app/views/competition_infos/show.json.jbuilder +++ b/app/views/competition_infos/show.json.jbuilder @@ -1,7 +1,7 @@ json.status 0 json.message "success" json.data do - json.extract! @competition_info, :id, :identifier, :title, :content, :video_url, :is_local, :enroll_date, :upload_date, :guide, :about_us,:banner_url,:enroll_template, :applet_banner_url, :watchers_count,:start_at, :visits + json.extract! @competition_info, :id, :identifier, :title, :content, :video_url, :is_local, :enroll_date, :upload_date, :guide, :about_us,:banner_url,:enroll_template, :applet_banner_url, :watchers_count,:start_at, :visits, :sort_no json.zones @competition_info.competition_zones json.sub_competitions @competition_info.sub_competitions.to_s.split(",") json.is_manager @competition_info.is_manager?(current_user) diff --git a/app/views/home/platform_communicates/index.json.jbuilder b/app/views/home/platform_communicates/index.json.jbuilder index a7d3d390..eccba021 100644 --- a/app/views/home/platform_communicates/index.json.jbuilder +++ b/app/views/home/platform_communicates/index.json.jbuilder @@ -4,5 +4,6 @@ json.communicates do json.(communicate, :id, :title, :content, :fake_id) json.tag communicate.tag_field.include?(',') ? communicate.tag_field.split(",") : communicate.tag_field json.created_time format_time(Memo.find_by(id: communicate.fake_id)&.published_at) + json.watched current_user.watched?(communicate) end end \ No newline at end of file diff --git a/db/migrate/20221023114231_add_competition_info_sort.rb b/db/migrate/20221023114231_add_competition_info_sort.rb new file mode 100644 index 00000000..447ebd01 --- /dev/null +++ b/db/migrate/20221023114231_add_competition_info_sort.rb @@ -0,0 +1,6 @@ +class AddCompetitionInfoSort < ActiveRecord::Migration[5.2] + def change + add_column :competition_infos, :sort_no, :integer, default: 0 + add_column :platform_communicates, :watchers_count, :integer, default: 0 + end +end