From 5f39b152cb40e22306dee1beadf84ddf6d3b60f0 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Sat, 2 Nov 2019 20:01:53 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20191030013802_create_competition_prizes.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/db/migrate/20191030013802_create_competition_prizes.rb b/db/migrate/20191030013802_create_competition_prizes.rb index bafacf22d..354c0be1a 100644 --- a/db/migrate/20191030013802_create_competition_prizes.rb +++ b/db/migrate/20191030013802_create_competition_prizes.rb @@ -1,13 +1,13 @@ class CreateCompetitionPrizes < ActiveRecord::Migration[5.2] def change - create_table :competition_prizes do |t| - t.references :competition - - t.string :name - t.string :category - t.integer :num - - t.timestamps - end + # create_table :competition_prizes do |t| + # t.references :competition + # + # t.string :name + # t.string :category + # t.integer :num + # + # t.timestamps + # end end end From 8e1d1bf7cc4d69490fa9dddce7448f928b0e3ca1 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Sat, 2 Nov 2019 20:04:44 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E9=A2=84=E4=B8=8A=E7=BA=BF=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30055341_create_competition_prize_users.rb | 28 +++++++++---------- ...91030062150_create_exercise_user_scores.rb | 14 +++++----- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/db/migrate/20191030055341_create_competition_prize_users.rb b/db/migrate/20191030055341_create_competition_prize_users.rb index ab1e31144..da9a36e61 100644 --- a/db/migrate/20191030055341_create_competition_prize_users.rb +++ b/db/migrate/20191030055341_create_competition_prize_users.rb @@ -1,20 +1,20 @@ class CreateCompetitionPrizeUsers < ActiveRecord::Migration[5.2] def change create_table :competition_prize_users do |t| - t.references :competition - t.references :competition_team - t.references :competition_prize - t.references :user - t.references :approver - - t.string :status - t.integer :rank - t.boolean :leader, default: false - t.text :extra - - t.datetime :approved_at - - t.timestamps + # t.references :competition + # t.references :competition_team + # t.references :competition_prize + # t.references :user + # t.references :approver + # + # t.string :status + # t.integer :rank + # t.boolean :leader, default: false + # t.text :extra + # + # t.datetime :approved_at + # + # t.timestamps end end end diff --git a/db/migrate/20191030062150_create_exercise_user_scores.rb b/db/migrate/20191030062150_create_exercise_user_scores.rb index 911a8a3a5..33b4de1de 100644 --- a/db/migrate/20191030062150_create_exercise_user_scores.rb +++ b/db/migrate/20191030062150_create_exercise_user_scores.rb @@ -1,13 +1,13 @@ class CreateExerciseUserScores < ActiveRecord::Migration[5.2] def change create_table :exercise_user_scores do |t| - t.references :exercise, index: true - t.references :exercise_user, index: true - t.float :score - t.text :comment - t.references :user, index: true - - t.timestamps + # t.references :exercise, index: true + # t.references :exercise_user, index: true + # t.float :score + # t.text :comment + # t.references :user, index: true + # + # t.timestamps end end end From cfc27bb79640321765265782dd345383377585b0 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Sat, 2 Nov 2019 20:06:38 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30055341_create_competition_prize_users.rb | 32 +++++++++---------- ...91030062150_create_exercise_user_scores.rb | 18 +++++------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/db/migrate/20191030055341_create_competition_prize_users.rb b/db/migrate/20191030055341_create_competition_prize_users.rb index da9a36e61..f1d0bd428 100644 --- a/db/migrate/20191030055341_create_competition_prize_users.rb +++ b/db/migrate/20191030055341_create_competition_prize_users.rb @@ -1,20 +1,20 @@ class CreateCompetitionPrizeUsers < ActiveRecord::Migration[5.2] def change - create_table :competition_prize_users do |t| - # t.references :competition - # t.references :competition_team - # t.references :competition_prize - # t.references :user - # t.references :approver - # - # t.string :status - # t.integer :rank - # t.boolean :leader, default: false - # t.text :extra - # - # t.datetime :approved_at - # - # t.timestamps - end + # create_table :competition_prize_users do |t| + # t.references :competition + # t.references :competition_team + # t.references :competition_prize + # t.references :user + # t.references :approver + # + # t.string :status + # t.integer :rank + # t.boolean :leader, default: false + # t.text :extra + # + # t.datetime :approved_at + # + # t.timestamps + # end end end diff --git a/db/migrate/20191030062150_create_exercise_user_scores.rb b/db/migrate/20191030062150_create_exercise_user_scores.rb index 33b4de1de..9a8f002f3 100644 --- a/db/migrate/20191030062150_create_exercise_user_scores.rb +++ b/db/migrate/20191030062150_create_exercise_user_scores.rb @@ -1,13 +1,13 @@ class CreateExerciseUserScores < ActiveRecord::Migration[5.2] def change - create_table :exercise_user_scores do |t| - # t.references :exercise, index: true - # t.references :exercise_user, index: true - # t.float :score - # t.text :comment - # t.references :user, index: true - # - # t.timestamps - end + # create_table :exercise_user_scores do |t| + # t.references :exercise, index: true + # t.references :exercise_user, index: true + # t.float :score + # t.text :comment + # t.references :user, index: true + # + # t.timestamps + # end end end From 6da56a1d585a2bbbd8442ea1348349735d6ef720 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Sat, 2 Nov 2019 20:07:32 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0191030013802_create_competition_prizes.rb | 18 +++++------ ...30055341_create_competition_prize_users.rb | 32 +++++++++---------- ...91030062150_create_exercise_user_scores.rb | 18 +++++------ 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/db/migrate/20191030013802_create_competition_prizes.rb b/db/migrate/20191030013802_create_competition_prizes.rb index 354c0be1a..bafacf22d 100644 --- a/db/migrate/20191030013802_create_competition_prizes.rb +++ b/db/migrate/20191030013802_create_competition_prizes.rb @@ -1,13 +1,13 @@ class CreateCompetitionPrizes < ActiveRecord::Migration[5.2] def change - # create_table :competition_prizes do |t| - # t.references :competition - # - # t.string :name - # t.string :category - # t.integer :num - # - # t.timestamps - # end + create_table :competition_prizes do |t| + t.references :competition + + t.string :name + t.string :category + t.integer :num + + t.timestamps + end end end diff --git a/db/migrate/20191030055341_create_competition_prize_users.rb b/db/migrate/20191030055341_create_competition_prize_users.rb index f1d0bd428..ab1e31144 100644 --- a/db/migrate/20191030055341_create_competition_prize_users.rb +++ b/db/migrate/20191030055341_create_competition_prize_users.rb @@ -1,20 +1,20 @@ class CreateCompetitionPrizeUsers < ActiveRecord::Migration[5.2] def change - # create_table :competition_prize_users do |t| - # t.references :competition - # t.references :competition_team - # t.references :competition_prize - # t.references :user - # t.references :approver - # - # t.string :status - # t.integer :rank - # t.boolean :leader, default: false - # t.text :extra - # - # t.datetime :approved_at - # - # t.timestamps - # end + create_table :competition_prize_users do |t| + t.references :competition + t.references :competition_team + t.references :competition_prize + t.references :user + t.references :approver + + t.string :status + t.integer :rank + t.boolean :leader, default: false + t.text :extra + + t.datetime :approved_at + + t.timestamps + end end end diff --git a/db/migrate/20191030062150_create_exercise_user_scores.rb b/db/migrate/20191030062150_create_exercise_user_scores.rb index 9a8f002f3..911a8a3a5 100644 --- a/db/migrate/20191030062150_create_exercise_user_scores.rb +++ b/db/migrate/20191030062150_create_exercise_user_scores.rb @@ -1,13 +1,13 @@ class CreateExerciseUserScores < ActiveRecord::Migration[5.2] def change - # create_table :exercise_user_scores do |t| - # t.references :exercise, index: true - # t.references :exercise_user, index: true - # t.float :score - # t.text :comment - # t.references :user, index: true - # - # t.timestamps - # end + create_table :exercise_user_scores do |t| + t.references :exercise, index: true + t.references :exercise_user, index: true + t.float :score + t.text :comment + t.references :user, index: true + + t.timestamps + end end end From 706160d8429bb823134b6a347e3a62a6a6e6633a Mon Sep 17 00:00:00 2001 From: p31729568 Date: Mon, 4 Nov 2019 10:47:10 +0800 Subject: [PATCH 5/9] admin: competition prize user list bank info --- app/views/admins/competition_prize_users/shared/_tr.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admins/competition_prize_users/shared/_tr.html.erb b/app/views/admins/competition_prize_users/shared/_tr.html.erb index 18912c36a..75cf7c92e 100644 --- a/app/views/admins/competition_prize_users/shared/_tr.html.erb +++ b/app/views/admins/competition_prize_users/shared/_tr.html.erb @@ -16,7 +16,7 @@ <% if prize_user.leader? && prize_user.competition_prize.category == 'bonus' %> <% bank_content = [prize_user.extra&.[]('bank'), prize_user.extra&.[]('second_bank'), prize_user.extra&.[]('card_no')].compact.join('
').presence || '无' %> - <%= javascript_void_link('查看银行账户', data: { toggle: 'popover', title: '银行账号', content: bank_content.html_safe, html: true }) %> + <%= javascript_void_link('查看银行账户', data: { toggle: 'tooltip', title: bank_content.html_safe, html: true, placement: 'left' }) %> <% end %> <% if prize_user.pending? %> From 1be63d19af5df744a26108290dad47c21967169a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Mon, 4 Nov 2019 14:36:50 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=AD=94=E6=A1=88?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E9=97=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/games_controller.rb | 2 ++ app/helpers/myshixuns_helper.rb | 4 ++++ app/models/challenge_answer.rb | 5 +++++ app/models/game.rb | 2 +- app/models/game_answer.rb | 5 +++++ app/views/games/get_answer_info.json.jbuilder | 1 + app/views/myshixuns/challenges.json.jbuilder | 2 ++ db/migrate/20191104033349_create_game_answers.rb | 13 +++++++++++++ .../20191104055038_add_index_for_game_answers.rb | 5 +++++ spec/models/game_answer_spec.rb | 5 +++++ 10 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 app/models/game_answer.rb create mode 100644 db/migrate/20191104033349_create_game_answers.rb create mode 100644 db/migrate/20191104055038_add_index_for_game_answers.rb create mode 100644 spec/models/game_answer_spec.rb diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index 78f665b3d..1457cafcc 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -290,6 +290,7 @@ class GamesController < ApplicationController answer_deduction = challenge.challenge_answers.where("level <= #{@answer.level}").sum(:score) @game.update_attributes!(:answer_open => answer_open, :answer_deduction => answer_deduction) end + GameAnswer.create!(challenge_answer_id: @answer.id, user_id: current_user.id, game_id: @game.id, view_time: Time.now) rescue Exception => e uid_logger_error("#######金币扣除异常: #{e.message}") @@ -317,6 +318,7 @@ class GamesController < ApplicationController @game.update_attributes!(:answer_open => 1, :answer_deduction => 100) end @challenge_chooses = @challenge.challenge_chooses + GameAnswer.create!(user_id: current_user.id, game_id: @game.id, view_time: Time.now) rescue Exception => e uid_logger_error("#######金币扣除异常: #{e.message}") raise ActiveRecord::Rollback diff --git a/app/helpers/myshixuns_helper.rb b/app/helpers/myshixuns_helper.rb index 2a487e361..e643555e1 100644 --- a/app/helpers/myshixuns_helper.rb +++ b/app/helpers/myshixuns_helper.rb @@ -11,4 +11,8 @@ module MyshixunsHelper nil end end + + def view_answer_time game, user_id + game.game_answers.where(user_id: user_id).last&.view_time + end end diff --git a/app/models/challenge_answer.rb b/app/models/challenge_answer.rb index 93b11be66..0ce757d71 100644 --- a/app/models/challenge_answer.rb +++ b/app/models/challenge_answer.rb @@ -1,4 +1,9 @@ class ChallengeAnswer < ApplicationRecord default_scope { order("challenge_answers.level asc") } belongs_to :challenge + has_many :game_answers, :dependent => :destroy + + def view_answer_time(user_id) + game_answers.where(user_id: user_id).last&.view_time + end end diff --git a/app/models/game.rb b/app/models/game.rb index d7c68dd5f..7aa2e7264 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -15,7 +15,7 @@ class Game < ApplicationRecord belongs_to :user belongs_to :challenge has_one :run_code_message, :dependent => :destroy - + has_many :game_answers, :dependent => :destroy #全部关卡数 scope :ch_games, lambda { |challenge_id| where(challenge_id:challenge_id) } diff --git a/app/models/game_answer.rb b/app/models/game_answer.rb new file mode 100644 index 000000000..c355b0a6c --- /dev/null +++ b/app/models/game_answer.rb @@ -0,0 +1,5 @@ +class GameAnswer < ApplicationRecord + belongs_to :user + belongs_to :game + belongs_to :challenge_answer +end diff --git a/app/views/games/get_answer_info.json.jbuilder b/app/views/games/get_answer_info.json.jbuilder index 0f150d500..29d88933c 100644 --- a/app/views/games/get_answer_info.json.jbuilder +++ b/app/views/games/get_answer_info.json.jbuilder @@ -7,6 +7,7 @@ json.message do json.answer_id answer.id json.answer_name answer.name json.answer_score answer.score + json.view_time answer.view_answer_time(current_user.id) # 高层级不给答案 if @power || @game.answer_open >= index json.answer_contents answer.contents diff --git a/app/views/myshixuns/challenges.json.jbuilder b/app/views/myshixuns/challenges.json.jbuilder index 0be94d9fd..de0864665 100644 --- a/app/views/myshixuns/challenges.json.jbuilder +++ b/app/views/myshixuns/challenges.json.jbuilder @@ -6,4 +6,6 @@ json.array! @games do |game| json.identifier get_game_identifier(@shixun.task_pass, game, @identity) json.get_gold game.user_get_gold_and_experience(@shixun.status, challenge)[0] json.get_experience game.user_get_gold_and_experience(@shixun.status, challenge)[1] + json.view_answer_time view_answer_time(game, user_id) + json.finished_time game.end_time end \ No newline at end of file diff --git a/db/migrate/20191104033349_create_game_answers.rb b/db/migrate/20191104033349_create_game_answers.rb new file mode 100644 index 000000000..211a0c29d --- /dev/null +++ b/db/migrate/20191104033349_create_game_answers.rb @@ -0,0 +1,13 @@ +class CreateGameAnswers < ActiveRecord::Migration[5.2] + def change + create_table :game_answers do |t| + t.references :challenge_answer + t.references :user + t.references :game + t.datetime :view_time + + t.timestamps + end + + end +end diff --git a/db/migrate/20191104055038_add_index_for_game_answers.rb b/db/migrate/20191104055038_add_index_for_game_answers.rb new file mode 100644 index 000000000..7cd59c6ee --- /dev/null +++ b/db/migrate/20191104055038_add_index_for_game_answers.rb @@ -0,0 +1,5 @@ +class AddIndexForGameAnswers < ActiveRecord::Migration[5.2] + def change + add_index :game_answers, [:challenge_answer_id, :user_id], :unique => true + end +end diff --git a/spec/models/game_answer_spec.rb b/spec/models/game_answer_spec.rb new file mode 100644 index 000000000..07e46c052 --- /dev/null +++ b/spec/models/game_answer_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe GameAnswer, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end From 17670003e2ecacf9021175bb7ec77d6619c7c7e5 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Mon, 4 Nov 2019 14:40:33 +0800 Subject: [PATCH 7/9] fix bug --- app/views/myshixuns/challenges.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/myshixuns/challenges.json.jbuilder b/app/views/myshixuns/challenges.json.jbuilder index de0864665..e16896451 100644 --- a/app/views/myshixuns/challenges.json.jbuilder +++ b/app/views/myshixuns/challenges.json.jbuilder @@ -6,6 +6,6 @@ json.array! @games do |game| json.identifier get_game_identifier(@shixun.task_pass, game, @identity) json.get_gold game.user_get_gold_and_experience(@shixun.status, challenge)[0] json.get_experience game.user_get_gold_and_experience(@shixun.status, challenge)[1] - json.view_answer_time view_answer_time(game, user_id) + json.view_answer_time view_answer_time(game, current_user.id) json.finished_time game.end_time end \ No newline at end of file From f620ff8bbd6ea968fda34da8fdd5832c0516c65f Mon Sep 17 00:00:00 2001 From: p31729568 Date: Mon, 4 Nov 2019 14:50:36 +0800 Subject: [PATCH 8/9] export shixun work pdf code wrap --- app/templates/shixun_work/shixun_work.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/templates/shixun_work/shixun_work.html.erb b/app/templates/shixun_work/shixun_work.html.erb index a6ef48c3e..c4ea11f1e 100644 --- a/app/templates/shixun_work/shixun_work.html.erb +++ b/app/templates/shixun_work/shixun_work.html.erb @@ -249,6 +249,7 @@ autoRefresh: true, smartIndent: true,//智能换行 styleActiveLine: true, + lineWrapping: true, lint: true, readOnly: "nocursor" }); From b8a57ae4dcf45a9eaba69a6e942514ce0179291b Mon Sep 17 00:00:00 2001 From: p31729568 Date: Mon, 4 Nov 2019 15:05:43 +0800 Subject: [PATCH 9/9] admin: competition prize user bank info --- app/views/admins/competition_prize_users/shared/_tr.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admins/competition_prize_users/shared/_tr.html.erb b/app/views/admins/competition_prize_users/shared/_tr.html.erb index 75cf7c92e..66d0b64ad 100644 --- a/app/views/admins/competition_prize_users/shared/_tr.html.erb +++ b/app/views/admins/competition_prize_users/shared/_tr.html.erb @@ -16,7 +16,7 @@ <% if prize_user.leader? && prize_user.competition_prize.category == 'bonus' %> <% bank_content = [prize_user.extra&.[]('bank'), prize_user.extra&.[]('second_bank'), prize_user.extra&.[]('card_no')].compact.join('
').presence || '无' %> - <%= javascript_void_link('查看银行账户', data: { toggle: 'tooltip', title: bank_content.html_safe, html: true, placement: 'left' }) %> + <%= javascript_void_link('查看银行账户', data: { toggle: 'tooltip', title: bank_content.html_safe, html: true, placement: 'left', trigger: 'click' }) %> <% end %> <% if prize_user.pending? %>