diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 98e195e30..f06a782bc 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -850,6 +850,8 @@ class CoursesController < ApplicationController # render_403 # return # end + # 统计访问量 + @course.update_attribute(:visits, @course.visits.to_i + 1) #更新创建课程消息状态 create_course_messages = @course.course_messages.where("user_id =? and course_message_type =? and course_id =? and viewed =?", User.current.id, 'Course', @course.id, 0) create_course_messages.update_all(:viewed => true) diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index 0962deb10..f45e1dbd7 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -107,32 +107,18 @@ class NewsController < ApplicationController def show # 更新news对应的forge_messages的消息viewed字段 + ids = @news.comments.map { |comment| comment.id }.join(",") unless @news.comments.nil? if @project - query_message_news = @news.forge_messages + # 更新新闻 + query_message_news = ForgeMessage.where("forge_message_id =? and user_id =? and viewed =?", @news.id, User.current.id, 0).first + # 更新新闻的时候一并更新回复 + ForgeMessage.where("forge_message_id in (#{ids}) and forge_message_type = 'Comment' and user_id = #{User.current.id}").update_all(:viewed => true) unless ids.blank? else - query_message_news = @news.course_messages + query_message_news = CourseMessage.where("course_message_id =? and user_id =? and viewed =?", @news.id, User.current.id, 0).first + CourseMessage.where("course_message_id in (#{ids}) and course_message_type = 'Comment' and user_id = #{User.current.id}").update_all(:viewed => true) unless ids.blank? end - query_message_news.each do |query| - if User.current.id == query.user_id - query.update_attributes(:viewed => true) - end - end - # 更新项目新闻的评阅的消息viewed字段 - current_message_comments = @news.comments - current_message_comments.each do |current_message_comment| - if @project - query_message_comment = current_message_comment.forge_messages - else - query_message_comment = current_message_comment.course_messages - end - query_message_comment.each do |query| - if User.current.id == query.user_id - query.update_attributes(:viewed => true) - end - end - end - # end - + query_message_news.update_attribute(:viewed, true) unless query_message_news.nil? + # over cs = CoursesService.new result = cs.show_course_news params,User.current @news = result[:news] diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index f225e7f50..711663c3d 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -69,6 +69,8 @@ class OrganizationsController < ApplicationController def show if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) @organization = Organization.find(params[:id]) + # 统计访问量 + @organization.update_attribute(:visits, @organization.visits.to_i + 1) if params[:org_subfield_id] @org_subfield = OrgSubfield.find(params[:org_subfield_id]) @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3d5030c29..05c80a9fc 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -298,6 +298,8 @@ class ProjectsController < ApplicationController if params[:jump] && redirect_to_project_menu_item(@project, params[:jump]) return end + # 统计访问量 + @project.update_attribute(:visits, @project.visits.to_i + 1) =begin cond = @project.project_condition(Setting.display_subprojects_issues?) has = { diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 5f591ffd8..47cb864cf 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1182,6 +1182,10 @@ class UsersController < ApplicationController end def show + # 统计访问量 + unless User.current == @user + @user.update_attribute(:visits, @user.visits.to_i + 1) + end #更新用户申请成为课程老师或教辅消息的状态 if params[:course_id] != nil join_course_messages = CourseMessage.where("course_id =? and course_message_type =? and user_id =? and course_message_id =? and viewed =?", diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index d46ddbf06..f382a433c 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -250,7 +250,7 @@ <%= render :partial => 'courses/recommendation', :locals => {:course => @course} %> -
访问计数 100
+
访问计数 <%= @course.visits.to_i %>
diff --git a/app/views/layouts/base_org.html.erb b/app/views/layouts/base_org.html.erb index 4166070c4..201e63a5d 100644 --- a/app/views/layouts/base_org.html.erb +++ b/app/views/layouts/base_org.html.erb @@ -132,7 +132,7 @@
<%= render :partial => "organizations/org_left_subfield_list", :locals => {:organization => @organization} %>
-
访问计数 100
+
访问计数 <%= @organization.visits.to_i %>
<%= render_flash_messages %> diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb index 00525d326..5ad25d5bd 100644 --- a/app/views/layouts/base_projects.html.erb +++ b/app/views/layouts/base_projects.html.erb @@ -159,7 +159,7 @@
-
访问计数 100
+
访问计数 <%= @project.visits.to_i %>
diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index fc42a6ba9..eaf58ed7e 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -226,7 +226,7 @@
-
访问计数 100
+
访问计数 <%= @user.visits.to_i %>
<%= yield %> diff --git a/db/migrate/20160311072540_add_visits_to_user.rb b/db/migrate/20160311072540_add_visits_to_user.rb new file mode 100644 index 000000000..2169a4b0b --- /dev/null +++ b/db/migrate/20160311072540_add_visits_to_user.rb @@ -0,0 +1,5 @@ +class AddVisitsToUser < ActiveRecord::Migration + def change + add_column :users, :visits, :integer, :default => 0 + end +end diff --git a/db/migrate/20160311072622_add_visits_to_project.rb b/db/migrate/20160311072622_add_visits_to_project.rb new file mode 100644 index 000000000..1e67d9409 --- /dev/null +++ b/db/migrate/20160311072622_add_visits_to_project.rb @@ -0,0 +1,5 @@ +class AddVisitsToProject < ActiveRecord::Migration + def change + add_column :projects, :visits, :integer, :default => 0 + end +end diff --git a/db/migrate/20160311072718_add_visits_to_course.rb b/db/migrate/20160311072718_add_visits_to_course.rb new file mode 100644 index 000000000..4d4b682cf --- /dev/null +++ b/db/migrate/20160311072718_add_visits_to_course.rb @@ -0,0 +1,5 @@ +class AddVisitsToCourse < ActiveRecord::Migration + def change + add_column :courses, :visits, :integer, :default => 0 + end +end diff --git a/db/migrate/20160311072819_add_visits_to_organization.rb b/db/migrate/20160311072819_add_visits_to_organization.rb new file mode 100644 index 000000000..74bbcb5c9 --- /dev/null +++ b/db/migrate/20160311072819_add_visits_to_organization.rb @@ -0,0 +1,5 @@ +class AddVisitsToOrganization < ActiveRecord::Migration + def change + add_column :organizations, :visits, :integer, :default => 0 + end +end diff --git a/db/schema.rb b/db/schema.rb index abaafdf80..d738b90c4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160310033019) do +ActiveRecord::Schema.define(:version => 20160311072819) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -508,6 +508,7 @@ ActiveRecord::Schema.define(:version => 20160310033019) do t.integer "is_excellent", :default => 0 t.integer "excellent_option", :default => 0 t.integer "is_copy", :default => 0 + t.integer "visits", :default => 0 end create_table "custom_fields", :force => true do |t| @@ -1284,6 +1285,7 @@ ActiveRecord::Schema.define(:version => 20160310033019) do t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.boolean "allow_guest_download", :default => true + t.integer "visits", :default => 0 end create_table "phone_app_versions", :force => true do |t| @@ -1443,6 +1445,7 @@ ActiveRecord::Schema.define(:version => 20160310033019) do t.integer "acts_count", :default => 0 t.integer "journals_count", :default => 0 t.integer "boards_reply_count", :default => 0 + t.integer "visits", :default => 0 end add_index "projects", ["lft"], :name => "index_projects_on_lft" @@ -1902,6 +1905,7 @@ ActiveRecord::Schema.define(:version => 20160310033019) do t.string "mail_notification", :default => "", :null => false t.string "salt", :limit => 64 t.integer "gid" + t.integer "visits", :default => 0 end add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id"