diff --git a/app/controllers/admins/users_controller.rb b/app/controllers/admins/users_controller.rb
index b5c5a1929..2839de169 100644
--- a/app/controllers/admins/users_controller.rb
+++ b/app/controllers/admins/users_controller.rb
@@ -28,7 +28,8 @@ class Admins::UsersController < Admins::BaseController
def export
params[:sort_by] = params[:sort_by].presence || 'created_on'
params[:sort_direction] = params[:sort_direction].presence || 'desc'
-
+ params[:time_type] = params[:time_type].presence || 'created_on'
+
users = Admins::UserQuery.call(params)
@users = users.includes(:user_extension, projects: :members)
filename = ["用户列表", Time.zone.now.strftime('%Y%m%d%H%M%S')].join('-') << '.xlsx'
diff --git a/app/queries/admins/user_query.rb b/app/queries/admins/user_query.rb
index 038ae1857..c4ba8e2dd 100644
--- a/app/queries/admins/user_query.rb
+++ b/app/queries/admins/user_query.rb
@@ -73,6 +73,21 @@ class Admins::UserQuery < ApplicationQuery
school_name = params[:school_name].to_s.strip.presence
users = users.joins(user_extension: :school).where('schools.name LIKE ?', "%#{school_name}%") if school_name
+ # 时间范围搜索
+ if params[:start_time].present? && params[:end_time].present?
+ time_type = params[:time_type].presence || 'created_on'
+ time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type)
+ users = users.where("#{time_type} >= ? AND #{time_type} <= ?", params[:start_time], params[:end_time])
+ elsif params[:start_time].present?
+ time_type = params[:time_type].presence || 'created_on'
+ time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type)
+ users = users.where("#{time_type} >= ?", params[:start_time])
+ elsif params[:end_time].present?
+ time_type = params[:time_type].presence || 'created_on'
+ time_type = 'created_on' unless %w[created_on last_login_on].include?(time_type)
+ users = users.where("#{time_type} <= ?", params[:end_time])
+ end
+
custom_sort(users, params[:sort_by], params[:sort_direction])
end
end
\ No newline at end of file
diff --git a/app/views/admins/users/index.html.erb b/app/views/admins/users/index.html.erb
index cc568c9ba..853849c79 100644
--- a/app/views/admins/users/index.html.erb
+++ b/app/views/admins/users/index.html.erb
@@ -45,7 +45,7 @@
<%= check_box_tag("bank_certification", true, false, id: "user_bank_certification", style: 'margin-left: 2px;') %>
<%= submit_tag('搜索', class: 'btn btn-primary mr-3', style: 'margin-left:50px;', 'data-disable-with': '搜索中...') %>
- 导出
+ <%= javascript_void_link '导出', class:'btn btn-outline-primary export-action', style: 'margin-left:20px;', id: 'users-export', data: { toggle: 'modal', target: '.admin-export-user-modal'}, "data-disable_with":'导出中...' %>
<% end %>
<% if current_user.admin? %>
@@ -61,13 +61,29 @@
<%= render partial: 'admins/users/shared/reward_grade_modal' %>
<%= render partial: 'admins/users/shared/import_user_modal' %>
+<%= render partial: 'admins/users/shared/export_modal' %>