From 5afb8d00d687c4df021efec95c557fc03a413744 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 27 May 2019 17:09:48 +0800
Subject: [PATCH 01/32] =?UTF-8?q?=E5=A5=BD=E5=A4=A7=E5=AD=A6=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/api/mobile/api.rb | 13 +++++-
app/api/mobile/apis/cnmooc.rb | 54 ++++++++++++++++++++++
app/services/cnmoocs_service.rb | 82 +++++++++++++++++++++++++++++++++
3 files changed, 148 insertions(+), 1 deletion(-)
create mode 100644 app/api/mobile/apis/cnmooc.rb
create mode 100644 app/services/cnmoocs_service.rb
diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb
index eefedb5b..d13dc61f 100644
--- a/app/api/mobile/api.rb
+++ b/app/api/mobile/api.rb
@@ -36,7 +36,7 @@ module Mobile
content_type :json, "application/json;charset=UTF-8"
# use ActionDispatch::Session::CookieStore
-
+ require 'digest'
use Mobile::Middleware::ErrorHandler
helpers do
@@ -53,6 +53,16 @@ module Mobile
error!('401 Unauthorized', 401) if params[:private_token] != "hriEn3UwXfJs3PmyXnSG"
end
+ def cnmooc_access_key!
+ ## 签名
+ accessKeyId = 'LTAISM4HFWpQHh3g'.freeze
+ accessKeySecret = '9NMU8ushmFu8SN1EKHOhvo9jmv1qp0'.freeze
+ sign = Digest::MD5.hexdigest("AccessKeyId=#{accessKeyId}AccessKeySecret=#{accessKeySecret}").upcase
+ if params[:sign] != sign
+ error!('401 Unauthorized', 401)
+ end
+ end
+
# 有一些接口没登录也能查看数据
def career_authenticate!
pass = request.path.include?("introduction") || request.path.include?("get_published_careers")|| request.path.include?("get_current_user")
@@ -160,6 +170,7 @@ module Mobile
mount Apis::Careers
mount Apis::Assets
mount Apis::Ecloud
+ mount Apis::Cnmooc
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
new file mode 100644
index 00000000..f49b4f66
--- /dev/null
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -0,0 +1,54 @@
+# encoding=utf-8
+# 好大学接口数据
+module Mobile
+ module Apis
+ class Cnmooc < Grape::API
+ before {cnmooc_access_key!}
+ content_type :json, 'application/json;charset=UTF-8'
+
+ resources :cnmoocs do
+ desc '获取实训数据'
+ get "get_resources_data" do
+ CnmoocsService.new.get_resources_data params
+ end
+
+ desc "实训搜索功能"
+ params do
+ requires :name, type: String, desc: "搜索名称"
+ end
+ get 'search_resources' do
+ CnmoocsService.new.search_resources params
+ end
+
+ desc " 查找用户"
+ params do
+ requires :mail, type: String, desc: "邮箱地址"
+ end
+ get 'find_user' do
+ CnmoocsService.new.find_user params
+ end
+
+ desc "创建用户"
+ params do
+ requires :mail, type: String, desc: "邮箱地址"
+ requires :name, type: String, desc: "昵称"
+ requires :password, type: String, desc: "密码"
+ end
+ post "create_user" do
+ CnmoocsService.new.create_user params
+ end
+
+ desc "远程登录"
+ params do
+ requires :mail, type: String, desc: "邮箱地址"
+ requires :password, type: String, desc: "密码"
+ end
+ get "login_educoder" do
+ CnmoocsService.new.login_educoder params
+ end
+
+
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
new file mode 100644
index 00000000..02e6d54b
--- /dev/null
+++ b/app/services/cnmoocs_service.rb
@@ -0,0 +1,82 @@
+class CnmoocsService
+ include ApplicationHelper
+ include GamesHelper
+
+ def get_resources_data params
+ page = params[:pageNo].to_i
+ limit = params[:pageSize] || 16
+ offset = page * limit.to_i
+ shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
+ where(status: 0, hidden: 0).order("myshixun_count desc")
+ shixun_count = shixuns.count
+ pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
+ shixuns = shixuns.offset(offset).limit(limit)
+ shixun_list = shixun_data shixuns
+ {error: 0, messages: "请求成功",
+ page: {count: shixuns.count, totalCount: shixun_count, pageNo: page, pageSize: limit, pageCount: pageCount},
+ data: shixun_list }
+ end
+
+ def search_resources params
+ page = params[:pageNo].to_i
+ limit = params[:pageSize] || 16
+ offset = page * limit.to_i
+ shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
+ where(status: 2, hidden: 0).where("name like ?", "%#{params[:name]}%").offset(offset).limit(limit)
+ shixun_count = shixuns.count
+ pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
+ shixuns = shixuns.offset(offset).limit(limit)
+ shixun_list = shixun_data shixuns
+ {error: 0, messages: "请求成功",
+ page: {count: shixuns.count, totalCount: shixun_count, pageNo: page, pageSize: limit, pageCount: pageCount},
+ data: shixun_list }
+ end
+
+ def find_user params
+ user = User.find_by_mail params[:mail]
+ if user
+ {error: 0, message: "找到用户"}
+ else
+ {error: -1, message: "找不到用户"}
+ end
+ end
+
+ def create_user params
+ user = User.find_by_mail params[:mail]
+ if user.blank?
+ ActiveRecord::Base.transaction do
+ # 如果Educoder中已存在与该OpenI用户的邮箱相同的用户,则会直接跳转到登录educoder的登录页面
+ user = User.new(lastname: params[:name], mail: params[:mail], mail_notification: email)
+ user.login = generate_login('m')
+ user.password = params[:password]
+ user.certification = 1
+ user.save!
+ UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
+ end
+ {error: 0, message: "创建成功"}
+ else
+ {error: -1, message: "邮箱已经存在,请直接使用邮箱登录"}
+ end
+ end
+
+ def login_educoder params
+ user, last_login_on = User.try_to_login(params[:mail], params[:password])
+ self.logged_user = user
+ {error: 0, message: "登录成功"}
+ end
+
+
+ private
+ def shixun_data shixuns
+ shixun_list = []
+ shixuns.includes(:tag_repertoires).find_each do |shixun|
+ tag_name = shixun.tag_repertoires.first.try(:name)
+ level = %W(初级 中级 高级 顶级)[shixun.trainee - 1]
+ shixun_list << {identifier: shixun.identifier, name: shixun.name, students_count: shixun.myshixuns_count,
+ challenges_count: shixun.challenges_count, score_info: shixun.averge_star, level: level}
+
+ end
+ {resouces: shixun_list}
+ end
+
+end
\ No newline at end of file
From d56728da62240b50159773b858916cc4e70e1248 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 27 May 2019 17:44:07 +0800
Subject: [PATCH 02/32] =?UTF-8?q?=E5=A5=BD=E5=A4=A7=E5=AD=A6=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/cnmoocs_service.rb | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 02e6d54b..fbb8d55c 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -7,10 +7,12 @@ class CnmoocsService
limit = params[:pageSize] || 16
offset = page * limit.to_i
shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
- where(status: 0, hidden: 0).order("myshixun_count desc")
+ where(status: 0, hidden: 0)
shixun_count = shixuns.count
pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
- shixuns = shixuns.offset(offset).limit(limit)
+ Rails.logger.info("#####{pageCount}")
+ Rails.logger.info("#####{limit}")
+ shixuns = shixuns.order("myshixuns_count desc").offset(offset).limit(limit)
shixun_list = shixun_data shixuns
{error: 0, messages: "请求成功",
page: {count: shixuns.count, totalCount: shixun_count, pageNo: page, pageSize: limit, pageCount: pageCount},
@@ -22,10 +24,10 @@ class CnmoocsService
limit = params[:pageSize] || 16
offset = page * limit.to_i
shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
- where(status: 2, hidden: 0).where("name like ?", "%#{params[:name]}%").offset(offset).limit(limit)
+ where(status: 2, hidden: 0).where("name like ?", "%#{params[:name]}%")
shixun_count = shixuns.count
pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
- shixuns = shixuns.offset(offset).limit(limit)
+ shixuns = shixuns.order("myshixuns_count desc").offset(offset).limit(limit)
shixun_list = shixun_data shixuns
{error: 0, messages: "请求成功",
page: {count: shixuns.count, totalCount: shixun_count, pageNo: page, pageSize: limit, pageCount: pageCount},
@@ -69,7 +71,7 @@ class CnmoocsService
private
def shixun_data shixuns
shixun_list = []
- shixuns.includes(:tag_repertoires).find_each do |shixun|
+ shixuns.includes(:tag_repertoires).each do |shixun|
tag_name = shixun.tag_repertoires.first.try(:name)
level = %W(初级 中级 高级 顶级)[shixun.trainee - 1]
shixun_list << {identifier: shixun.identifier, name: shixun.name, students_count: shixun.myshixuns_count,
From f027b52e4a874bfd4ea9c6300cfdc9c5a513d9f0 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 27 May 2019 17:58:52 +0800
Subject: [PATCH 03/32] =?UTF-8?q?=E5=A5=BD=E5=A4=A7=E5=AD=A6=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/cnmoocs_service.rb | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index fbb8d55c..40f75a8c 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -37,9 +37,9 @@ class CnmoocsService
def find_user params
user = User.find_by_mail params[:mail]
if user
- {error: 0, message: "找到用户"}
+ {error: 0, messages: "找到用户"}
else
- {error: -1, message: "找不到用户"}
+ {error: -1, messages: "找不到用户"}
end
end
@@ -55,16 +55,21 @@ class CnmoocsService
user.save!
UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
end
- {error: 0, message: "创建成功"}
+ {error: 0, messages: "创建成功"}
else
- {error: -1, message: "邮箱已经存在,请直接使用邮箱登录"}
+ {error: -1, messages: "邮箱已经存在,请直接使用邮箱登录"}
end
end
def login_educoder params
user, last_login_on = User.try_to_login(params[:mail], params[:password])
- self.logged_user = user
- {error: 0, message: "登录成功"}
+ if user
+ self.logged_user = user
+ {error: 0, messages: "登录成功"}
+ else
+ {error: -1, messages: "登录失败,请检查邮箱和密码是否正确"}
+ end
+
end
From 40a1e1d0341e536af7f731e6db6a7056a8287e7c Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 09:49:24 +0800
Subject: [PATCH 04/32] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E5=8F=8D=E9=A6=88?=
=?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7=E5=9B=9E?=
=?UTF-8?q?=E5=A4=8D=E5=86=85=E5=AE=B9=E5=92=8C=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/managements_controller.rb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb
index 851c50e6..0f62dbe8 100644
--- a/app/controllers/managements_controller.rb
+++ b/app/controllers/managements_controller.rb
@@ -4295,7 +4295,7 @@ end
count_row = 1
shixuns = Shixun.where(:id => shixun_ids).includes(discusses: [:user])
sheet1.row(0).concat(["序号", "实训ID", "实训名称", "实训作者", "作者单位", "评论数", "评论内容", "关卡", "评论者", "评论者职业",
- "评论者单位", "评论时间", "社区导师是否已回复"])
+ "评论者单位", "评论时间", "社区导师是否已回复", "我的账号回复内容", "回复时间"])
shixuns.each_with_index do |shixun, i|
discusses = shixun.discusses.where("user_id != ?", 1)
if beginTime.present?
@@ -4313,6 +4313,7 @@ end
discusses.each_with_index do |discuss, j|
user = discuss.user
content = discuss.content.gsub(//, "【图片评论】").gsub(/!\[\].+\)/, "【图片评论】")
+ myself_discuss = discuss.children.where(user_id: User.current.id).last
sheet1[count_row, 6] = strip_html content
sheet1[count_row, 7] = "第#{discuss.position}关"
sheet1[count_row, 8] = user.show_real_name
@@ -4320,6 +4321,8 @@ end
sheet1[count_row, 10] = user.school_name
sheet1[count_row, 11] = format_time discuss.created_at
sheet1[count_row, 12] = discuss.children.pluck(:user_id).include?(1) ? "是" : "否"
+ sheet1[count_row, 13] = myself_discuss.try(:content)
+ sheet1[count_row, 14] = myself_discuss ? (format_time myself_discuss.created_at) : ""
count_row += 1
end
#count_row += 1
From f17754c1480c140ad289bc7d16a5257996dac965 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 11:13:43 +0800
Subject: [PATCH 05/32] 1
---
app/services/cnmoocs_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 40f75a8c..33f166da 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -7,7 +7,7 @@ class CnmoocsService
limit = params[:pageSize] || 16
offset = page * limit.to_i
shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
- where(status: 0, hidden: 0)
+ where(status: 2, hidden: 0)
shixun_count = shixuns.count
pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
Rails.logger.info("#####{pageCount}")
From ee2ae75ecc65f616c6a7cfa38f691f30545d3526 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 14:10:01 +0800
Subject: [PATCH 06/32] fix axlsx gem
---
Gemfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index 11029470..7909cb17 100644
--- a/Gemfile
+++ b/Gemfile
@@ -63,8 +63,8 @@ gem 'elasticsearch-rails'
gem 'oauth2'
# xlsx
-#gem 'axlsx', '3.0.0.pre'
-#gem 'axlsx_rails', '0.3.0'
+gem 'axlsx', '3.0.0.pre'
+gem 'axlsx_rails', '0.3.0'
#Ruby 2.2+ has removed test/unit from the core library.
if RUBY_VERSION>='2.2'
From 924448efaacacaf628a0da91485284d1774129bd Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Tue, 28 May 2019 15:02:09 +0800
Subject: [PATCH 07/32] =?UTF-8?q?=E5=8F=96=E5=87=BA=E8=A1=A5=E4=BA=A4?=
=?UTF-8?q?=E7=9A=84=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/student_work_controller.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb
index 8885353c..464a2842 100644
--- a/app/controllers/student_work_controller.rb
+++ b/app/controllers/student_work_controller.rb
@@ -647,7 +647,7 @@ class StudentWorkController < ApplicationController
uid: "#{work.user.user_extensions.student_id}",
downloadUrl: ''
}
- attachment = work.attachments.first
+ attachment = work.attachments.last
if attachment
o[:downloadUrl] = "https://#{Setting.host_name}/"+download_named_attachment_path(attachment.id, attachment.filename)
end
From 50e0bf1a92eb79b1633df92b40ea95ae2e37cf48 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 15:07:33 +0800
Subject: [PATCH 08/32] 1
---
app/services/cnmoocs_service.rb | 2 --
1 file changed, 2 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 33f166da..e3bb8cee 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -10,8 +10,6 @@ class CnmoocsService
where(status: 2, hidden: 0)
shixun_count = shixuns.count
pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
- Rails.logger.info("#####{pageCount}")
- Rails.logger.info("#####{limit}")
shixuns = shixuns.order("myshixuns_count desc").offset(offset).limit(limit)
shixun_list = shixun_data shixuns
{error: 0, messages: "请求成功",
From 02aa938fe48f5b2a5399e34adec09ca5308730c5 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 16:26:57 +0800
Subject: [PATCH 09/32] add cnmooc use create api
---
app/api/mobile/apis/cnmooc.rb | 5 +--
app/models/cnmooc_user.rb | 8 ++++
app/models/user_source.rb | 21 ++++++++++
app/services/cnmoocs_service.rb | 41 +++++++++++--------
.../20190528075558_create_user_sources.rb | 15 +++++++
5 files changed, 71 insertions(+), 19 deletions(-)
create mode 100644 app/models/cnmooc_user.rb
create mode 100644 app/models/user_source.rb
create mode 100644 db/migrate/20190528075558_create_user_sources.rb
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index f49b4f66..a45989c3 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -30,9 +30,8 @@ module Mobile
desc "创建用户"
params do
- requires :mail, type: String, desc: "邮箱地址"
- requires :name, type: String, desc: "昵称"
- requires :password, type: String, desc: "密码"
+ requires :userName, type: String, desc: "好大学用户名"
+ optional :name, type: String, desc: "用户姓名"
end
post "create_user" do
CnmoocsService.new.create_user params
diff --git a/app/models/cnmooc_user.rb b/app/models/cnmooc_user.rb
new file mode 100644
index 00000000..e834c768
--- /dev/null
+++ b/app/models/cnmooc_user.rb
@@ -0,0 +1,8 @@
+class CnmoocUser < UserSource
+
+ private
+
+ def email_prefix
+ 'cnmooc_'
+ end
+end
diff --git a/app/models/user_source.rb b/app/models/user_source.rb
new file mode 100644
index 00000000..d8fb350d
--- /dev/null
+++ b/app/models/user_source.rb
@@ -0,0 +1,21 @@
+class UserSource < ActiveRecord::Base
+ belongs_to :user
+
+ def generate_email
+ email = rand_email
+ while User.exists?(mail: email) do
+ email = rand_email
+ end
+ email
+ end
+
+ private
+
+ def rand_email
+ email_prefix + Random.rand.to_s[2..8] + '@educoder.com'
+ end
+
+ def email_prefix
+ ''
+ end
+end
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 33f166da..5057fabe 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -43,22 +43,32 @@ class CnmoocsService
end
end
- def create_user params
- user = User.find_by_mail params[:mail]
- if user.blank?
- ActiveRecord::Base.transaction do
- # 如果Educoder中已存在与该OpenI用户的邮箱相同的用户,则会直接跳转到登录educoder的登录页面
- user = User.new(lastname: params[:name], mail: params[:mail], mail_notification: email)
- user.login = generate_login('m')
- user.password = params[:password]
- user.certification = 1
- user.save!
- UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
- end
- {error: 0, messages: "创建成功"}
- else
- {error: -1, messages: "邮箱已经存在,请直接使用邮箱登录"}
+ def create_user(params)
+ c_user = CnmoocUser.find_by_uuid(params[:userName])
+
+ if c_user.present?
+ return { error: -1, messages: '用户已存在' }
end
+
+ mail = c_user.generate_email
+ create_params = {
+ lastname: params[:name],
+ mail: mail,
+ mail_notification: mail,
+ login: generate_login('m'),
+ password: OauthController::DEFAULT_PASSWORD,
+ certification: 1
+ }
+ ActiveRecord::Base.transaction do
+ user = User.create!(create_params)
+
+ UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
+
+ c_user.user_id = user.id
+ c_user.save!
+ end
+
+ { error: 0, messages: "创建成功", data: { userId: user.id } }
end
def login_educoder params
@@ -85,5 +95,4 @@ class CnmoocsService
end
{resouces: shixun_list}
end
-
end
\ No newline at end of file
diff --git a/db/migrate/20190528075558_create_user_sources.rb b/db/migrate/20190528075558_create_user_sources.rb
new file mode 100644
index 00000000..03f6c12a
--- /dev/null
+++ b/db/migrate/20190528075558_create_user_sources.rb
@@ -0,0 +1,15 @@
+class CreateUserSources < ActiveRecord::Migration
+ def change
+ create_table :user_sources do |t|
+ t.string :type
+ t.integer :user_id
+ t.string :uuid
+ t.string :name
+
+ t.timestamps
+ end
+
+ add_index :user_sources, [:type, :uuid], unique: true
+ add_index :user_sources, :user_id
+ end
+end
From 3d1e29cf0a7b73029042ef9a51428231660e1aee Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 16:46:59 +0800
Subject: [PATCH 10/32] cnmooc source url
---
app/api/mobile/apis/cnmooc.rb | 10 ++++++++++
app/controllers/application_controller.rb | 3 +++
app/models/user.rb | 2 ++
app/services/cnmoocs_service.rb | 14 ++++++++++++++
4 files changed, 29 insertions(+)
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index a45989c3..42a6cfe3 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -37,6 +37,16 @@ module Mobile
CnmoocsService.new.create_user params
end
+ desc "获取资源访问地址"
+ params do
+ requires :userId, type: Integer, desc: "用户ID"
+ requires :resouceId, type: String, desc: "资源唯一标示"
+ requires :accessType, type: Integer, desc: "资源类型"
+ end
+ get "source_url" do
+ CnmoocsService.new.source_url(params)
+ end
+
desc "远程登录"
params do
requires :mail, type: String, desc: "邮箱地址"
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 435c71fc..42dd6e1e 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -207,6 +207,9 @@ class ApplicationController < ActionController::Base
elsif session[:wechat_openid]
uw = UserWechat.find_by_openid(session[:wechat_openid])
user = uw.user if uw
+ elsif session[:third_party_user_id]
+ c_user = UserSource.find_by_id(session[:third_party_user_id])
+ user = c_user.user if c_user
end
end
if user.nil? && Setting.rest_api_enabled? && accept_api_auth?
diff --git a/app/models/user.rb b/app/models/user.rb
index 752ea113..3e89e4f2 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -269,6 +269,8 @@ class User < Principal
has_many :article_homepages, :dependent => :destroy
has_many :competition_lists, :dependent => :destroy
+ has_one :user_source
+
## end
# default_scope -> { includes(:user_extensions, :user_score) }
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 5057fabe..04df260d 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -82,6 +82,20 @@ class CnmoocsService
end
+ def source_url(params)
+ if session[:third_party_user_id].blank?
+ user = User.find(params[:userId])
+ session[:third_party_user_id] = user.user_source.id
+ end
+
+ shixun = Shixun.find_by_identifier(params[:resouceId])
+ if shixun.blank?
+ return { error: -1, messages: '资源不存在' }
+ end
+
+ { error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.id}" }
+ end
+
private
def shixun_data shixuns
From f06a1b5df6e6753960dbb4dd09e559abf00469b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Tue, 28 May 2019 17:32:44 +0800
Subject: [PATCH 11/32] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E9=A2=98=20=E5=89=8D?=
=?UTF-8?q?=E7=AB=AF=E5=A2=9E=E5=8A=A0=E9=A2=98=E7=9B=AE=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/exercise/_edit_shixun.html.erb | 5 ++++-
app/views/exercise/_exercise_form.html.erb | 6 +++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/app/views/exercise/_edit_shixun.html.erb b/app/views/exercise/_edit_shixun.html.erb
index b7caa087..9c0f130b 100644
--- a/app/views/exercise/_edit_shixun.html.erb
+++ b/app/views/exercise/_edit_shixun.html.erb
@@ -1,7 +1,10 @@
<%= form_for("",:url => update_exercise_question_exercise_index_path(:exercise_question => exercise_question.id),:html => {:id => "update_exercise_question_#{exercise_question.id}"}) do |f|%>
实训题
-
<%= exercise_question.shixun.name %>
+
+
+
+
diff --git a/app/views/exercise/_exercise_form.html.erb b/app/views/exercise/_exercise_form.html.erb
index 677e7014..ca3080e4 100644
--- a/app/views/exercise/_exercise_form.html.erb
+++ b/app/views/exercise/_exercise_form.html.erb
@@ -106,11 +106,15 @@
//修改标题时确定按钮
function edit_poll_question(doc,id,quest_type)
{
+ var name = $.trim($("#poll_questions_name_" + id).val());
var title = $.trim($("#poll_questions_title_" + id).val());
var score = $.trim($("#poll_question_score_"+ id).val());
var standard_ans = $.trim($("#exercise_choice_" + id).val());
+ if(name===""){
+ notice_box("题目标题");
+ }
if(title.length == 0 || score.length == 0){
- notice_box("题目标题/分数不能为空");
+ notice_box("要求/分数不能为空");
}else if(!/^[1-9][0-9]*$/.test(score)) {
notice_box("分数必须是非零开头的数字");
}else if(quest_type !=3 && quest_type !=4 && standard_ans.length == 0) {
From 84466f113d41d6aec86f090e44a034a62669e5d3 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 19:36:13 +0800
Subject: [PATCH 12/32] 1
---
app/api/mobile/apis/cnmooc.rb | 8 ++++
app/services/cnmoocs_service.rb | 68 +++++++++++++++++++++++++++------
2 files changed, 64 insertions(+), 12 deletions(-)
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index 42a6cfe3..026581cd 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -56,6 +56,14 @@ module Mobile
CnmoocsService.new.login_educoder params
end
+ desc "资源学习情况查询"
+ params do
+ requires :userId, type: Integer, desc: "用户ID"
+ requires :resouceId, type: String, desc: "资源唯一标示"
+ end
+ get 'get_students_data' do
+ CnmoocsService.new.get_students_data params
+ end
end
end
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index da119452..ba4271e4 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -6,15 +6,43 @@ class CnmoocsService
page = params[:pageNo].to_i
limit = params[:pageSize] || 16
offset = page * limit.to_i
- shixuns = Shixun.select([:id, :identifier, :name, :myshixuns_count, :averge_star, :challenges_count, :trainee]).
- where(status: 2, hidden: 0)
- shixun_count = shixuns.count
- pageCount = ((shixun_count / limit.to_f) == (shixun_count / limit)) ? (shixun_count / limit) : ((shixun_count / limit) + 1)
- shixuns = shixuns.order("myshixuns_count desc").offset(offset).limit(limit)
- shixun_list = shixun_data shixuns
+ resouces = []
+ if params[:level].to_s == "1"
+ subjects = Subject.find_by_sql("SELECT subjects.id, subjects.name, subjects.status, COUNT(myshixuns.id) AS myshixun_member_count
+ FROM myshixuns, stage_shixuns, subjects WHERE myshixuns.shixun_id = stage_shixuns.shixun_id
+ AND stage_shixuns.subject_id = subjects.id AND `subjects`.`hidden` = 0 AND `subjects`.`status` = 2
+ GROUP BY subjects.id ORDER BY myshixun_member_count DESC limit #{offset},#{limit}")
+
+ subjects.each do |subject|
+ resouces << {resouceId: subject.id, parentId: nil, resouceName: subject.name, accessType: 0, nodeType: 0,
+ resouceType: 2}
+ end
+ totalCount = Subject.where(:status => 2, :hidden => 0).count
+ count = subjects.count
+ elsif params[:level].to_s == "2"
+ return {error: -1, messages: "请求二级及其更高目录时,parentId不能为空"} if params[:parentId].blank?
+ stages = Stage.where(:subject_id => params[:parentId]).offset(offset).limit(limit)
+ stages.each do |stage|
+ resouces << {resouceId: stage.id, parentId: params[:parentId], resouceName: stage.name, accessType: 0, nodeType: 0,
+ resouceType: 2}
+ end
+ totalCount = Stage.where(:subject_id => params[:parentId]).count
+ count = stages.count
+ elsif params[:level].to_s == "3"
+ return {error: -1, messages: "请求二级及其更高目录时,parentId不能为空"} if params[:parentId].blank?
+ shixun_ids = StageShixun.where(:stage_id => params[:parentId]).pluck(:shixun_id)
+ shixuns = Shixun.where(:id => shixun_ids).offset(offset).limit(limit)
+ shixuns.each do |shixun|
+ resouces << {resouceId: shixun.identifier, parentId: params[:parentId], resouceName: shixun.name, accessType: 2,
+ nodeType: 1, resouceType: 1}
+ end
+ totalCount = Shixun.where(:id => shixun_ids).count
+ count = shixuns.count
+ end
+ pageCount = ((totalCount / limit.to_f) == (totalCount / limit)) ? (totalCount / limit) : ((totalCount / limit) + 1)
{error: 0, messages: "请求成功",
- page: {count: shixuns.count, totalCount: shixun_count, pageNo: page, pageSize: limit, pageCount: pageCount},
- data: shixun_list }
+ page: {count: count, totalCount: totalCount, pageNo: page, pageSize: limit, pageCount: pageCount},
+ data: {resouces: resouces} }
end
def search_resources params
@@ -33,9 +61,9 @@ class CnmoocsService
end
def find_user params
- user = User.find_by_mail params[:mail]
- if user
- {error: 0, messages: "找到用户"}
+ c_user = CnmoocUser.find_by_uuid(params[:userName])
+ if c_user
+ {error: 0, messages: "找到用户", data: { userId: user.id } }
else
{error: -1, messages: "找不到用户"}
end
@@ -48,7 +76,7 @@ class CnmoocsService
return { error: -1, messages: '用户已存在' }
end
- mail = c_user.generate_email
+ mail = params[:email] || c_user.generate_email
create_params = {
lastname: params[:name],
mail: mail,
@@ -94,6 +122,22 @@ class CnmoocsService
{ error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.id}" }
end
+ def get_students_data params
+ subject = Subject.find_by_id params[:resouceId]
+ return {error: -1, messages: "资源id不对,请使用一级目录资源查找"} if subject.blank?
+ shixun_ids = StageShixun.where(:stage_id => subject.stages).pluck(:shixun_id)
+ myshixuns = Myshixun.where(:user_id => params[:userId], shixun_id: shixun_ids).includes(:games)
+ score = 0
+ time = 0
+ myshixuns.each do |myshixun|
+ score += myshixun.total_score
+ myshixun.games.each do |game|
+ time += game.consumes_time_int
+ end
+ end
+ {error: 0, messages: '成功', data: {totalTime: time, score: score * 10}}
+ end
+
private
def shixun_data shixuns
From 40e15f9f1dd6609df740b08cd409b7ee72acf799 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 19:47:00 +0800
Subject: [PATCH 13/32] =?UTF-8?q?=E5=A5=BD=E5=A4=A7=E5=AD=A6api=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/cnmoocs_service.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index ba4271e4..6740a706 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -77,8 +77,9 @@ class CnmoocsService
end
mail = params[:email] || c_user.generate_email
+ name = params[:name] || "好大学_#{params[:userName]}"
create_params = {
- lastname: params[:name],
+ lastname: name,
mail: mail,
mail_notification: mail,
login: generate_login('m'),
From 7dd479f689ba820d3fa1dbdb6fece0609ac067b4 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 19:57:17 +0800
Subject: [PATCH 14/32] fix cnmooc create user api
---
app/services/cnmoocs_service.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index ba4271e4..36b69301 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -75,6 +75,7 @@ class CnmoocsService
if c_user.present?
return { error: -1, messages: '用户已存在' }
end
+ c_user = CnmoocUser.new(uuid: params[:userName], name: params[:name])
mail = params[:email] || c_user.generate_email
create_params = {
From 528361da6fa355b20ccbc0a32824fbbc1b2b2776 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:00:44 +0800
Subject: [PATCH 15/32] 1
---
app/services/cnmoocs_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 054a765d..3a68055d 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -137,7 +137,7 @@ class CnmoocsService
time += game.consumes_time_int
end
end
- {error: 0, messages: '成功', data: {totalTime: time, score: score * 10}}
+ {error: 0, messages: '成功', data: {time: time, score: score * 10}}
end
From b1263a1cd088dd72a56a7a96fa5687e2359ceb03 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:03:53 +0800
Subject: [PATCH 16/32] 1
---
app/services/cnmoocs_service.rb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 3a68055d..a7605110 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -153,4 +153,10 @@ class CnmoocsService
end
{resouces: shixun_list}
end
+
+ # 为新创建的用户随机生成以m为前缀的用户名,m表示该用户是用邮箱注册
+ def generate_login(login_pre)
+ us = UsersService.new
+ us.generate_user_login(login_pre)
+ end
end
\ No newline at end of file
From b252983b7d9520dc58401e265a78b8ebe307c7b9 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:07:05 +0800
Subject: [PATCH 17/32] 1
---
app/api/mobile/apis/cnmooc.rb | 1 -
app/services/cnmoocs_service.rb | 3 ++-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index 026581cd..1f37af91 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -31,7 +31,6 @@ module Mobile
desc "创建用户"
params do
requires :userName, type: String, desc: "好大学用户名"
- optional :name, type: String, desc: "用户姓名"
end
post "create_user" do
CnmoocsService.new.create_user params
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index a7605110..52514a67 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -79,11 +79,12 @@ class CnmoocsService
mail = params[:email] || c_user.generate_email
name = params[:name] || "好大学_#{params[:userName]}"
+ login = generate_login('m')
create_params = {
lastname: name,
mail: mail,
mail_notification: mail,
- login: generate_login('m'),
+ login: login,
password: OauthController::DEFAULT_PASSWORD,
certification: 1
}
From 965b320e2c07f8ad5c412e37deadbcc7f569d905 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:07:47 +0800
Subject: [PATCH 18/32] 1
---
app/services/cnmoocs_service.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 52514a67..4c287455 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -80,6 +80,7 @@ class CnmoocsService
mail = params[:email] || c_user.generate_email
name = params[:name] || "好大学_#{params[:userName]}"
login = generate_login('m')
+ Rails.logger.info("#######mail: #{mail}, #{name}, #{login}")
create_params = {
lastname: name,
mail: mail,
From 41195aaa6e372cc477d341d2c8ddfcb246e234f0 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 20:27:10 +0800
Subject: [PATCH 19/32] fix create cnmooc
---
app/services/cnmoocs_service.rb | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 4c287455..d231ceae 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -85,12 +85,14 @@ class CnmoocsService
lastname: name,
mail: mail,
mail_notification: mail,
- login: login,
password: OauthController::DEFAULT_PASSWORD,
certification: 1
}
ActiveRecord::Base.transaction do
- user = User.create!(create_params)
+ user = User.new(create_params)
+ # login 有问题,只能这样赋值
+ user.login = login
+ user.save!
UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
From 30cd567050ef67c9a853e5c720296d08e8eaf0f0 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 20:31:12 +0800
Subject: [PATCH 20/32] fix
---
app/services/cnmoocs_service.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index d231ceae..fb04ded8 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -88,10 +88,10 @@ class CnmoocsService
password: OauthController::DEFAULT_PASSWORD,
certification: 1
}
+ user = User.new(create_params)
+ # login 有问题,只能这样赋值
+ user.login = login
ActiveRecord::Base.transaction do
- user = User.new(create_params)
- # login 有问题,只能这样赋值
- user.login = login
user.save!
UserExtensions.create!(user_id: user.id, school_id: School.first.id, identity: 4, gender: 0)
From e8fd8b97a3d62d4e62c1acc437a43f09a02abc2f Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:35:33 +0800
Subject: [PATCH 21/32] 1
---
app/api/mobile/apis/cnmooc.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index 1f37af91..96b10101 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -22,7 +22,7 @@ module Mobile
desc " 查找用户"
params do
- requires :mail, type: String, desc: "邮箱地址"
+ requires :userName, type: String, desc: "好大学用户名"
end
get 'find_user' do
CnmoocsService.new.find_user params
From f47cf352337eeeeb05bca4a3c5f940645ef93036 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:37:19 +0800
Subject: [PATCH 22/32] 1
---
app/services/cnmoocs_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index fb04ded8..903db58d 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -63,7 +63,7 @@ class CnmoocsService
def find_user params
c_user = CnmoocUser.find_by_uuid(params[:userName])
if c_user
- {error: 0, messages: "找到用户", data: { userId: user.id } }
+ {error: 0, messages: "找到用户", data: { userId: c_user.user_id } }
else
{error: -1, messages: "找不到用户"}
end
From b4ec3363efa4f9c733b12765dbf8d0b8f396b2a6 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 20:51:43 +0800
Subject: [PATCH 23/32] 1
---
app/api/mobile/api.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb
index d13dc61f..958fe6a9 100644
--- a/app/api/mobile/api.rb
+++ b/app/api/mobile/api.rb
@@ -34,7 +34,7 @@ module Mobile
version 'v1', using: :path
format :json
content_type :json, "application/json;charset=UTF-8"
- # use ActionDispatch::Session::CookieStore
+ use ActionDispatch::Session::CookieStore
require 'digest'
use Mobile::Middleware::ErrorHandler
From 1fb7c35c30e73b1890a61718197e6ea8eb62f4de Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 28 May 2019 20:56:53 +0800
Subject: [PATCH 24/32] fix session
---
app/api/mobile/api.rb | 6 ++++++
app/api/mobile/apis/cnmooc.rb | 5 +++++
app/services/cnmoocs_service.rb | 5 -----
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb
index 958fe6a9..69bd4d44 100644
--- a/app/api/mobile/api.rb
+++ b/app/api/mobile/api.rb
@@ -109,6 +109,12 @@ module Mobile
return uw.user if uw
end
+ third_party_user_id = session[:third_party_user_id]
+ if third_party_user_id
+ c_user = UserSource.find_by_id(session[:third_party_user_id])
+ return c_user.user if c_user
+ end
+
token = ApiKey.where(access_token: params[:token]).first
if token && !token.expired?
return User.find(token.user_id)
diff --git a/app/api/mobile/apis/cnmooc.rb b/app/api/mobile/apis/cnmooc.rb
index 96b10101..d67a390d 100644
--- a/app/api/mobile/apis/cnmooc.rb
+++ b/app/api/mobile/apis/cnmooc.rb
@@ -43,6 +43,11 @@ module Mobile
requires :accessType, type: Integer, desc: "资源类型"
end
get "source_url" do
+ if session[:third_party_user_id].blank?
+ user = User.find(params[:userId])
+ session[:third_party_user_id] = user.user_source.id
+ end
+
CnmoocsService.new.source_url(params)
end
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 903db58d..caba8ebb 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -115,11 +115,6 @@ class CnmoocsService
end
def source_url(params)
- if session[:third_party_user_id].blank?
- user = User.find(params[:userId])
- session[:third_party_user_id] = user.user_source.id
- end
-
shixun = Shixun.find_by_identifier(params[:resouceId])
if shixun.blank?
return { error: -1, messages: '资源不存在' }
From 23d8e023dfe747a4e7ff1c790487ecd1fee597a6 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 21:01:33 +0800
Subject: [PATCH 25/32] 1
---
app/services/cnmoocs_service.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index caba8ebb..34d97d6c 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -33,7 +33,7 @@ class CnmoocsService
shixun_ids = StageShixun.where(:stage_id => params[:parentId]).pluck(:shixun_id)
shixuns = Shixun.where(:id => shixun_ids).offset(offset).limit(limit)
shixuns.each do |shixun|
- resouces << {resouceId: shixun.identifier, parentId: params[:parentId], resouceName: shixun.name, accessType: 2,
+ resouces << {resouceId: shixun.id, parentId: params[:parentId], resouceName: shixun.name, accessType: 2,
nodeType: 1, resouceType: 1}
end
totalCount = Shixun.where(:id => shixun_ids).count
@@ -120,7 +120,7 @@ class CnmoocsService
return { error: -1, messages: '资源不存在' }
end
- { error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.id}" }
+ { error: 0, messages: '成功', accessUrl: "#{Redmine::Configuration['educoder_domain']}/shixuns/#{shixun.identifier}" }
end
def get_students_data params
From 3e416f2538c1b56a8082958b0d4345e3458a2a81 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 21:12:06 +0800
Subject: [PATCH 26/32] 1
---
app/services/cnmoocs_service.rb | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index 34d97d6c..e1bae88d 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -124,19 +124,22 @@ class CnmoocsService
end
def get_students_data params
- subject = Subject.find_by_id params[:resouceId]
- return {error: -1, messages: "资源id不对,请使用一级目录资源查找"} if subject.blank?
- shixun_ids = StageShixun.where(:stage_id => subject.stages).pluck(:shixun_id)
- myshixuns = Myshixun.where(:user_id => params[:userId], shixun_id: shixun_ids).includes(:games)
- score = 0
- time = 0
- myshixuns.each do |myshixun|
- score += myshixun.total_score
+ shixun = Shixun.find_by_id params[:resouceId]
+ return {error: -1, messages: "资源id不对,请使用资源的id查找"} if shixun.blank?
+ # shixun_ids = StageShixun.where(:stage_id => subject.stages).pluck(:shixun_id)
+ #myshixuns = Myshixun.where(:user_id => params[:userId], shixun_id: shixun_ids).includes(:games)
+ myshixun = shixun.myshixuns.where(:user_id => params[:userId]).includes(:games)
+ if myshixun
+ score = myshixun.total_score
+ time = 0
myshixun.games.each do |game|
time += game.consumes_time_int
end
+ {error: 0, messages: '成功', data: {time: time, score: score * 10}}
+ else
+ {error: -1, messages: '用户还未开始学习此资源'}
end
- {error: 0, messages: '成功', data: {time: time, score: score * 10}}
+
end
From dce940523ae7a3ce10d8ee01da60a75e84edfc07 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 21:21:21 +0800
Subject: [PATCH 27/32] 1
---
app/services/cnmoocs_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index e1bae88d..a30e2ef2 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -129,7 +129,7 @@ class CnmoocsService
# shixun_ids = StageShixun.where(:stage_id => subject.stages).pluck(:shixun_id)
#myshixuns = Myshixun.where(:user_id => params[:userId], shixun_id: shixun_ids).includes(:games)
myshixun = shixun.myshixuns.where(:user_id => params[:userId]).includes(:games)
- if myshixun
+ if myshixun.present?
score = myshixun.total_score
time = 0
myshixun.games.each do |game|
From 257f55ec006bc6a1ecfecab5aacdd23d6729fde7 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 28 May 2019 21:26:41 +0800
Subject: [PATCH 28/32] 1
---
app/services/cnmoocs_service.rb | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/app/services/cnmoocs_service.rb b/app/services/cnmoocs_service.rb
index a30e2ef2..9ec02bfd 100644
--- a/app/services/cnmoocs_service.rb
+++ b/app/services/cnmoocs_service.rb
@@ -126,9 +126,7 @@ class CnmoocsService
def get_students_data params
shixun = Shixun.find_by_id params[:resouceId]
return {error: -1, messages: "资源id不对,请使用资源的id查找"} if shixun.blank?
- # shixun_ids = StageShixun.where(:stage_id => subject.stages).pluck(:shixun_id)
- #myshixuns = Myshixun.where(:user_id => params[:userId], shixun_id: shixun_ids).includes(:games)
- myshixun = shixun.myshixuns.where(:user_id => params[:userId]).includes(:games)
+ myshixun = shixun.myshixuns.where(:user_id => params[:userId]).includes(:games).first
if myshixun.present?
score = myshixun.total_score
time = 0
From 0f359082e5df1b7e0c06b687857b1d7440ec9c37 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Wed, 29 May 2019 08:51:22 +0800
Subject: [PATCH 29/32] =?UTF-8?q?=E8=B6=85=E7=BA=A7=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=91=98=E8=AF=84=E6=B5=8B=E6=97=B6=E9=97=B4=E8=AF=A6=E6=83=85?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0=E6=9C=80=E5=A4=A7=E6=89=A7?=
=?UTF-8?q?=E8=A1=8C=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/managements/evaluate_simple.html.erb | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/views/managements/evaluate_simple.html.erb b/app/views/managements/evaluate_simple.html.erb
index a278395c..c01b58bc 100644
--- a/app/views/managements/evaluate_simple.html.erb
+++ b/app/views/managements/evaluate_simple.html.erb
@@ -14,8 +14,9 @@
回传时间 |
前端轮询 |
结果存储 |
- 创建时间 |
- 唯一表示 |
+ 创建时间 |
+ 最大执行时间 |
+ 唯一标识 |
实训名称 |
@@ -35,7 +36,8 @@
<%= record.front_js %> |
<%= record.test_cases %> |
<%= format_time record.created_at %> |
- <%= record.identifier %> |
+ <%= record.shixun.exec_time %> |
+ <%= record.shixun.identifier %> |
<%= link_to record.shixun.try(:name), task_path(record.game), :target => "_blank", :title => "#{record.shixun.try(:name)}" %> |
<% end %>
From 83373311033932f1797451fc89db83aabeffde36 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Wed, 29 May 2019 10:38:41 +0800
Subject: [PATCH 30/32] =?UTF-8?q?=E5=90=8E=E7=AB=AF-=E8=AF=95=E5=8D=B7?=
=?UTF-8?q?=E3=80=81=E8=AF=95=E5=8D=B7=E9=A2=98=E5=BA=93=E7=9A=84=E5=AE=9E?=
=?UTF-8?q?=E8=AE=AD=E9=A2=98=E5=A2=9E=E5=8A=A0=E6=94=B9=E5=90=8D=E7=A7=B0?=
=?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/exercise_bank_controller.rb | 2 ++
app/controllers/exercise_controller.rb | 5 ++++-
app/controllers/question_banks_controller.rb | 2 +-
app/helpers/application_helper.rb | 3 ++-
app/views/exercise/_edit_shixun.html.erb | 2 +-
app/views/exercise/_exercise_form.html.erb | 2 +-
app/views/exercise/_exercise_student.html.erb | 2 +-
.../exercise/_exercise_student_result.html.erb | 2 +-
app/views/exercise/_new_shixun.html.erb | 5 ++++-
app/views/exercise/_show_shixun.html.erb | 2 +-
.../exercise/student_exercise_list.html.erb | 2 +-
app/views/exercise_bank/_edit_shixun.html.erb | 5 ++++-
app/views/exercise_bank/_new_shixun.html.erb | 5 ++++-
app/views/exercise_bank/_show_shixun.html.erb | 2 +-
app/views/exercise_bank/show.html.erb | 2 +-
.../homework_bank/_send_homework_bank.html.erb | 15 ++++++++++++++-
...90529014121_add_shixun_name_to_ex_question.rb | 14 ++++++++++++++
public/javascripts/edu/base_edu.js | 10 ----------
public/javascripts/edu/course.js | 16 ++++++++++++++++
19 files changed, 73 insertions(+), 25 deletions(-)
create mode 100644 db/migrate/20190529014121_add_shixun_name_to_ex_question.rb
diff --git a/app/controllers/exercise_bank_controller.rb b/app/controllers/exercise_bank_controller.rb
index e4fa6727..6b8090dd 100644
--- a/app/controllers/exercise_bank_controller.rb
+++ b/app/controllers/exercise_bank_controller.rb
@@ -104,6 +104,7 @@ class ExerciseBankController < ApplicationController
:question_type => params[:question_type] || 1,
:question_number => @exercise.exercise_bank_questions.count + 1,
:question_score => params[:question_score],
+ :shixun_name => params[:question_type] == '5' ? params[:shixun_name] : nil,
:shixun_id => params[:shixun],
:max_choices => params[:max_choices].to_i || 0,
:min_choices => params[:min_choices].to_i || 0
@@ -271,6 +272,7 @@ class ExerciseBankController < ApplicationController
end
end
if @exercise_question.question_type == 5
+ @exercise_question.shixun_name = params[:shixun_name].strip if !params[:shixun_name].blank?
question_score = 0
@exercise_question.exercise_bank_shixun_challenges.each_with_index do |challenge, index|
challenge.question_score = params[:question_score][index]
diff --git a/app/controllers/exercise_controller.rb b/app/controllers/exercise_controller.rb
index 23024a78..ee5705fb 100644
--- a/app/controllers/exercise_controller.rb
+++ b/app/controllers/exercise_controller.rb
@@ -372,6 +372,7 @@ class ExerciseController < ApplicationController
:question_type => params[:question_type] || 1,
:question_number => @exercise.exercise_questions.count + 1,
:question_score => params[:question_type] == '5' ? 0 : params[:question_score],
+ :shixun_name => params[:question_type] == '5' ? params[:shixun_name] : nil,
:shixun_id => params[:shixun]
}
@exercise_questions = @exercise.exercise_questions.new option
@@ -512,6 +513,7 @@ class ExerciseController < ApplicationController
end
end
if @exercise_question.question_type == 5
+ @exercise_question.shixun_name = params[:shixun_name].strip if !params[:shixun_name].blank?
question_score = 0
@exercise_question.exercise_shixun_challenges.each_with_index do |challenge, index|
challenge.question_score = params[:question_score][index]
@@ -1508,7 +1510,8 @@ class ExerciseController < ApplicationController
:question_type => q[:question_type] || 1,
:question_number => q[:question_number],
:question_score => q[:question_score],
- :shixun_id => q[:shixun_id]
+ :shixun_id => q[:shixun_id],
+ :shixun_name => q[:shixun_name]
}
exercise_bank_question = exercise_bank.exercise_bank_questions.new option
diff --git a/app/controllers/question_banks_controller.rb b/app/controllers/question_banks_controller.rb
index 96f6db3b..cffecba1 100644
--- a/app/controllers/question_banks_controller.rb
+++ b/app/controllers/question_banks_controller.rb
@@ -117,7 +117,7 @@ class QuestionBanksController < ApplicationController
else
@courses = User.current.courses.where("is_delete = 0 and is_end = 0").select{ |course| User.current.has_teacher_role(course)}
end
- @homework_ids = params[:check_homework_bank] || params[:bank_id].split(" ")
+ @homework_ids = params[:check_homework_bank] || params[:bank_id].split(" ") unless params[:is_observe]
@search = params[:search]
respond_to do |format|
format.js
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 35449aad..34fa1a8d 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -7034,7 +7034,8 @@ def quote_exercise_bank exercise, course
:question_type => q[:question_type] || 1,
:question_number => q[:question_number],
:question_score => q[:question_score],
- :shixun_id => q[:shixun_id]
+ :shixun_id => q[:shixun_id],
+ :shixun_name => q[:shixun_name]
}
exercise_question = new_exercise.exercise_questions.new option
diff --git a/app/views/exercise/_edit_shixun.html.erb b/app/views/exercise/_edit_shixun.html.erb
index 9c0f130b..ef96f3b7 100644
--- a/app/views/exercise/_edit_shixun.html.erb
+++ b/app/views/exercise/_edit_shixun.html.erb
@@ -3,7 +3,7 @@
实训题
-
+
diff --git a/app/views/exercise/_exercise_form.html.erb b/app/views/exercise/_exercise_form.html.erb
index ca3080e4..bee149fd 100644
--- a/app/views/exercise/_exercise_form.html.erb
+++ b/app/views/exercise/_exercise_form.html.erb
@@ -111,7 +111,7 @@
var score = $.trim($("#poll_question_score_"+ id).val());
var standard_ans = $.trim($("#exercise_choice_" + id).val());
if(name===""){
- notice_box("题目标题");
+ notice_box("题目标题不能为空");
}
if(title.length == 0 || score.length == 0){
notice_box("要求/分数不能为空");
diff --git a/app/views/exercise/_exercise_student.html.erb b/app/views/exercise/_exercise_student.html.erb
index add9d655..ec47f1c0 100644
--- a/app/views/exercise/_exercise_student.html.erb
+++ b/app/views/exercise/_exercise_student.html.erb
@@ -162,7 +162,7 @@
<% end %>
<% if exercise_question.question_type == 5 %>
- <%= exercise_question.shixun.name %>
+ <%= exercise_question.shixun_name %>
<% end %>
<%= exercise_question.question_title.html_safe %>
<% case exercise_question.question_type %>
diff --git a/app/views/exercise/_exercise_student_result.html.erb b/app/views/exercise/_exercise_student_result.html.erb
index 0dd656be..6d48573f 100644
--- a/app/views/exercise/_exercise_student_result.html.erb
+++ b/app/views/exercise/_exercise_student_result.html.erb
@@ -140,7 +140,7 @@
<% end %>
<% if exercise_question.question_type == 5 %>
- <%= exercise_question.shixun.name %>
+ <%= exercise_question.shixun_name %>
<% end %>
<%= exercise_question.question_title.html_safe %>
<% case exercise_question.question_type %>
diff --git a/app/views/exercise/_new_shixun.html.erb b/app/views/exercise/_new_shixun.html.erb
index 1cff068f..6ce2cd68 100644
--- a/app/views/exercise/_new_shixun.html.erb
+++ b/app/views/exercise/_new_shixun.html.erb
@@ -8,7 +8,10 @@
- <%= @shixun.name %>
+
+
+
+
diff --git a/app/views/exercise/_show_shixun.html.erb b/app/views/exercise/_show_shixun.html.erb
index 92feef9d..75f460ec 100644
--- a/app/views/exercise/_show_shixun.html.erb
+++ b/app/views/exercise/_show_shixun.html.erb
@@ -16,7 +16,7 @@
<% end %>
- <%= exercise_question.shixun.name %>
+ <%= exercise_question.shixun_name %>
<%= exercise_question.question_title.html_safe %>
<% exercise_question.exercise_shixun_challenges.each_with_index do |exercise_challenge,index| %>
diff --git a/app/views/exercise/student_exercise_list.html.erb b/app/views/exercise/student_exercise_list.html.erb
index 3632b4d7..b8335515 100644
--- a/app/views/exercise/student_exercise_list.html.erb
+++ b/app/views/exercise/student_exercise_list.html.erb
@@ -256,7 +256,7 @@
<% end %>
<% if exercise_question.question_type == 5 %>
- <%= exercise_question.shixun.name %>
+ <%= exercise_question.shixun_name %>
<% end %>
<%= exercise_question.question_title.html_safe %>
diff --git a/app/views/exercise_bank/_edit_shixun.html.erb b/app/views/exercise_bank/_edit_shixun.html.erb
index 41383767..7aa84e9f 100644
--- a/app/views/exercise_bank/_edit_shixun.html.erb
+++ b/app/views/exercise_bank/_edit_shixun.html.erb
@@ -1,7 +1,10 @@
<%= form_for("",:url => update_exercise_question_exercise_bank_index_path(:exercise_question => exercise_question.id),:html => {:id => "update_exercise_question_#{exercise_question.id}"}) do |f|%>
实训题
-
<%= exercise_question.shixun.name %>
+
+
+
+
diff --git a/app/views/exercise_bank/_new_shixun.html.erb b/app/views/exercise_bank/_new_shixun.html.erb
index 36af84ad..140ee9b2 100644
--- a/app/views/exercise_bank/_new_shixun.html.erb
+++ b/app/views/exercise_bank/_new_shixun.html.erb
@@ -8,7 +8,10 @@
- <%= @shixun.name %>
+
+
+
+
diff --git a/app/views/exercise_bank/_show_shixun.html.erb b/app/views/exercise_bank/_show_shixun.html.erb
index cf2a9b2b..e426fd0e 100644
--- a/app/views/exercise_bank/_show_shixun.html.erb
+++ b/app/views/exercise_bank/_show_shixun.html.erb
@@ -14,7 +14,7 @@
-
<%= exercise_question.shixun.name %>
+
<%= exercise_question.shixun_name %>
<%= exercise_question.question_title.html_safe %>
<% exercise_question.exercise_bank_shixun_challenges.each_with_index do |exercise_challenge,index| %>
diff --git a/app/views/exercise_bank/show.html.erb b/app/views/exercise_bank/show.html.erb
index 0fb5e2ca..14712a92 100644
--- a/app/views/exercise_bank/show.html.erb
+++ b/app/views/exercise_bank/show.html.erb
@@ -80,7 +80,7 @@
<% end %>
<% if exercise_question.question_type == 5 %>
-
<%= exercise_question.shixun.name %>
+
<%= exercise_question.shixun_name %>
<% end %>
<%= exercise_question.question_title.html_safe %>
<% case exercise_question.question_type %>
diff --git a/app/views/homework_bank/_send_homework_bank.html.erb b/app/views/homework_bank/_send_homework_bank.html.erb
index 3127aecd..6b935521 100644
--- a/app/views/homework_bank/_send_homework_bank.html.erb
+++ b/app/views/homework_bank/_send_homework_bank.html.erb
@@ -31,4 +31,17 @@
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/db/migrate/20190529014121_add_shixun_name_to_ex_question.rb b/db/migrate/20190529014121_add_shixun_name_to_ex_question.rb
new file mode 100644
index 00000000..8aa02878
--- /dev/null
+++ b/db/migrate/20190529014121_add_shixun_name_to_ex_question.rb
@@ -0,0 +1,14 @@
+class AddShixunNameToExQuestion < ActiveRecord::Migration
+ def change
+ add_column :exercise_questions, :shixun_name, :string
+ add_column :exercise_bank_questions, :shixun_name, :string
+
+ ExerciseQuestion.where(question_type: 5).each do |question|
+ question.update_column("shixun_name", question.shixun.try(:name))
+ end
+
+ ExerciseBankQuestion.where(question_type: 5).each do |question|
+ question.update_column("shixun_name", question.shixun.try(:name))
+ end
+ end
+end
diff --git a/public/javascripts/edu/base_edu.js b/public/javascripts/edu/base_edu.js
index 8167249c..1963d1cb 100644
--- a/public/javascripts/edu/base_edu.js
+++ b/public/javascripts/edu/base_edu.js
@@ -1361,16 +1361,6 @@ function choose_course_to_send_hb(){
}
}
-function search_hw_course(url){
- $.ajax({
- url: url,
- type: 'post',
- data: {search: $("#hb_search_course_input").val(), is_observe: true},
- success: function(data){
- }
- });
-}
-
function submit_send_hb_to_course(){
if($("input[name='course_id']:checked").length >= 1){
$("#search_course_notice_h").html("").hide();
diff --git a/public/javascripts/edu/course.js b/public/javascripts/edu/course.js
index 330dbea7..98163bda 100644
--- a/public/javascripts/edu/course.js
+++ b/public/javascripts/edu/course.js
@@ -1103,6 +1103,15 @@ function add_ex_question(doc,quest_type)
var title = $.trim($("#poll_questions_title").val());
var score = $.trim($("#question_score").val());
var standard_ans = $.trim($("#exercise_choice_" + quest_type).val());
+
+ if (quest_type == 5) {
+ var name = $.trim($("#poll_questions_name").val());
+ if(name===""){
+ notice_box("题目标题不能为空");
+ result = false;
+ }
+ }
+
if(title.length == 0){
if(quest_type != 5){
notice_box("题目标题不能为空");
@@ -1414,6 +1423,13 @@ function edit_poll_question(doc,id,quest_type) {
var title = $.trim($("#poll_questions_title_" + id).val());
var score = $.trim($("#poll_question_score_" + id).val());
var standard_ans = $.trim($("#exercise_choice_" + id).val());
+ if (quest_type == 5) {
+ var name = $.trim($("#poll_questions_name_" + id).val());
+ if(name===""){
+ notice_box("题目标题不能为空");
+ result = false;
+ }
+ }
if (title.length == 0) {
if (quest_type != 5) {
notice_box("题目标题不能为空");
From 92a08caf9506f9029ffe3d6d62a096b5bafc021a Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Wed, 29 May 2019 10:53:48 +0800
Subject: [PATCH 31/32] 1
---
app/views/managements/evaluate_simple.html.erb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/views/managements/evaluate_simple.html.erb b/app/views/managements/evaluate_simple.html.erb
index c01b58bc..6d05aedf 100644
--- a/app/views/managements/evaluate_simple.html.erb
+++ b/app/views/managements/evaluate_simple.html.erb
@@ -36,8 +36,8 @@
<%= record.front_js %> |
<%= record.test_cases %> |
<%= format_time record.created_at %> |
- <%= record.shixun.exec_time %> |
- <%= record.shixun.identifier %> |
+ <%= record.shixun.try(:exec_time) %> |
+ <%= record.shixun.try(:identifier) %> |
<%= link_to record.shixun.try(:name), task_path(record.game), :target => "_blank", :title => "#{record.shixun.try(:name)}" %> |
<% end %>
From c86d364744b93fa428c77f85c831dfc059842e27 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Wed, 29 May 2019 13:56:12 +0800
Subject: [PATCH 32/32] =?UTF-8?q?=E8=AF=95=E7=94=A8=E6=8E=88=E6=9D=83?=
=?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=A2=9E=E5=8A=A0=E9=82=AE=E7=AE=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/managements_controller.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb
index 0f62dbe8..54b7ffe6 100644
--- a/app/controllers/managements_controller.rb
+++ b/app/controllers/managements_controller.rb
@@ -4185,7 +4185,7 @@ end
sheet1 = book.create_worksheet :name => "users"
blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10
sheet1.row(0).default_format = blue
- sheet1.row(0).concat(["用户姓名","性别","职业","职称","地区"," 单位","子单位","注册时间","最后登录时间","授权"])
+ sheet1.row(0).concat(["用户姓名","性别","职业","职称","地区"," 单位","子单位","注册时间","最后登录时间","授权", "邮箱"])
count_row = 1
users.each do |user|
sheet1[count_row,0] = user.try(:show_real_name)
@@ -4198,6 +4198,7 @@ end
sheet1[count_row,7] = format_time user.created_on
sheet1[count_row,8] = format_time user.last_login_on
sheet1[count_row,9] = user.trial_authorization
+ sheet1[count_row,10] = user.mail
count_row += 1
end
book.write xls_report