添加组织项目

dev_forge
SylorHuang 5 years ago
parent 3f304a28e8
commit 762708cb83

@ -0,0 +1,38 @@
class ComposeProjectsController < ApplicationController
before_action :require_login
before_action :set_compose
def create
project_ids = params[:project_ids]
ComposeProject.transaction do
project_ids.each do |p|
project = Project.select(:id, :user_id).find(p)
unless project.blank? || ComposeProject.exists?(user_id: project.user_id, project_id: p, compose_id: @compose.id)
ComposeProject.create!(user_id: project.user_id, project_id: p, compose_id: @compose.id, position: p)
end
end
end
normal_status(0, "添加成功")
end
def destroy
project_ids = params[:project_ids]
if ComposeProject.where(project_id: project_ids, compose_id: @compose.id).delete_all
normal_status(0, "项目删除成功")
else
normal_status(-1, "项目删除失败")
end
end
private
def set_compose
@compose = Compose.find(params[:compose_id])
Rails.logger.info()
unless @compose.present?
normal_status(-1, "组织不存在")
end
end
end

@ -60,11 +60,26 @@ class ComposesController < ApplicationController
end
def show
compose_projects = @compose&.compose_projects&.pluck(:project_id)
if compose_projects.size > 0
@compose_projects = Project.where(id: compose_projects)
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
@ -75,7 +90,7 @@ class ComposesController < ApplicationController
end
def find_compose
@compose = Compose.find(params[:id])
@compose = Compose.find(params[:compose_id])
unless @compose.present?
normal_status(-1, "组织不存在")
end

@ -8,3 +8,4 @@ class Compose < ApplicationRecord
scope :compose_includes, ->{includes(:compose_projects, :compose_users, :user)}
end

@ -0,0 +1,11 @@
json.extract! @compose, :id, :title,:description,:show_mode,:compose_mode, :compose_users_count, :compose_projects_count
if @compose_projects_size > 0
json.compose_projects do
json.array! @compose_projects do |project|
json.extract! project, :id, :name,:description,:project_type,:user_id, :forked_count, :visits,:project_category_id, :project_language_id
json.updated_at format_time(project.updated_on)
end
end
else
json.compose_projects []
end

@ -12,7 +12,9 @@ Rails.application.routes.draw do
resources :edu_settings
scope '/api' do
resources :composes
resources :composes do
resources :compose_projects, only: [:create, :destroy]
end
get 'home/index'
get 'home/search'

Loading…
Cancel
Save