5.新增获取考试状态接口

master
xiaochanghai 1 year ago
parent 4153753c1c
commit 03fd85586b
  1. 13
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamController.cs
  2. 2
      Tiobon.Core.IServices/BASE/IBaseServices.cs
  3. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamServices.cs
  4. 2
      Tiobon.Core.Model/ServiceResult.cs
  5. 5
      Tiobon.Core.Repository/BASE/BaseRepository.cs
  6. 2
      Tiobon.Core.Repository/BASE/IBaseRepository.cs
  7. 6
      Tiobon.Core.Services/BASE/BaseServices.cs
  8. 16
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs

@ -100,4 +100,17 @@ public class Ghre_ExamController : BaseController<IGhre_ExamServices, Ghre_Exam,
return await _service.UpdateStatus(ids, status); return await _service.UpdateStatus(ids, status);
} }
#endregion #endregion
#region 获取考试状态接口
/// <summary>
/// 获取考试状态接口
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("GetStatus/{id}")]
public async Task<ServiceResult> GetStatus(long id)
{
return await _service.GetStatus(id);
}
#endregion
} }

@ -83,6 +83,8 @@ namespace Tiobon.Core.IServices.BASE
Task<bool> AnyAsync(object objId); Task<bool> AnyAsync(object objId);
Task<bool> AnyAsync(Expression<Func<TEntity, bool>> whereExpression);
/// <summary> /// <summary>
/// 根据ID查询实体数据是否存在 /// 根据ID查询实体数据是否存在
/// </summary> /// </summary>

@ -20,5 +20,7 @@ namespace Tiobon.Core.IServices
Task<ServiceResult<long>> Insert1(long id, DefaultGhre_ExamPageData pageData); Task<ServiceResult<long>> Insert1(long id, DefaultGhre_ExamPageData pageData);
Task<ServiceResult> UpdateStatus(long[] ids, string status); Task<ServiceResult> UpdateStatus(long[] ids, string status);
Task<ServiceResult> GetStatus(long id);
} }
} }

@ -129,7 +129,7 @@ public class ServiceResult
{ {
Message = msg, Message = msg,
Status = status, Status = status,
Data = null Data = null,
}; };
} }
} }

@ -94,6 +94,11 @@ namespace Tiobon.Core.Repository.Base
return _db.Queryable<TEntity>().In(objId).Any(); return _db.Queryable<TEntity>().In(objId).Any();
} }
public async Task<bool> AnyAsync(Expression<Func<TEntity, bool>> whereExpression)
{
return await _db.Queryable<TEntity>().WhereIF(whereExpression != null, whereExpression).AnyAsync();
}
/// <summary> /// <summary>
/// 根据ID查询一条数据 /// 根据ID查询一条数据
/// </summary> /// </summary>

@ -27,6 +27,8 @@ namespace Tiobon.Core.IRepository.Base
/// <returns></returns> /// <returns></returns>
bool Any(object objId); bool Any(object objId);
Task<bool> AnyAsync(Expression<Func<TEntity, bool>> whereExpression);
/// <summary> /// <summary>
/// 根据Id查询实体 /// 根据Id查询实体
/// </summary> /// </summary>

@ -57,6 +57,12 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
return data; return data;
} }
public async Task<bool> AnyAsync(Expression<Func<TEntity, bool>> whereExpression)
{
var data = await BaseDal.AnyAsync(whereExpression);
return data;
}
public virtual async Task<TEntityDto> QueryById(object objId) public virtual async Task<TEntityDto> QueryById(object objId)
{ {
var data = new TEntity(); var data = new TEntity();

@ -27,11 +27,13 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
private readonly IGhre_CourseSceneServices _ghre_CourseSceneServices; private readonly IGhre_CourseSceneServices _ghre_CourseSceneServices;
private readonly IGhra_StaffServices _ghra_StaffSceneServices; private readonly IGhra_StaffServices _ghra_StaffSceneServices;
private readonly IGhre_ExamStaffServices _ghre_ExamStaffServices; private readonly IGhre_ExamStaffServices _ghre_ExamStaffServices;
private readonly IGhre_ExamRecordServices _ghre_ExamRecordServices;
public Ghre_ExamServices(ICaching caching, public Ghre_ExamServices(ICaching caching,
IGhre_CourseServices ghre_CourseServices, IGhre_CourseServices ghre_CourseServices,
IGhre_CourseSceneServices ghre_CourseSceneServices, IGhre_CourseSceneServices ghre_CourseSceneServices,
IGhra_StaffServices ghra_StaffSceneServices, IGhra_StaffServices ghra_StaffSceneServices,
IGhre_ExamStaffServices ghre_ExamStaffServices, IGhre_ExamStaffServices ghre_ExamStaffServices,
IGhre_ExamRecordServices ghre_ExamRecordServices,
IBaseRepository<Ghre_Exam> dal) IBaseRepository<Ghre_Exam> dal)
{ {
this._dal = dal; this._dal = dal;
@ -41,6 +43,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
_ghre_CourseSceneServices = ghre_CourseSceneServices; _ghre_CourseSceneServices = ghre_CourseSceneServices;
_ghra_StaffSceneServices = ghra_StaffSceneServices; _ghra_StaffSceneServices = ghra_StaffSceneServices;
_ghre_ExamStaffServices = ghre_ExamStaffServices; _ghre_ExamStaffServices = ghre_ExamStaffServices;
_ghre_ExamRecordServices = ghre_ExamRecordServices;
} }
public async Task<dynamic> GetModuleInfo(ModuleParam param) public async Task<dynamic> GetModuleInfo(ModuleParam param)
{ {
@ -607,6 +610,10 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
BasePoco ent = entity; BasePoco ent = entity;
ent.UpdateIP = ip; ent.UpdateIP = ip;
ent.UpdateProg = api; ent.UpdateProg = api;
if (status != "Released" && await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id))
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!");
if (status == "Released" || status == "Disabled" || status == "Draft") if (status == "Released" || status == "Disabled" || status == "Draft")
{ {
entity.Status = status; entity.Status = status;
@ -623,4 +630,13 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
return ServiceResult.OprateSuccess("停用成功!"); return ServiceResult.OprateSuccess("停用成功!");
} }
public async Task<ServiceResult> GetStatus(long id)
{
if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id))
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!");
return ServiceResult.OprateSuccess("可以取消发布!");
}
} }
Loading…
Cancel
Save