mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
init project
This commit is contained in:
55
app/controllers/issue_times_controller.rb
Normal file
55
app/controllers/issue_times_controller.rb
Normal file
@@ -0,0 +1,55 @@
|
||||
class IssueTimesController < ApplicationController
|
||||
before_action :require_login
|
||||
before_action :set_issue
|
||||
before_action :check_issue_permission
|
||||
|
||||
def create
|
||||
issue_time = {
|
||||
user_id: current_user.id,
|
||||
start_time: params[:start_time].to_s.to_time || Time.now,
|
||||
issue_id: @issue.id
|
||||
}
|
||||
save_issue_time = IssueTime.new(issue_time)
|
||||
if save_issue_time.save
|
||||
@issue.custom_journal_detail("work_time",save_issue_time.id, "开始工作")
|
||||
normal_status(0, "开始成功")
|
||||
else
|
||||
normal_status(0, "开始失败")
|
||||
end
|
||||
end
|
||||
|
||||
def end_work
|
||||
end_type = params[:end_type].to_i
|
||||
end_work_time = end_type == 0 ? "" : Time.now
|
||||
last_work_time = @issue.issue_times.where(user_id: current_user.id, end_time: nil)
|
||||
Rails.logger.info("######________last_work_time&.last.try(:id)_____###########{last_work_time&.first.try(:id)}")
|
||||
|
||||
if last_work_time.update_all(end_time: end_work_time)
|
||||
if end_type == 0
|
||||
message = "取消时间跟踪"
|
||||
@issue.custom_journal_detail("cancel_time",last_work_time&.first.try(:id), "取消时间跟踪")
|
||||
else
|
||||
message = "停止工作"
|
||||
@issue.custom_journal_detail("end_time",last_work_time&.first.try(:id), "停止工作")
|
||||
end
|
||||
normal_status(0, message)
|
||||
else
|
||||
normal_status(0, "操作失败")
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def set_issue
|
||||
@issue = Issue.find_by_id(params[:issue_id])
|
||||
unless @issue.present?
|
||||
normal_status(-1, "标签不存在")
|
||||
end
|
||||
end
|
||||
|
||||
def check_issue_permission
|
||||
@project = @issue.project
|
||||
unless @project.member?(current_user) || current_user.admin?
|
||||
normal_status(-1, "您没有权限")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user