|
|
|
@ -20,28 +20,29 @@ class MyshixunsController < ApplicationController
|
|
|
|
|
unless (current_user.admin? || current_user.id == @myshixun.user_id)
|
|
|
|
|
tip_exception("403", "")
|
|
|
|
|
end
|
|
|
|
|
begin
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
begin
|
|
|
|
|
@shixun = Shixun.select(:id, :identifier).find(@myshixun.shixun_id)
|
|
|
|
|
@myshixun.destroy
|
|
|
|
|
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
begin
|
|
|
|
|
@shixun = Shixun.select(:id, :identifier).find(@myshixun.shixun_id)
|
|
|
|
|
@myshixun.destroy
|
|
|
|
|
StudentWork.where(:myshixun_id => @myshixun.id).update_all(:myshixun_id => 0, :work_status => 0)
|
|
|
|
|
|
|
|
|
|
# 刪除版本庫
|
|
|
|
|
begin
|
|
|
|
|
GitService.delete_repository(repo_path: @repo_path)
|
|
|
|
|
# 实训在申请发布前,是否玩过实训,如果玩过需要更改记录,防止二次重置
|
|
|
|
|
shixun_mod = ShixunModify.where(:shixun_id => @shixun.id, :myshixun_id => @myshixun.id, :status => 1).take
|
|
|
|
|
shixun_mod.update_column(:status, 0) if shixun_mod
|
|
|
|
|
rescue Exception => e
|
|
|
|
|
uid_logger_error("版本库删除异常,详情:#{e.message}")
|
|
|
|
|
logger.error("######reset_my_game_failed:#{e.message}")
|
|
|
|
|
raise("ActiveRecord::RecordInvalid")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
StudentWork.where(:myshixun_id => @myshixun.id).update_all(:myshixun_id => 0, :work_status => 0)
|
|
|
|
|
|
|
|
|
|
# 实训在申请发布前,是否玩过实训,如果玩过需要更改记录,防止二次重置
|
|
|
|
|
shixun_mod = ShixunModify.where(:shixun_id => @shixun.id, :myshixun_id => @myshixun.id, :status => 1).take
|
|
|
|
|
shixun_mod.update_column(:status, 0) if shixun_mod
|
|
|
|
|
rescue Exception => e
|
|
|
|
|
uid_logger_error("myshixun reset failed #{e}")
|
|
|
|
|
raise ActiveRecord::Rollback
|
|
|
|
|
end
|
|
|
|
|
# 删除版本库
|
|
|
|
|
GitService.delete_repository(repo_path: @repo_path)
|
|
|
|
|
rescue Exception => e
|
|
|
|
|
if e.message != "ActiveRecord::RecordInvalid"
|
|
|
|
|
logger.error("######delete_repository_error:#{e.message}")
|
|
|
|
|
end
|
|
|
|
|
raise ActiveRecord::Rollback
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|