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