2017-07-13 15:05:10 +08:00
# encoding: utf-8
class ManagementsController < ApplicationController
before_filter :require_admin
layout 'base_management'
include ManagementsHelper
include SortHelper
include UsersHelper
include ApplicationHelper
2017-08-24 17:32:05 +08:00
# 镜像管理
def mirror_repository
@menu_type = 3
@sub_type = 4
@mirror_types = MirrorType . where ( " 0=0 " )
mirror_rep = Redmine :: Configuration [ 'mirror_rep' ]
uri = " #{ mirror_rep } /images/json "
uri = URI . parse ( URI . encode ( uri . strip ) )
2017-08-25 15:50:00 +08:00
begin
res = Net :: HTTP . get ( uri )
res = JSON . parse ( res )
res . each do | mirror |
mirrorID = mirror [ 'Id' ] [ 7 , 12 ]
if MirrorRepository . where ( :mirrorID = > mirrorID ) . count == 0
MirrorRepository . create ( :mirrorID = > mirrorID , :status = > 0 , :created_at = > Time . at ( mirror [ 'Created' ] ) , :updated_at = > Time . at ( mirror [ 'Created' ] ) )
end
2017-08-24 17:32:05 +08:00
end
2017-08-25 15:50:00 +08:00
rescue
2017-08-24 17:32:05 +08:00
end
2017-08-25 15:50:00 +08:00
@mirrors = MirrorRepository . where ( " 0=0 " ) . reorder ( " updated_at desc " )
2017-08-24 17:32:05 +08:00
end
def add_mirror_type
data = { result : 0 }
if params [ :name ]
if MirrorType . where ( :name = > params [ :name ] ) . count == 0
new_type = MirrorType . new ( :user_id = > User . current . id , :name = > params [ :name ] )
if new_type . save
data [ :result ] = 1
end
else
data [ :result ] = 2
end
end
render :json = > data
end
def modify_mirror
2017-08-25 15:50:00 +08:00
@mirror = MirrorRepository . find params [ :mirror_id ]
2017-08-24 17:32:05 +08:00
@mirror_types = MirrorType . where ( " 0=0 " )
end
def search_mirror_type
data = { mirror_types : [ ] }
search = params [ :search ]
MirrorType . where ( " name like '% #{ search } %' " ) . each do | mirror_type |
option = [ ]
option << mirror_type . name . to_s
option << mirror_type . id
data [ :mirror_types ] << option
end
render :json = > data
end
def update_mirror
data = { result : 0 , ID : " " }
begin
mirror = MirrorRepository . find params [ :mirror_id ]
if mirror
last_index = params [ :main_type ] . strip ( ) . rindex ( " ; " ) ;
params [ :main_type ] = last_index . nil? ? " " : params [ :main_type ] . strip ( ) [ 0 ... last_index ]
if params [ :main_type ] != " "
2017-08-25 20:19:32 +08:00
# 判断镜像主类别和小类别是否重复
if MirrorRepository . where ( " id != #{ mirror . id } and main_type = ' #{ params [ :main_type ] } ' and tag = ' #{ params [ :tag ] . strip ( ) } ' " ) . count > 0
2017-08-24 17:32:05 +08:00
data [ :result ] = 1
data [ :ID ] = MirrorRepository . where ( " id != #{ mirror . id } and main_type = #{ params [ :main_type ] } and tag = #{ params [ :tag ] . strip ( ) } " ) . first . mirrorID
else
main_types = params [ :main_type ] . split ( " ; " )
2017-08-25 20:19:32 +08:00
main_name = main_types . join ( '-' )
data_tag = params [ :tag ] . strip ( ) . gsub ( / ; / , '-' )
# 更改tag
mirror_rep = Redmine :: Configuration [ 'mirror_rep' ]
uri = " #{ mirror_rep } /images/ " + mirror . mirrorID . to_s + " /tag "
params = { repo : " #{ main_name } " , tag : " #{ data_tag } " }
uri = URI . parse ( URI . encode ( uri . strip ) )
res = Net :: HTTP . post_form ( uri , params ) . body
if res == " "
# 删除原tag
del_mirror_name = mirror . main_name . to_s + " : " + mirror . tag . gsub ( / ; / , '-' ) . to_s
del_uri = " #{ mirror_rep } /images/ " + del_mirror_name
del_res = delete_mirror_http del_uri
if del_res . code == '200'
# 同步更新数据库的记录
transaction do
mirror . mirror_repository_types . destroy_all
main_types . each do | type |
mirror_tp = MirrorType . where ( :name = > type ) . first
if mirror_tp
MirrorRepositoryType . create ( :mirror_type_id = > mirror_tp . id , :mirror_repository_id = > mirror . id )
end
end
MirrorUpdateRecord . create ( :user_id = > User . current . id , :mirror_repository_id = > mirror . id , :newDescription = > params [ :description ] , :oldDescription = > mirror . description ,
:newName = > main_name , :oldName = > mirror . name , :newStatus = > params [ :status ] , :oldStatus = > mirror . status , :newTag = > params [ :tag ] , :oldTag = > mirror . tag , :newType = > params [ :main_type ] , :oldType = > mirror . main_type )
mirror . update_attributes ( :name = > main_name , :main_type = > params [ :main_type ] , :tag = > params [ :tag ] , :description = > params [ :description ] , :status = > params [ :status ] )
end
else
# 删除失败则删除新加的tag
del_mirror_name = main_name . to_s + " : " + data_tag
del_uri = " #{ mirror_rep } /images/ " + del_mirror_name
del_res = delete_mirror_http del_uri
data [ :result ] = 4
2017-08-24 17:32:05 +08:00
end
2017-08-25 20:19:32 +08:00
else
logger . error ( res [ 'message' ] )
data [ :result ] = 4
2017-08-24 17:32:05 +08:00
end
end
else
data [ :result ] = 2
end
else
data [ :result ] = 3
end
rescue Exception = > e
puts e
end
render :json = > data
end
2017-08-25 15:50:00 +08:00
def delete_mirror
mirror = MirrorRepository . find params [ :mirror_id ]
mirror_rep = Redmine :: Configuration [ 'mirror_rep' ]
uri = " #{ mirror_rep } /images/ " + mirror . mirrorID . to_s
uri = URI . parse ( URI . encode ( uri . strip ) )
data = { name :mirror . mirrorID . to_s }
http = Net :: HTTP . new uri . host , uri . port
begin
req = Net :: HTTP :: Delete . new ( uri . request_uri )
req . form_data = data
res = http . start { | http | http . request req }
if res . code == '200'
@status = 1
mirror . destroy
else
@status = 0
end
rescue = > err
end
end
2017-07-28 15:27:34 +08:00
# 专业列表
def profession
2017-08-25 16:11:35 +08:00
@major = Major . where ( " 0=0 " )
2017-08-11 11:27:04 +08:00
@menu_type = 12
@sub_type = 1
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
major_level_option = params [ :major_level ] if params [ :major_level ]
discipline_category_option = params [ :discipline_category_id ] if params [ :discipline_category_id ]
first_level_discipline_option = params [ :first_level_discipline_id ] if params [ :first_level_discipline_id ]
if major_level_option && major_level_option != '0'
2017-08-27 11:18:18 +08:00
@major = @major . where ( :major_level = > major_level_option )
2017-07-28 15:27:34 +08:00
end
2017-08-11 11:27:04 +08:00
if discipline_category_option && discipline_category_option != '0'
2017-08-27 11:18:18 +08:00
@major = @major . where ( :discipline_category_id = > discipline_category_option )
2017-07-28 15:27:34 +08:00
end
2017-08-11 11:27:04 +08:00
if first_level_discipline_option && first_level_discipline_option != '0'
2017-08-27 11:18:18 +08:00
@major = @major . where ( :first_level_discipline_id = > first_level_discipline_option )
2017-07-28 15:27:34 +08:00
end
2017-08-24 11:32:48 +08:00
if params [ :support_shixuns ]
2017-08-27 11:18:18 +08:00
@major = @major . where ( :support_shixuns = > params [ :support_shixuns ] . to_i , :major_level = > 2 )
2017-08-24 11:32:48 +08:00
end
2017-08-25 16:11:35 +08:00
@major = @major . order ( " created_at #{ @sx_order } " )
@major_count = @major . count
2017-07-28 15:27:34 +08:00
limit = 20
@is_remote = true
2017-08-25 16:11:35 +08:00
@major_pages = Paginator . new @major_count , limit , params [ 'page' ] || 1
@offset || = @major_pages . offset
@major = paginateHelper @major , limit
2017-07-28 15:27:34 +08:00
respond_to do | format |
format . js
format . html
end
end
2017-08-25 16:11:35 +08:00
# 新增专业页面
def new_major
respond_to do | format |
format . js
end
end
# 新增专业
def insert_major
major_list = Major . create ( :name = > params [ :major ] , :first_level_discipline_id = > params [ :first_level_discipline_id ] , :major_level = > params [ :major_level ] , :discipline_category_id = > params [ :discipline_category_id ] , :major_code = > params [ :major_code ] )
redirect_to profession_managements_path
end
2017-08-24 11:32:48 +08:00
# 支撑实训
def support_shixun
if params [ :syllabus_id ]
2017-08-25 16:11:35 +08:00
major = Major . find params [ :syllabus_id ]
2017-08-24 11:32:48 +08:00
major . update_attributes ( :support_shixuns = > ! major . support_shixuns )
end
end
2017-07-28 15:27:34 +08:00
# 实训适用课程
def applicable_course
2017-08-11 11:27:04 +08:00
@menu_type = 12
@sub_type = 2
2017-08-11 19:59:19 +08:00
@major = Major . where ( :major_level = > 2 )
2017-08-11 11:27:04 +08:00
@courselist = CourseList . where ( " 0=0 " )
search = params [ :search ]
2017-08-11 15:04:14 +08:00
unless search . blank?
2017-08-11 11:27:04 +08:00
@courselist = @courselist . where ( " name like '% #{ search } %' " )
end
2017-08-11 15:04:14 +08:00
@courselist = @courselist . reorder ( " created_at desc " )
2017-08-11 11:27:04 +08:00
@courselist_count = @courselist . count
@limit = 4
@is_remote = true
@page = params [ 'page' ] ? params [ 'page' ] . to_i : 1
@courselist_pages = Paginator . new @courselist_count , @limit , @page
@offset || = @courselist_pages . offset
@courselist = paginateHelper @courselist , @limit
respond_to do | format |
format . js
format . html
end
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
# 增加课程
def add_course
2017-08-11 15:04:14 +08:00
courselist = CourseList . create ( :name = > params [ :course ] )
redirect_to applicable_course_managements_path
end
2017-08-11 19:59:19 +08:00
# 增加课程所属专业
2017-08-11 15:04:14 +08:00
def add_major
2017-08-18 09:41:06 +08:00
data = { result : 0 }
id = MajorCourse . where ( :course_list_id = > params [ :course_list_id ] ) . first
if ( id . nil? ) || ( params [ :major_id ] . to_i != '0' && params [ :major_id ] . to_i != id . major_id )
MajorCourse . create ( :course_list_id = > params [ :course_list_id ] , :major_id = > params [ :major_id ] )
data [ :result ] = 1
2017-08-11 19:59:19 +08:00
end
2017-08-18 09:41:06 +08:00
render :json = > data
2017-07-28 15:27:34 +08:00
end
2017-08-11 19:59:19 +08:00
2017-07-20 14:34:44 +08:00
# 单位部门列表
2017-07-13 15:05:10 +08:00
def departments
2017-07-27 09:45:31 +08:00
@menu_type = 6
@sub_type = 2
2017-08-11 11:27:04 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-07-27 09:45:31 +08:00
@department = Department . where ( " 0=0 " )
search = params [ :search ]
if search . blank?
@department = @department
else
@department = @department . where ( " name like '% #{ search } %' " )
end
2017-08-11 11:27:04 +08:00
@department = @department . reorder ( " created_at #{ @sx_order } " )
2017-07-27 09:45:31 +08:00
@department_count = @department . count
limit = 20
@is_remote = true
@department_pages = Paginator . new @department_count , limit , params [ 'page' ] || 1
@offset || = @department_pages . offset
@department = paginateHelper @department , limit
respond_to do | format |
format . js
format . html
end
2017-07-13 15:05:10 +08:00
end
2017-08-11 11:27:04 +08:00
2017-07-20 14:34:44 +08:00
# 单位列表
2017-07-14 15:22:35 +08:00
def departments_part
2017-07-27 09:45:31 +08:00
@menu_type = 6
@sub_type = 1
@schools = School . where ( " 0=0 " )
2017-08-11 11:27:04 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-07-27 09:45:31 +08:00
search = params [ :search ]
if search . blank?
@schools = @schools
else
@schools = @schools . where ( " name like '% #{ search } %' " )
end
2017-08-11 11:27:04 +08:00
@schools = @schools . reorder ( " created_at #{ @sx_order } " )
2017-07-27 09:45:31 +08:00
@schools_count = @schools . count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
@schools_pages = Paginator . new @schools_count , limit , params [ 'page' ] || 1
@offset || = @schools_pages . offset
2017-07-27 09:45:31 +08:00
@schools = paginateHelper @schools , limit
respond_to do | format |
format . js
format . html
end
2017-07-14 15:22:35 +08:00
end
2017-07-20 14:34:44 +08:00
# 部门审核
def depart
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 3
search = params [ :search ]
2017-08-18 09:41:06 +08:00
@apply_status = ApplyAddDepartment . where ( :status = > 0 )
2017-08-11 11:27:04 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-07-27 09:45:31 +08:00
if search . blank?
@apply_status = @apply_status . where ( " 0=0 " )
else
@apply_status = @apply_status . where ( " name like '% #{ search } %' " )
end
2017-08-11 11:27:04 +08:00
@apply_status = @apply_status . order ( " created_at #{ @sx_order } " )
2017-07-20 14:34:44 +08:00
@apply_status_count = @apply_status . count
limit = 20
@is_remote = true
@apply_status_pages = Paginator . new @apply_status_count , limit , params [ 'page' ] || 1
@offset || = @apply_status_pages . offset
@apply_status = paginateHelper @apply_status , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
format . html
end
2017-07-14 15:22:35 +08:00
end
2017-08-18 16:15:32 +08:00
# 批准
def approve_applied_departments
applied_department = ApplyAddDepartment . find params [ :id ]
applied_message = AppliedMessage . where ( :applied_id = > applied_department . id , :applied_type = > " ApplyAddDepartment " )
applied_message . update_all ( :status = > 1 )
applied_department . update_column ( 'status' , 1 ) unless applied_department . nil?
AppliedMessage . create ( :user_id = > applied_department . user_id , :status = > 1 , :viewed = > 0 , :applied_id = > applied_department . id , :applied_type = > " ApplyAddDepartment " , :name = > applied_department . name )
respond_to do | format |
format . html { redirect_to depart_managements_path }
end
end
# 删除
def delete_applied_departments
applied_department = ApplyAddDepartment . find params [ :id ]
applied_message = AppliedMessage . where ( :applied_id = > applied_department . id , :applied_type = > " ApplyAddDepartment " )
applied_message . update_all ( :status = > 3 )
applied_department . update_attribute ( :status , 3 )
# 未审批删除
if params [ :tip ] == " unapplied "
AppliedMessage . create ( :user_id = > applied_department . user_id , :status = > 3 , :viewed = > 0 , :applied_id = > applied_department . id , :applied_type = > " ApplyAddDepartment " , :name = > applied_department . name )
# 删除学校的用户
users = UserExtensions . where ( " department_id = #{ applied_department . department_id } " )
users . update_all ( :department_id = > nil )
applied_department . department . destroy
redirect_to depart_managements_path
# 已审批删除
elsif params [ :tip ] == " applied "
applied_department . destroy
redirect_to depart_managements_path
end
end
# 部门修改
def all_department
apply_department = ApplyAddDepartment . where ( " status = 0 " )
apply_department_ids = apply_department . empty? ? " (-1) " : " ( " + apply_department . map { | sc | sc . department_id } . join ( ',' ) + " ) "
if ! params [ :search ] . nil?
search = " % #{ params [ :search ] . to_s . strip . downcase } % "
@department = Department . where ( " id not in #{ apply_department_ids } and #{ Department . table_name } .name like :p " , :p = > search )
#@schools = School.all
else
#@course = @user.courses.where("is_delete = 0 and #{Course.table_name}.id != #{homework.course_id}").select { |course| @user.allowed_to?(:as_teacher,course)}
@department = Department . where ( " id not in #{ apply_department_ids } " )
end
@edit_id = params [ :department_id ]
@search = params [ :search ]
respond_to do | format |
format . js
end
# redirect_to unit_managements_path
end
# 修改
def edit_applied_department
aas = ApplyAddDepartment . find ( params [ :applied_id ] )
# aas.update_attribute(:name, params[:name])
#applied_add_school = ApplyAddSchools.where(:name => aas.name)
department = Department . find params [ :department_id ]
begin
#更新消息表的status
applied_message_id = aas . department_id
applied_message = AppliedMessage . where ( :applied_id = > applied_message_id , :applied_type = > " ApplyAddDepartment " )
applied_message . update_all ( :status = > 4 )
aas . update_attribute ( :status , 2 )
AppliedMessage . create ( :user_id = > aas . user_id , :status = > 2 , :viewed = > 0 , :applied_id = > aas . id , :applied_type = > " ApplyAddDepartment " , :name = > department [ 0 ] . name )
users = UserExtensions . where ( " department_id = #{ aas . department_id } " )
users . update_all ( :department_id = > department . id )
if aas . department_id != department . id . to_i
aas . department . destroy
end
ApplyAddDepartment . where ( :department_id = > aas . department_id ) . update_all ( :department_id = > department . id )
Department . where ( :department_id = > aas . department_id ) . update_all ( :department_id = > department . id )
aas . update_attribute ( :department_id , department . id )
rescue Exception = > e
puts e
end
redirect_to depart_managements_path
end
2017-07-20 14:34:44 +08:00
# 单位审批
def unit
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 4
search = params [ :search ]
2017-08-11 11:27:04 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-08-18 09:41:06 +08:00
@apply_status = ApplyAddSchools . where ( :status = > 0 )
2017-07-27 09:45:31 +08:00
if search . blank?
@apply_status = @apply_status . where ( " 0=0 " )
else
@apply_status = @apply_status . where ( " name like '% #{ search } %' " )
end
2017-08-11 11:27:04 +08:00
@apply_status = @apply_status . order ( " created_at #{ @sx_order } " )
2017-07-20 14:34:44 +08:00
@apply_status_count = @apply_status . count
limit = 20
@is_remote = true
@apply_status_pages = Paginator . new @apply_status_count , limit , params [ 'page' ] || 1
2017-07-27 09:45:31 +08:00
@offset || = @apply_status_pages . offset
2017-07-20 14:34:44 +08:00
@apply_status = paginateHelper @apply_status , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
format . html
end
2017-07-18 14:45:23 +08:00
end
2017-08-18 16:15:32 +08:00
2017-08-18 09:41:06 +08:00
# 单位审批批准
def approve_applied_schools
applied_school = ApplyAddSchools . where ( :id = > params [ :id ] ) . first
applied_message_id = applied_school . school_id
applied_message = AppliedMessage . where ( :applied_id = > applied_message_id , :applied_type = > " ApplyAddSchools " )
applied_message . update_all ( :status = > 1 )
unless applied_school . nil?
applied_school . update_column ( 'status' , 1 )
end
school = applied_school . school
school . update_attribute ( " province " , applied_school . province )
AppliedMessage . create ( :user_id = > applied_school . user_id , :status = > 1 , :viewed = > 0 , :applied_id = > applied_school . id , :applied_type = > " ApplyAddSchools " , :name = > applied_school . name )
redirect_to unit_managements_path
end
2017-08-18 17:57:08 +08:00
# 删除
def delete_applied_schools
applied_school = ApplyAddSchools . find ( params [ :id ] )
applied_message_id = applied_school . school_id
applied_message = AppliedMessage . where ( :applied_id = > applied_message_id , :applied_type = > " ApplyAddSchools " )
applied_message . update_all ( :status = > 3 )
applied_school . update_attribute ( :status , 3 )
# 单位对应的部门审核也应做删除处理
applied_departments = ApplyAddDepartment . where ( :school_id = > applied_school . school_id )
applied_departments . update_all ( :status = > 3 )
AppliedMessage . where ( :applied_id = > applied_departments . map ( & :id ) , :applied_type = > " ApplyAddDepartment " ) . update_all ( :status = > 3 )
# 未审批删除
if params [ :tip ] == " unapplied "
AppliedMessage . create ( :user_id = > applied_school . user_id , :status = > 3 , :viewed = > 0 , :applied_id = > applied_school . id , :applied_type = > " ApplyAddSchools " , :name = > applied_school . name )
if applied_departments . first
AppliedMessage . create ( :user_id = > applied_departments . first . user_id , :status = > 3 , :viewed = > 0 , :applied_id = > applied_departments . first . id , :applied_type = > " ApplyAddDepartment " , :name = > applied_departments . first . name )
end
# 删除学校的用户
users = UserExtensions . where ( " school_id = #{ applied_school . school_id } " )
users . update_all ( :school_id = > nil , :department_id = > nil )
applied_school . school . destroy
applied_school . school . departments . destroy_all
redirect_to unit_managements_path
# 已审批删除
elsif params [ :tip ] == " applied "
applied_school . destroy
redirect_to unit_managements_path
end
end
2017-08-18 09:41:06 +08:00
# 单位审批修改
def all_schools
apply_schools = ApplyAddSchools . where ( " status = 0 " )
apply_school_ids = apply_schools . empty? ? " (-1) " : " ( " + apply_schools . map { | sc | sc . school_id } . join ( ',' ) + " ) "
if ! params [ :search ] . nil?
search = " % #{ params [ :search ] . to_s . strip . downcase } % "
@schools = School . where ( " id not in #{ apply_school_ids } and #{ School . table_name } .name like :p " , :p = > search )
#@schools = School.all
else
#@course = @user.courses.where("is_delete = 0 and #{Course.table_name}.id != #{homework.course_id}").select { |course| @user.allowed_to?(:as_teacher,course)}
@schools = School . where ( " id not in #{ apply_school_ids } " )
end
@edit_id = params [ :school_id ]
@search = params [ :search ]
respond_to do | format |
format . js
end
end
2017-08-18 16:15:32 +08:00
2017-08-18 09:41:06 +08:00
# 修改
def edit_applied_schools
aas = ApplyAddSchools . find ( params [ :applied_id ] )
school = School . find params [ :school_id ]
begin
#更新消息表的status
applied_message_id = aas . school_id
applied_message = AppliedMessage . where ( :applied_id = > applied_message_id , :applied_type = > " ApplyAddSchools " )
applied_message . update_all ( :status = > 4 )
aas . update_attribute ( :status , 2 )
AppliedMessage . create ( :user_id = > aas . user_id , :status = > 2 , :viewed = > 0 , :applied_id = > aas . id , :applied_type = > " ApplyAddSchools " , :name = > school [ 0 ] . name )
users = UserExtensions . where ( " school_id = #{ aas . school_id } " )
2017-08-18 10:50:35 +08:00
users . update_all ( :school_id = > school . id )
if aas . school_id != school . id . to_i
2017-08-18 09:41:06 +08:00
aas . school . destroy
end
2017-08-18 10:50:35 +08:00
ApplyAddDepartment . where ( :school_id = > aas . school_id ) . update_all ( :school_id = > school . id )
Department . where ( :school_id = > aas . school_id ) . update_all ( :school_id = > school . id )
aas . update_attribute ( :school_id , school . id )
2017-08-18 09:41:06 +08:00
rescue Exception = > e
puts e
end
redirect_to unit_managements_path
end
2017-07-18 14:45:23 +08:00
2017-07-20 14:34:44 +08:00
# 课堂列表
def classroom
2017-07-27 09:45:31 +08:00
@menu_type = 2
@sub_type = 1
@syllabus = Syllabus . where ( " 0=0 " )
2017-07-28 15:27:34 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-08-11 11:27:04 +08:00
major_level_option = params [ :major_level ] if params [ :major_level ]
discipline_category_option = params [ :discipline_category_id ] if params [ :discipline_category_id ]
first_level_discipline_option = params [ :first_level_discipline_id ] if params [ :first_level_discipline_id ]
syllabus_major_option = params [ :major_id ] if params [ :major_id ]
2017-07-28 17:01:42 +08:00
keyword = params [ :keyword ]
search = params [ :search ]
2017-08-11 11:27:04 +08:00
if major_level_option && major_level_option != '0'
2017-07-28 17:01:42 +08:00
@syllabus = @syllabus . where ( :major_level = > major_level_option )
2017-07-27 09:45:31 +08:00
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if discipline_category_option && discipline_category_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus = @syllabus . where ( :discipline_category_id = > discipline_category_option )
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if first_level_discipline_option && first_level_discipline_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus = @syllabus . where ( :first_level_discipline_id = > first_level_discipline_option )
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if syllabus_major_option && syllabus_major_option != '0'
2017-07-27 09:45:31 +08:00
@syllabus = @syllabus . where ( :major_id = > syllabus_major_option )
end
2017-07-28 15:27:34 +08:00
2017-08-11 11:27:04 +08:00
if params [ :school_id ] && params [ :school_id ] != ''
@syllabus = @syllabus . includes ( :user = > { :user_extensions = > [ ] } ) . where ( " user_extensions.school_id = #{ params [ :school_id ] } " )
2017-07-27 09:45:31 +08:00
end
2017-07-28 15:27:34 +08:00
if search . blank?
2017-08-11 11:27:04 +08:00
@syllabus = @syllabus
2017-07-27 09:45:31 +08:00
else
2017-07-28 15:27:34 +08:00
if " u_name " == keyword
user_id = User . where ( " concat(lastname, firstname) like '% #{ search } %' " )
@syllabus = @syllabus . includes ( :user ) . where ( " concat(users.lastname, users.firstname) like '% #{ search } %' " )
else
2017-07-28 17:01:42 +08:00
@syllabus = @syllabus . where ( " title like '% #{ search } %' " )
2017-07-28 15:27:34 +08:00
end
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
@syllabus = @syllabus . order ( " syllabuses.created_at #{ @sx_order } " )
@syllabus_count = @syllabus . count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
@syllabus_pages = Paginator . new @syllabus_count , limit , params [ 'page' ] || 1
@offset || = @syllabus_pages . offset
@syllabus = paginateHelper @syllabus , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
2017-07-28 17:01:42 +08:00
format . html
2017-07-27 09:45:31 +08:00
end
2017-07-18 14:45:23 +08:00
end
2017-07-20 14:34:44 +08:00
# 班级列表
def classroom_classment
2017-07-27 09:45:31 +08:00
@menu_type = 2
@sub_type = 2
2017-07-28 15:27:34 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ]
2017-07-21 15:26:07 +08:00
@courses = Course . where ( " 0=0 " )
2017-07-27 09:45:31 +08:00
@timing = Course . where ( :is_end = > false ) . count
@end = Course . where ( :is_end = > true ) . count
unless params [ :school_id ] || params [ :search ] || params [ :keyword ] || params [ :status ]
user_exs = UserExtensions . where ( :school_id = > @courses . map ( & :school_id ) )
@schools = School . where ( :id = > user_exs . map ( & :school_id ) )
end
2017-08-11 11:27:04 +08:00
@search = params [ :search ] # 搜索字
@keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/课程名搜索
2017-07-27 09:45:31 +08:00
status = params [ :status ] . to_i
2017-08-11 11:27:04 +08:00
2017-08-18 09:41:06 +08:00
if params [ :school_id ] && params [ :school_id ] != ''
2017-08-11 11:27:04 +08:00
@school_id = params [ :school_id ]
@courses = Course . joins ( " join users u on courses.tea_id = u.id " ) . joins ( " join user_extensions ue on u.id = ue.user_id " ) . where ( " ue.school_id = #{ params [ :school_id ] } " )
end
if params [ :homepage_show ]
@courses = @courses . where ( :homepage_show = > params [ :homepage_show ] . to_i )
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
2017-07-27 09:45:31 +08:00
if params [ :status ] && params [ :status ] != ''
2017-08-11 11:27:04 +08:00
@status = params [ :status ]
@courses = @courses . where ( :is_end = > status )
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
if " u_name " == @keyword
if @search . blank?
@courses = @courses
2017-07-27 09:45:31 +08:00
else
2017-08-11 11:27:04 +08:00
user_id = User . where ( " concat(lastname, firstname) like '% #{ @search } %' " )
@courses = @courses . joins ( " join users u on courses.tea_id = u.id " ) . where ( " concat(u.lastname, u.firstname) like '% #{ @search } %' " )
2017-07-27 09:45:31 +08:00
end
else
2017-08-11 11:27:04 +08:00
@courses = @courses . where ( " name like '% #{ @search } %' " )
2017-07-27 09:45:31 +08:00
end
2017-08-11 11:27:04 +08:00
@courses = @courses . select ( " courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime " ) . reorder ( " updatetime #{ @sx_order } " )
2017-07-27 09:45:31 +08:00
@courses_count = @courses . count
2017-07-20 14:34:44 +08:00
limit = 20
@is_remote = true
2017-07-27 09:45:31 +08:00
@courses_pages = Paginator . new @courses_count , limit , params [ 'page' ] || 1
@offset || = @courses_pages . offset
2017-07-21 15:26:07 +08:00
@courses = paginateHelper @courses , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
format . html
end
2017-07-18 14:45:23 +08:00
end
2017-08-11 11:27:04 +08:00
# 班级首页显示
def course_homepage_show
if params [ :course_id ]
course = Course . find params [ :course_id ]
course . update_attributes ( :homepage_show = > ! course . homepage_show )
end
end
2017-07-21 15:26:07 +08:00
# 课程实训
2017-07-20 14:34:44 +08:00
def class_shixuns
2017-07-27 09:45:31 +08:00
@menu_type = 4
@sub_type = 1
@edit_class_sx_num = Subject . where ( :status = > 0 ) . count
@audit_class_sx_num = Subject . where ( :status = > 1 ) . count
@publish_class_sx_num = Subject . where ( :status = > 2 ) . count
search = params [ :search ] # 搜索字
keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/课程名搜索
status = params [ :status ] . to_i
if params [ :school_id ] && params [ :school_id ] != '0'
@c_shixuns = Subject . includes ( :user = > { :user_extensions = > [ ] } ) . where ( " user_extensions.school_id = #{ params [ :school_id ] } " )
else
@c_shixuns = Subject . where ( " 0=0 " )
end
if params [ :status ] && params [ :status ] != ''
@c_shixuns = @c_shixuns . where ( :status = > status )
end
if search . blank?
@c_shixuns = @c_shixuns
else
if " u_name " == keyword
2017-08-11 11:27:04 +08:00
# user_id = User.where("concat(lastname, firstname) like '%#{search}%'")
2017-07-27 09:45:31 +08:00
@c_shixuns = @c_shixuns . includes ( :user ) . where ( " concat(users.lastname, users.firstname) like '% #{ search } %' " )
else
@c_shixuns = @c_shixuns . where ( " name like '% #{ search } %' " )
end
end
unless params [ :school_id ] || params [ :search ] || params [ :keyword ] || params [ :status ]
user_exs = UserExtensions . where ( :user_id = > @c_shixuns . map ( & :user_id ) )
@schools = School . where ( :id = > user_exs . map ( & :school_id ) )
end
2017-08-23 09:24:32 +08:00
@c_shixuns_count = @c_shixuns . count
limit = 20
@c_shixuns_pages = Paginator . new @c_shixuns_count , limit , params [ 'page' ] || 1
@offset || = @c_shixuns_pages . offset
@c_shixuns = paginateHelper @c_shixuns , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
format . html
end
2017-07-18 14:45:23 +08:00
end
2017-07-27 09:45:31 +08:00
2017-08-11 14:43:14 +08:00
def update_subject_hidden
@subject = Subject . find ( params [ :subject_id ] )
@subject . update_column ( :hidden , ! @subject . hidden )
end
2017-07-21 15:26:07 +08:00
# 已发布课程实训
2017-07-20 14:34:44 +08:00
def class_publish_shixuns
2017-07-27 09:45:31 +08:00
@menu_type = 4
@sub_type = 2
search = params [ :search ] # 搜索字
keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/课程名搜索
if params [ :school_id ] && params [ :school_id ] != '0'
@c_shixuns = Subject . includes ( :user = > { :user_extensions = > [ ] } ) . where ( " subjects.status = 2 and user_extensions.school_id = #{ params [ :school_id ] } " )
else
@c_shixuns = Subject . where ( :status = > 2 )
end
if search . blank?
2017-08-11 11:27:04 +08:00
elsif " u_name " == keyword
2017-07-27 09:45:31 +08:00
# 如果用户搜索为空, 不用遍历user表, 直接查找所有实训, 有搜索时才查找user
2017-08-11 11:27:04 +08:00
user_id = User . where ( " concat(lastname, firstname) like '% #{ search } %' " )
2017-07-27 09:45:31 +08:00
@c_shixuns = @c_shixuns . includes ( :user ) . where ( " concat(users.lastname, users.firstname) like '% #{ search } %' " )
else
@c_shixuns = @c_shixuns . where ( " name like '% #{ search } %' " )
end
unless params [ :school_id ] || params [ :search ] || params [ :keyword ]
user_exs = UserExtensions . where ( :user_id = > @c_shixuns . map ( & :user_id ) )
@schools = School . where ( :id = > user_exs . map ( & :school_id ) )
end
2017-08-11 11:27:04 +08:00
@c_shixuns = @c_shixuns . order ( " created_at desc " )
2017-08-23 09:24:32 +08:00
@c_shixuns_count = @c_shixuns . count
limit = 20
@c_shixuns_pages = Paginator . new @c_shixuns_count , limit , params [ 'page' ] || 1
@offset || = @c_shixuns_pages . offset
@c_shixuns = paginateHelper @c_shixuns , limit
2017-07-27 09:45:31 +08:00
respond_to do | format |
format . js
format . html
end
2017-07-14 15:22:35 +08:00
end
2017-07-20 14:34:44 +08:00
2017-07-13 15:05:10 +08:00
# 0 全部; 1 活动的; 2 已注册; 3 锁定
def users
2017-07-27 09:45:31 +08:00
@menu_type = 7
@sub_type = 1
status = params [ :user_status ] . nil? ? 0 : params [ :user_status ] . to_i
@us_order = params [ :us_order ] . blank? ? " desc " : params [ :us_order ] # 排序
@order_key = params [ :order_key ] . blank? ? " created_on " : params [ :order_key ] # 排序关键字
2017-07-13 15:05:10 +08:00
condition = ( params [ :research_condition ] . nil? || params [ :research_condition ] == " name " ) ? " concat(lastname, firstname) " : params [ :research_condition ]
if 0 == status
if params [ :research_condition ] == " phone " && params [ :research_contents ] . blank?
2017-07-27 09:45:31 +08:00
@users = User . order ( " #{ @order_key } #{ @us_order } " ) . all
2017-07-13 15:05:10 +08:00
else
2017-07-27 09:45:31 +08:00
@users = User . where ( " #{ condition } like '% #{ params [ :research_contents ] } %' " ) . order ( " #{ @order_key } #{ @us_order } " ) . all
2017-07-13 15:05:10 +08:00
end
else
if params [ :research_condition ] == " phone " && params [ :research_contents ] . blank?
2017-07-27 09:45:31 +08:00
@users = User . where ( :status = > status ) . order ( " #{ @order_key } #{ @us_order } " ) . all
2017-07-13 15:05:10 +08:00
else
2017-07-27 09:45:31 +08:00
@users = User . where ( " status = #{ status } and #{ condition } like '% #{ params [ :research_contents ] } %' " ) . order ( " #{ @order_key } #{ @us_order } " ) . all
2017-07-13 15:05:10 +08:00
end
end
@users_count = @users . count
@limit = 20
@is_remote = true
@users_pages = Paginator . new @users_count , @limit , params [ 'page' ] || 1
@offset || = @users_pages . offset
@users = paginateHelper @users , @limit
respond_to do | format |
2017-07-27 09:45:31 +08:00
format . js
2017-07-13 15:05:10 +08:00
format . html
end
end
def shixuns
2017-07-18 14:45:23 +08:00
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 1
2017-07-13 15:05:10 +08:00
sx_status = params [ :status ] . blank? ? [ 0 , 1 , 2 , 3 ] : params [ :status ] . to_i # 搜索实训的状态
keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/实训名搜索
search = params [ :search ] # 搜索的字
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ] # 排序
if " u_name " == keyword
# 如果用户搜索为空, 不用遍历user表, 直接查找所有实训, 有搜索时才查找user
if search . blank?
@shixuns = Shixun . where ( :status = > sx_status ) . order ( " created_at #{ @sx_order } " )
else
user_id = User . where ( " concat(lastname, firstname) like '% #{ search } %' " )
@shixuns = Shixun . where ( :user_id = > user_id , :status = > sx_status ) . order ( " created_at #{ @sx_order } " )
end
else
@shixuns = Shixun . where ( " name like '% #{ search } %' " ) . where ( :status = > sx_status ) . order ( " created_at #{ @sx_order } " )
end
@edit_sx_num = Shixun . where ( :status = > 0 ) . count
@audit_sx_num = Shixun . where ( :status = > 1 ) . count
@publish_sx_num = Shixun . where ( :status = > 2 ) . count
@close_sx_num = Shixun . where ( :status = > 3 ) . count
@shixuns_count = @shixuns . count
limit = 20
@shixuns_pages = Paginator . new @shixuns_count , limit , params [ 'page' ] || 1
@offset || = @shixuns_pages . offset
@shixuns = paginateHelper @shixuns , limit
respond_to do | format |
format . js
format . html
end
end
2017-08-11 14:43:14 +08:00
def update_shixun_hidden
@shixun = Shixun . find ( params [ :shixun_id ] )
@shixun . update_column ( :hidden , ! @shixun . hidden )
end
2017-07-18 14:45:23 +08:00
# 已发布的实训
def publish_shixuns
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 2
2017-07-18 14:45:23 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ] # 排序
search = params [ :search ] # 搜索字
keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/实训名搜索
close = params [ :close ] # 关闭实训,参数是实训的Id
unless close . blank?
Shixun . find ( close ) . update_attribute ( :status , 3 )
end
if " u_name " == keyword
# 如果用户搜索为空, 不用遍历user表, 直接查找所有实训, 有搜索时才查找user
if search . blank?
@shixuns = Shixun . where ( :status = > 2 ) . order ( " created_at #{ @sx_order } " )
else
user_id = User . where ( " concat(lastname, firstname) like '% #{ search } %' " )
@shixuns = Shixun . where ( :user_id = > user_id , :status = > 2 ) . order ( " created_at #{ @sx_order } " )
end
else
@shixuns = Shixun . where ( " name like '% #{ search } %' " ) . where ( :status = > 2 ) . order ( " created_at #{ @sx_order } " )
end
2017-08-11 11:27:04 +08:00
if params [ :homepage_show ]
@shixuns = @shixuns . where ( :homepage_show = > params [ :homepage_show ] . to_i )
end
2017-07-18 14:45:23 +08:00
@shixuns_count = @shixuns . count
limit = 20
@shixuns_pages = Paginator . new @shixuns_count , limit , params [ 'page' ] || 1
@offset || = @shixuns_pages . offset
@shixuns = paginateHelper @shixuns , limit
respond_to do | format |
format . js
format . html
end
end
2017-08-11 11:27:04 +08:00
# 实训首页显示
def shixun_homepage_show
if params [ :shixun_id ]
shixun = Shixun . find params [ :shixun_id ]
shixun . update_attributes ( :homepage_show = > ! shixun . homepage_show )
end
end
2017-07-18 14:45:23 +08:00
# 已关闭的实训
def close_shixuns
@menu_type = 3
2017-07-27 09:45:31 +08:00
@sub_type = 3
2017-07-18 14:45:23 +08:00
@sx_order = params [ :sx_order ] . blank? ? " desc " : params [ :sx_order ] # 排序
search = params [ :search ] # 搜索字
keyword = params [ :keyword ] . blank? ? " u_name " : params [ :keyword ] # 根据姓名/实训名搜索
reopen = params [ :reopen ] # 从新开启实训,参数是实训的Id
unless reopen . blank?
Shixun . find ( reopen ) . update_attribute ( :status , 2 )
end
if " u_name " == keyword
# 如果用户搜索为空, 不用遍历user表, 直接查找所有实训, 有搜索时才查找user
if search . blank?
@shixuns = Shixun . where ( :status = > 3 ) . order ( " updated_at #{ @sx_order } " )
else
user_id = User . where ( " concat(lastname, firstname) like '% #{ search } %' " )
@shixuns = Shixun . where ( :user_id = > user_id , :status = > 3 ) . order ( " updated_at #{ @sx_order } " )
end
else
@shixuns = Shixun . where ( " name like '% #{ search } %' " ) . where ( :status = > 3 ) . order ( " updated_at #{ @sx_order } " )
end
@shixuns_count = @shixuns . count
limit = 20
@shixuns_pages = Paginator . new @shixuns_count , limit , params [ 'page' ] || 1
@offset || = @shixuns_pages . offset
@shixuns = paginateHelper @shixuns , limit
respond_to do | format |
format . js
format . html
end
end
2017-07-13 15:05:10 +08:00
def users_trial
2017-07-27 09:45:31 +08:00
@menu_type = 7
@sub_type = 2
2017-07-13 15:05:10 +08:00
@users = User . where ( :status = > 1 ) . order ( " created_on desc " ) . all
@users_count = @users . count
@limit = 20
@is_remote = true
@users_pages = Paginator . new @users_count , @limit , params [ 'page' ] || 1
@offset || = @users_pages . offset
@users = paginateHelper @users , @limit
end
def search_user
= begin
auth = ApplyUserAuthentication . where ( :status = > params [ :authentication ] )
auth_id = auth . blank? ? User . where ( :status = > 1 ) . id : " ( " + auth . map { | a | a . user_id } . join ( " , " ) + " ) "
= end
if params [ :member_ids ] && params [ :trial_whether ] == " trial_agree "
params [ :member_ids ] . each do | member |
aUser = ApplyAction . where ( :user_id = > member , :container_type = > " TrialAuthorization " )
if aUser . blank?
ApplyAction . create ( :user_id = > member , :container_type = > " TrialAuthorization " , :status = > 1 )
else
aUser . update_all ( :status = > 1 )
end
end
elsif params [ :member_ids ] && params [ :trial_whether ] == " trial_cancel "
ApplyAction . where ( :user_id = > params [ :member_ids ] , :container_type = > " TrialAuthorization " ) . update_all ( :status = > 2 )
end
if params [ :member_ids ] && ( params [ :occupation ] == " occupation_agree " || params [ :realname ] == " realname_agree " )
User . where ( :id = > params [ :member_ids ] ) . update_all ( :authentication = > true )
elsif params [ :member_ids ] && ( params [ :occupation ] == " occupation_agree " || params [ :realname ] == " realname_cancel " )
User . where ( :id = > params [ :member_ids ] ) . update_all ( :authentication = > false )
end
if params [ :trial ] == " -1 "
apply = ApplyAction . where ( :container_type = > " TrialAuthorization " )
apply_id = apply . blank? ? - 1 : " ( " + apply . map { | a | a . user_id } . join ( " , " ) + " ) "
apply_user_id = User . where ( " id not in #{ apply_id } and status = 1 " ) . all
apply_user_id = apply_user_id . blank? ? [ - 1 ] : apply_user_id . map { | a | a . id } . split ( " , " ) [ 0 ]
elsif params [ :trial ] == " -2 "
apply_user_id = User . where ( :status = > 1 ) . all
apply_user_id = apply_user_id . blank? ? [ - 1 ] : apply_user_id . map { | a | a . id } . split ( " , " ) [ 0 ]
else
apply = ApplyAction . where ( :status = > params [ :trial ] )
apply_user_id = apply . blank? ? [ - 1 ] : apply . map { | a | a . user_id } . split ( " , " ) [ 0 ]
end
if params [ :school ] == " "
s_user_id = User . where ( :status = > 1 ) . all
s_user_id = s_user_id . blank? ? [ - 1 ] : s_user_id . map { | s | s . id } . split ( " , " ) [ 0 ]
else
school = School . where ( " name like '% #{ params [ :school ] } %' " )
school_id = school . blank? ? - 1 : school . map { | s | s . id } . split ( " , " ) [ 0 ]
usr = UserExtensions . where ( :school_id = > school_id )
s_user_id = usr . blank? ? [ - 1 ] : usr . map { | u | u . user_id } . split ( " , " ) [ 0 ]
end
if params [ :department ] == " "
d_user_id = User . where ( :status = > 1 ) . all
d_user_id = d_user_id . blank? ? [ - 1 ] : d_user_id . map { | d | d . id } . split ( " , " ) [ 0 ]
else
department = Department . where ( " name like '% #{ params [ :department ] } %' " ) . all
dep_id = department . blank? ? - 1 : department . map { | d | d . id } . split ( " , " )
usr = UserExtensions . where ( :department_id = > dep_id )
d_user_id = usr . blank? ? [ - 1 ] : usr . map { | u | u . user_id } . split ( " , " ) [ 0 ]
end
user_id = s_user_id & d_user_id & apply_user_id
if params [ :research_condition ] == " name "
@users = User . where ( :id = > user_id ) . where ( " concat(lastname, firstname) like '% #{ params [ :research_contents ] } %' " ) . order ( " created_on desc " )
elsif params [ :research_condition ] == " email "
@users = User . where ( :id = > user_id ) . where ( " mail like '% #{ params [ :research_contents ] } %' " ) . order ( " created_on desc " )
elsif params [ :research_condition ] == " phone "
if params [ :research_contents ] . blank?
@users = User . where ( :id = > user_id ) . order ( " created_on desc " )
else
@users = User . where ( :id = > user_id ) . where ( " phone like '% #{ params [ :research_contents ] } %' " ) . order ( " created_on desc " )
end
end
@users_count = @users . count
@limit = 20
@is_remote = true
@users_pages = Paginator . new @users_count , @limit , params [ 'page' ] || 1
@offset || = @users_pages . offset
@users = paginateHelper @users , @limit
respond_to do | format |
format . js
end
end
def update_webssh
webssh = params [ :status ] == " true " ? true : false
@shixuns = Shixun . find ( params [ :shixun_id ] )
@shixuns . update_column ( :webssh , webssh )
respond_to do | format |
format . js
end
end
def affirm_cancel_auth
user_id = params [ :users ]
end
def trial_authorization
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 2
2017-07-13 15:05:10 +08:00
search = params [ :search ]
@status = trial_authorization_status ( params [ :status ] )
# @status = (params[:status].blank? || params[:status] == "0") ? 0 : [1,2]
if search . blank?
@authorizations = ApplyAction . where ( :container_type = > " TrialAuthorization " , :status = > @status ) . includes ( :user )
else
user_id = User . find_by_sql ( " select id from users where concat(lastname,firstname) like '% #{ search } %' " )
@authorizations = ApplyAction . where ( :container_type = > " TrialAuthorization " , :status = > @status , :user_id = > user_id ) . includes ( :user )
end
@autu_count = @authorizations . count
@limit = 15
@is_remote = true
@autu_pages = Paginator . new @autu_count , @limit , params [ 'page' ] || 1
@offset || = @autu_pages . offset
@authorizations = paginateHelper @authorizations , @limit
2017-07-21 15:26:07 +08:00
2017-07-13 15:05:10 +08:00
end
# 批量授权
def batch_authorization
end
# params[:type] 1: 拒绝 0: 同意
# authentication 会有一个初始值,不同的值代表不同的权限
# REDO: 后面权限改了后,一并要改
def trial_authorization_operation
apply_action = ApplyAction . find ( params [ :apply_id ] )
type = params [ :type ]
search = params [ :search ]
if type == " 0 "
authentication_user = AuthenticationsUsers . where ( :user_id = > apply_action . user_id ) . first
if authentication_user . blank?
AuthenticationsUsers . create ( :user_id = > apply_action . user_id , :authentication_id = > 1 )
end
end
apply_action . update_attributes ( :status = > ( params [ :type ] == " 1 " ? 2 : 1 ) , :reason = > params [ :reject_reason ] , :dealer_id = > User . current . id )
user_id = User . find_by_sql ( " select id from users where concat(lastname,firstname) like '% #{ search } %' " )
@authorizations = ApplyAction . where ( :container_type = > " TrialAuthorization " , :status = > 0 , :user_id = > user_id ) . includes ( :user )
2017-07-21 15:26:07 +08:00
@autu_count = @authorizations . count
@limit = 15
@is_remote = true
@autu_pages = Paginator . new @autu_count , @limit , params [ 'page' ] || 1
@offset || = @autu_pages . offset
@authorizations = paginateHelper @authorizations , @limit
2017-07-13 15:05:10 +08:00
respond_to do | format |
format . js
end
end
def index
end
# copy from admin
def identity_authentication
2017-07-27 09:45:31 +08:00
@menu_type = 10
@sub_type = 1
2017-07-13 15:05:10 +08:00
@type = trial_authorization_status ( params [ :type ] )
type = params [ :type ] || 0 # 存在type 就用type 没有就为 0
user_id = User . find_by_sql ( " select id from users where concat(lastname,firstname) like '% #{ params [ :name ] } %' " )
2017-08-04 16:34:58 +08:00
@unapproved_user = ApplyUserAuthentication . where ( :status = > @type , :user_id = > user_id , :auth_type = > 1 ) . order ( " updated_at desc " )
respond_to do | format |
format . html
format . js
end
end
def professional_authentication
@menu_type = 10
@sub_type = 7
@type = trial_authorization_status ( params [ :type ] )
type = params [ :type ] || 0 # 存在type 就用type 没有就为 0
user_id = User . find_by_sql ( " select id from users where concat(lastname,firstname) like '% #{ params [ :name ] } %' " )
@unapproved_user = ApplyUserAuthentication . where ( :status = > @type , :user_id = > user_id , :auth_type = > 2 ) . order ( " updated_at desc " )
2017-07-13 15:05:10 +08:00
respond_to do | format |
format . html
format . js
end
end
# 拒绝身份认证
# copy from admin
def reject_authentication
2017-08-04 16:34:58 +08:00
apply_user = ApplyUserAuthentication . where ( :id = > params [ :apply_id ] , :auth_type = > 1 ) . first
2017-07-13 15:05:10 +08:00
reason = apply_user . update_attributes ( :status = > 2 , :remarks = > params [ :reject_reason ] )
render :json = > { success : reason }
end
2017-08-04 16:34:58 +08:00
# 同意身份认证
2017-07-13 15:05:10 +08:00
# copy from admin
def agree_authentication
2017-08-04 16:34:58 +08:00
apply_user = ApplyUserAuthentication . where ( :id = > params [ :apply_id ] , :auth_type = > 1 ) . first
2017-07-13 15:05:10 +08:00
user = User . find ( apply_user . user_id )
apply_user . update_attribute ( :status , 1 )
user . update_attribute ( :authentication , true )
2017-08-04 16:34:58 +08:00
@unapproved_user = ApplyUserAuthentication . where ( :status = > 0 , :auth_type = > 1 ) . order ( " updated_at desc " )
respond_to do | format |
format . js
end
end
# 拒绝职业认证
def reject_authentication_pro
apply_user = ApplyUserAuthentication . where ( :id = > params [ :apply_id ] , :auth_type = > 2 ) . first
reason = apply_user . update_attributes ( :status = > 2 , :remarks = > params [ :reject_reason ] )
render :json = > { success : reason }
end
# 同意职业认证
def agree_authentication_pro
apply_user = ApplyUserAuthentication . where ( :id = > params [ :apply_id ] , :auth_type = > 2 ) . first
user = User . find ( apply_user . user_id )
apply_user . update_attribute ( :status , 1 )
user . update_attribute ( :professional_certification , true )
@unapproved_user = ApplyUserAuthentication . where ( :status = > 0 , :auth_type = > 2 ) . order ( " updated_at desc " )
2017-07-13 15:05:10 +08:00
respond_to do | format |
format . js
end
end
2017-07-21 15:26:07 +08:00
def subject_authorization
2017-07-27 09:45:31 +08:00
@menu_type = 10
2017-08-11 20:03:16 +08:00
@sub_type = 6
2017-07-21 15:26:07 +08:00
@type = trial_authorization_status params [ :type ]
2017-07-27 09:45:31 +08:00
@authorizations = ApplyAction . where ( :container_type = > " ApplySubject " , :status = > @type ) . order ( " created_at desc " )
2017-07-21 15:26:07 +08:00
# @subject=Subject.all
2017-07-27 09:45:31 +08:00
@authorizations_count = @authorizations . count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator . new @authorizations_count , @limit , params [ 'page' ] || 1
@offset || = @authorizations_pages . offset
@authorizations = paginateHelper @authorizations , @limit
2017-07-21 15:26:07 +08:00
respond_to do | format |
format . js
format . html
end
end
2017-07-13 15:05:10 +08:00
def shixun_authorization
2017-07-27 09:45:31 +08:00
@menu_type = 10
2017-08-11 19:59:19 +08:00
@sub_type = 5
2017-07-13 15:05:10 +08:00
@type = trial_authorization_status params [ :type ]
@authorizations = ApplyAction . where ( :container_type = > " ApplyShixun " , :status = > @type ) . order ( " created_at desc " )
search = params [ :search ]
unless search . blank?
@authorizations = @authorizations . where ( :container_id = > Shixun . where ( :id = > @authorizations . map ( & :container_id ) ) . where ( " name like '% #{ search } %' " ) . map ( & :id ) ) . order ( " created_at desc " )
end
@authorizations_count = @authorizations . count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator . new @authorizations_count , @limit , params [ 'page' ] || 1
@offset || = @authorizations_pages . offset
@authorizations = paginateHelper @authorizations , @limit
respond_to do | format |
format . js
format . html
end
end
2017-07-21 15:26:07 +08:00
# 课程实训发布审批
def deal_subject_authorization
apply_action = ApplyAction . find ( params [ :apply_id ] )
type = params [ :type ] . to_i
2017-07-27 09:45:31 +08:00
subject = Subject . find apply_action . container_id
2017-07-21 15:26:07 +08:00
if type == 0 #拒绝
subject . update_column ( 'status' , 0 )
apply_action . update_attributes ( :status = > 2 , :reason = > params [ :reject_reason ] , :dealer_id = > User . current . id )
2017-07-27 09:45:31 +08:00
notes = " 您所在团队提交的课程实训发布申请:<a href=' #{ subject_path ( subject ) } '> #{ subject . name } </a>,审核未通过。<br/>原因: #{ params [ :reject_reason ] } "
2017-07-21 15:26:07 +08:00
JournalsForMessage . create ( :jour_id = > subject . user_id , :jour_type = > 'Principal' , :user_id = > User . current . id , :notes = > notes , :private = > 1 , :reply_id = > 0 )
else #同意
subject . update_column ( 'status' , 2 )
apply_action . update_attributes ( :status = > 1 , :dealer_id = > User . current . id )
2017-07-27 09:45:31 +08:00
end
@authorizations = ApplyAction . where ( :container_type = > " ApplySubject " , :status = > 0 )
@authorizations_count = @authorizations . count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator . new @authorizations_count , @limit , params [ 'page' ] || 1
@offset || = @authorizations_pages . offset
@authorizations = paginateHelper @authorizations , @limit
respond_to do | format |
format . js
end
2017-07-21 15:26:07 +08:00
end
# 项目实训发布审批
2017-07-13 15:05:10 +08:00
def deal_shixun_authorization
apply_action = ApplyAction . find ( params [ :apply_id ] )
type = params [ :type ] . to_i
shixun = Shixun . find apply_action . container_id
2017-07-21 15:26:07 +08:00
if type == 0 #拒绝
2017-07-13 15:05:10 +08:00
shixun . update_column ( 'status' , 0 )
apply_action . update_attributes ( :status = > 2 , :reason = > params [ :reject_reason ] , :dealer_id = > User . current . id )
notes = " 您所在团队提交的项目实训发布申请:<a href=' #{ shixun_path ( shixun ) } '> #{ shixun . name } </a>,审核未通过。<br/>原因: #{ params [ :reject_reason ] } "
shixun . shixun_members . each do | member |
JournalsForMessage . create ( :jour_id = > member . user_id , :jour_type = > 'Principal' , :user_id = > User . current . id , :notes = > notes , :private = > 1 , :reply_id = > 0 )
end
2017-07-21 15:26:07 +08:00
else #同意
2017-07-13 15:05:10 +08:00
shixun . update_column ( 'status' , 2 )
apply_action . update_attributes ( :status = > 1 , :dealer_id = > User . current . id )
shixun_modify_status_without_publish shixun , 1
end
@authorizations = ApplyAction . where ( :container_type = > " ApplyShixun " , :status = > 0 )
@authorizations_count = @authorizations . count
@limit = 15
@is_remote = true
@authorizations_pages = Paginator . new @authorizations_count , @limit , params [ 'page' ] || 1
@offset || = @authorizations_pages . offset
@authorizations = paginateHelper @authorizations , @limit
respond_to do | format |
format . js
end
end
end