|
- class ComposesController < ApplicationController
- before_action :require_login, except: [:index]
- before_action :find_compose, except: [:index, :new,:create]
-
- def index
- @search_name = params[:search]
- composes = Compose.compose_includes
- if @search_name.present?
- composes = composes.where("title like ?", "%#{@search_name}%")
- end
- composes = composes.order("#{order_type} desc")
- @page = params[:page] || 1
- @limit = params[:limit] || 15
- @composes_size = composes.size
- @composes = composes.page(@page).per(@limit)
- end
-
- def new
-
- end
-
- def create
- ActiveRecord::Base.transaction do
- begin
- @compose = Compose.new(compose_params.merge(user_id: current_user.id))
- if @compose.save
- ComposeUser.create!(user_id: current_user.id, compose_id: @compose.id, is_manager: 1)
- normal_status(0,"组织创建成功")
- else
- error_messages = @compose.errors.messages[:title][0]
- normal_status(-1,"组织创建失败:#{error_messages}")
- end
- rescue Exception => e
- tip_exception("#{e}")
- raise ActiveRecord::Rollback
- end
- end
- end
-
- def edit
-
- end
-
- def update
- if @compose.update_attributes(compose_params)
- normal_status(0,"组织更新成功")
- else
- error_messages = @compose.errors.messages[:title][0]
- normal_status(-1,"组织更新失败:#{error_messages}")
- end
- end
-
- def destroy
- if @compose.destroy
- normal_status(0,"组织删除成功")
- else
- normal_status(-1,"组织删除失败,请稍后重试")
- end
- end
-
- def show
- compose_projects_ids = @compose&.compose_projects&.pluck(:project_id)
- search = params[:search]
- if compose_projects_ids.size > 0
- compose_projects = Project.where(id: compose_projects_ids)
-
- if search.present?
- compose_projects = compose_projects.where("name like ? ", "%#{search.to_s.strip}%")
- end
- else
- compose_projects = []
- end
-
- @compose_projects_size = compose_projects.size
-
- if @compose_projects_size > 0
- @page = params[:page] || 1
- @limit = params[:limit] || 15
- @compose_projects = compose_projects.page(@page).per(@limit)
- else
- @compose_projects = compose_projects
- end
- end
-
- private
-
- def compose_params
- params.require(:compose).permit(:user_id, :title, :description, :show_mode, :compose_mode, :compose_users_count, :compose_projects_count)
- end
-
- def find_compose
- @compose = Compose.find(params[:compose_id])
- unless @compose.present?
- normal_status(-1, "组织不存在")
- end
- end
-
- def order_type
- Compose.column_names.include?(params[:order_type]) ? params[:order_type] : 'created_at'
- end
-
- end
|