1.优化考试管理页面权限控制,培训_考试_成绩、复制、归档、取消发布、预览、考试链接

master
xiaochanghai 1 year ago
parent 00673bad90
commit 3624ff4a15
  1. 40
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  2. 47
      Tiobon.Core.Model/View/Ghre/Ghre_Exam.Dto.View.cs
  3. 8
      Tiobon.Core.Model/ViewModels/Extend/ToolbarRole.cs
  4. 29
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs
  5. 40
      Tiobon.Core/Tiobon.Core.Model.xml

@ -7036,6 +7036,46 @@
修改信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canDetail">
<summary>
可查看明细
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canEdit">
<summary>
可编辑
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canCopy">
<summary>
可复制
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canDelete">
<summary>
可作废
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canPreview">
<summary>
可预览
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.showLink">
<summary>
显示考试链接按钮
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.showResult">
<summary>
显示成绩按钮
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canClose">
<summary>
可取消归档
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLogDto">
<summary>
考试通知记录(Dto.View)

@ -38,14 +38,41 @@ public class Ghre_ExamDto : Ghre_Exam
public string ExamModeLabel { get; set; }
public string OpenClassName { get; set; }
public int canCheckbox { get; set; } = 1; // checkbox是否可选 1 是 0否
public int canDetail { get; set; } = 1; // 可查看明细
public int canEdit { get; set; } = 1; // 可编辑
public int canCopy { get; set; } = 1; // 可复制
public int canDelete { get; set; } = 1; // 可作废
public int canPreview { get; set; } = 1; // 可预览
public int showLink { get; set; } = 1; // 显示考试链接按钮
public int showResult { get; set; } = 1; // 显示成绩按钮
public int canClose { get; set; } = 1; // 可取消归档
public int canCancelRelease { get; set; } = 1;// 可取消发布
/// <summary>
/// 可查看明细
/// </summary>
public int canDetail { get; set; } = 1;
/// <summary>
/// 可编辑
/// </summary>
public int canEdit { get; set; } = 1;
/// <summary>
/// 可复制
/// </summary>
public int canCopy { get; set; } = 1;
/// <summary>
/// 可作废
/// </summary>
public int canDelete { get; set; } = 1;
/// <summary>
/// 可预览
/// </summary>
public int canPreview { get; set; } = 1;
/// <summary>
/// 显示考试链接按钮
/// </summary>
public int showLink { get; set; } = 1;
/// <summary>
/// 显示成绩按钮
/// </summary>
public int showResult { get; set; } = 1;
/// <summary>
/// 可取消归档
/// </summary>
public int canClose { get; set; } = 1;
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.Model;
public class ToolbarRole
{
public string RoleNo { get; set; }
public string RoleName { get; set; }
}

@ -649,6 +649,14 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
sql = string.Format(sql, filter.menuName, App.User.ID, filter.langId);
var toolbars = DbAccess.QueryList<Toolbar>(sql);
sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo LIKE 'TrainingExam%'";
var toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
#endregion
data.ForEach(x =>
@ -686,6 +694,17 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
x.canDelete = 0;
if (!toolbars.Any(x => x.fnKey == "DetailYN"))
x.canDetail = 0;
if (!toolbarRoles.Any(x => x.RoleNo == "TrainingExamCopy"))
x.canCopy = 0;
if (!toolbarRoles.Any(x => x.RoleNo == "TrainingExamPreview"))
x.canPreview = 0;
if (!toolbarRoles.Any(x => x.RoleNo == "TrainingExamLink"))
x.showLink = 0;
if (!toolbarRoles.Any(x => x.RoleNo == "TrainingExamGrade"))
x.showResult = 0;
if (!toolbarRoles.Any(x => x.RoleNo == "TrainingExamArchive"))
x.canClose = 0;
});
return new ServicePageResult<Ghre_ExamDto>(filter.pageNum, totalCount, filter.pageSize, data);
@ -1040,6 +1059,16 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
public async Task<ServiceResult> GetStatus(long id)
{
string sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName
FROM Ghrs_UserRole A LEFT JOIN Ghrs_Role B ON A.RoleId = B.RoleId
WHERE A.UserID = {App.User.ID}
AND A.IsEnable = 1
AND B.IsEnable = 1
AND B.RoleNo ='TrainingExamCancelRelease'";
var toolbarRoles = DbAccess.QueryList<ToolbarRole>(sql);
if (!toolbarRoles.Any())
return ServiceResult.OprateFailed("暂无取消发布权限!");
if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id))
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!");

@ -7036,6 +7036,46 @@
修改信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canDetail">
<summary>
可查看明细
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canEdit">
<summary>
可编辑
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canCopy">
<summary>
可复制
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canDelete">
<summary>
可作废
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canPreview">
<summary>
可预览
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.showLink">
<summary>
显示考试链接按钮
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.showResult">
<summary>
显示成绩按钮
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamDto.canClose">
<summary>
可取消归档
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLogDto">
<summary>
考试通知记录(Dto.View)

Loading…
Cancel
Save