refactor,feat: 批量代码重构与新增业务模块
1. 重命名枚举项与实体字段,修正类型引用 2. 新增IsNull扩展方法与多项字符串处理扩展 3. 新增大量业务DTO、服务接口与枚举定义 4. 重构RabbitMQ服务实现,替换旧版消息队列组件 5. 优化签到服务的宠物喂养事务逻辑 6. 移除冗余的项目引用与旧版消息队列代码 7. 新增Excel导出、导入模板相关工具方法
This commit is contained in:
@ -43,4 +43,23 @@ public class BusinessException : Exception
|
||||
public BusinessException(string message, Exception innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
|
||||
public static void ThrowIf(bool isTrue, string message)
|
||||
{
|
||||
if (isTrue) throw new BusinessException(message);
|
||||
}
|
||||
|
||||
public static void ThrowIf(bool isTrue, Func<string> action)
|
||||
{
|
||||
if (isTrue) throw new BusinessException(action.Invoke());
|
||||
}
|
||||
|
||||
public static void ThrowIf(bool isTrue, string message, Action action)
|
||||
{
|
||||
if (isTrue)
|
||||
{
|
||||
action();
|
||||
throw new BusinessException(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.DotMatrix
|
||||
{
|
||||
public class DotMatrixNoteJournalReportInput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
public bool Success { get; set; }
|
||||
|
||||
public string FileKey { get; set; }
|
||||
|
||||
public string FileUrl { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.DotMatrix
|
||||
{
|
||||
public class DotMatrixOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 方法
|
||||
/// </summary>
|
||||
public string Method { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public long NoteId { get; set; }
|
||||
|
||||
private string _pdfUrl;
|
||||
/// <summary>
|
||||
/// pdf地址
|
||||
/// </summary>
|
||||
public string PdfUrl
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_pdfUrl);
|
||||
set => _pdfUrl = value;
|
||||
}
|
||||
|
||||
public List<DotMatrixMqOutput> DotMatrixs { get; set; } = new List<DotMatrixMqOutput>();
|
||||
}
|
||||
|
||||
public class DotMatrixMqOutput
|
||||
{
|
||||
public long DotId { get; set; }
|
||||
|
||||
private string _fileAddress;
|
||||
/// <summary>
|
||||
/// 点阵xml地址
|
||||
/// </summary>
|
||||
public string FileAddress
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_fileAddress);
|
||||
set => _fileAddress = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 页
|
||||
/// </summary>
|
||||
public List<DotMatrixPageDto> Pages { get; set; } = new List<DotMatrixPageDto>();
|
||||
}
|
||||
|
||||
public class DotMatrixPageDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 页码
|
||||
/// </summary>
|
||||
public string PageNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 连续数量
|
||||
/// </summary>
|
||||
public int PageNum { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,81 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 绑定期刊输入DTO
|
||||
/// </summary>
|
||||
public class BindJournalInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊模板Id(扫码解析的期刊定义Id)
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实例化期刊Id(扫码解析的具体期刊实例Id,可选)
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read(已读), Favorite(收藏), Subscribe(订阅),默认 Subscribe
|
||||
/// </summary>
|
||||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定期刊输出DTO
|
||||
/// </summary>
|
||||
public class BindJournalOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 绑定记录Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户Id
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 期刊模板Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型
|
||||
/// </summary>
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public string Status { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 绑定时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户期刊关联查询输入DTO
|
||||
/// </summary>
|
||||
public class UserJournalQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊模板Id
|
||||
/// </summary>
|
||||
public long? JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实例化期刊Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read, Favorite, Subscribe
|
||||
/// </summary>
|
||||
public string? Type { get; set; }
|
||||
}
|
||||
@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
|
||||
public class JournalImportDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// pdf地址
|
||||
/// </summary>
|
||||
public string PdfUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 从多少页开始
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
public List<JournalCatalogAddInput> JournalCatalogs { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 目录导入
|
||||
/// </summary>
|
||||
public class JournalCatalogImportDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 一级目录
|
||||
/// </summary>
|
||||
public string ParentName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二级目录
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 页码
|
||||
/// </summary>
|
||||
public int PageNum { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public long PagePageId { get; set; }
|
||||
}
|
||||
|
||||
public class JournalCatalogAddInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 目录名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 级别
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型0-目录 1-页
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// url
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
}
|
||||
|
||||
public class JournalCatalogInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目录名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父Id;无限级别
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 等级
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 指定插入位置的索引(从0开始)不传或传null时默认追加到末尾
|
||||
/// </summary>
|
||||
public int? Position { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型0-目录 1-页
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// url
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
using MiniExcelLibs.Attributes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public partial class JournalCatalogTreeListDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键id
|
||||
/// </summary>
|
||||
[ExcelIgnore]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书id
|
||||
/// </summary>
|
||||
[ExcelIgnore]
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:一级目录名称
|
||||
/// </summary>
|
||||
[DisplayName("目录名称")]
|
||||
[Required]
|
||||
public string? ParentName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:目录名称
|
||||
/// </summary>
|
||||
[DisplayName("二级目录")]
|
||||
[Required]
|
||||
public string Name { get; set; }
|
||||
|
||||
[ExcelIgnore]
|
||||
public long PageId { get; set; }
|
||||
|
||||
[DisplayName("页码")]
|
||||
[Required]
|
||||
public int PageNum { get; set; }
|
||||
|
||||
[ExcelIgnore]
|
||||
public long? ParentId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public partial class IcrJournalCatalogTreeDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级
|
||||
/// </summary>
|
||||
public int Level { get; set; }
|
||||
|
||||
public List<IcrJournalCatalogTreeDto> Child { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalCatalogUpdateInput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目录名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,81 +1,145 @@
|
||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 绑定期刊输入DTO
|
||||
/// </summary>
|
||||
public class BindJournalInput
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊模板Id(扫码解析的期刊定义Id)
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
public class JournalDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实例化期刊Id(扫码解析的具体期刊实例Id,可选)
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:书籍名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read(已读), Favorite(收藏), Subscribe(订阅),默认 Subscribe
|
||||
/// </summary>
|
||||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绑定期刊输出DTO
|
||||
/// </summary>
|
||||
public class BindJournalOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 绑定记录Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户Id
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 期刊模板Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型
|
||||
/// </summary>
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public string Status { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 绑定时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户期刊关联查询输入DTO
|
||||
/// </summary>
|
||||
public class UserJournalQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊模板Id
|
||||
/// </summary>
|
||||
public long? JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实例化期刊Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联类型: Read, Favorite, Subscribe
|
||||
/// </summary>
|
||||
public string? Type { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:总页数
|
||||
/// </summary>
|
||||
public int TotalPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:校验页数
|
||||
/// </summary>
|
||||
public int VerifyPage { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Desc:状态
|
||||
/// </summary>
|
||||
public JournalStatusEnum Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public string ShowStatus => Status.GetDescription();
|
||||
|
||||
private string _pdfUrl;
|
||||
/// <summary>
|
||||
/// pdf预览地址
|
||||
/// </summary>
|
||||
public string PdfUrl
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_pdfUrl);
|
||||
set => _pdfUrl = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:宽度
|
||||
/// </summary>
|
||||
public float Width { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:高度
|
||||
/// </summary>
|
||||
public float Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// </summary>
|
||||
public int Revision { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审查结果(默认0 1通过 -1驳回)
|
||||
/// </summary>
|
||||
public int Result { get; set; }
|
||||
|
||||
private string _cover;
|
||||
/// <summary>
|
||||
/// 封面
|
||||
/// </summary>
|
||||
public string Cover
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_cover);
|
||||
set => _cover = value;
|
||||
}
|
||||
|
||||
private string _backCover;
|
||||
/// <summary>
|
||||
/// 封底
|
||||
/// </summary>
|
||||
public string BackCover
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_backCover);
|
||||
set => _backCover = value;
|
||||
}
|
||||
|
||||
|
||||
private string _pdfPreviewUrl;
|
||||
|
||||
/// <summary>
|
||||
/// pdf预览地址
|
||||
/// </summary>
|
||||
public string PdfPreviewUrl
|
||||
{
|
||||
get => DomainHelper.OssFullUrl(_pdfPreviewUrl);
|
||||
set => _pdfPreviewUrl = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:结论json
|
||||
/// </summary>
|
||||
public object? Conclusion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:思路导读
|
||||
/// </summary>
|
||||
public string? Guide { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:家长指导
|
||||
/// </summary>
|
||||
public string? Tutelage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:所属机构列表
|
||||
/// </summary>
|
||||
public Dictionary<long, string>? Organization { get; set; }
|
||||
|
||||
//public List<Dictionary<long, string>> Organizations => Organization.Select(c => new Dictionary<long, string>() { { c.Key, c.Value } }).ToList();
|
||||
|
||||
/// <summary>
|
||||
/// Desc:副标题
|
||||
/// </summary>
|
||||
public string? Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 年级
|
||||
/// </summary>
|
||||
public int Grade { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:下载书籍页码点阵码PDF文件名称
|
||||
/// </summary>
|
||||
public string? DownloadJournalPagePdfName { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
116
QYZH.InteractiveMagazine.Models/Dto/Journal/JournalEditDto.cs
Normal file
116
QYZH.InteractiveMagazine.Models/Dto/Journal/JournalEditDto.cs
Normal file
@ -0,0 +1,116 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public partial class JournalEditDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:主键id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书籍名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:总页数
|
||||
/// </summary>
|
||||
public int TotalPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:校验页数
|
||||
/// </summary>
|
||||
public int VerifyPage { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Desc:状态
|
||||
/// </summary>
|
||||
public JournalStatusEnum Status { get; set; } = JournalStatusEnum.Created;
|
||||
|
||||
/// <summary>
|
||||
/// Desc:pdf地址
|
||||
/// </summary>
|
||||
public string PdfUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:宽度
|
||||
/// </summary>
|
||||
public float Width { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:高度
|
||||
/// </summary>
|
||||
public float Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public int Revision { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:审查结果(默认0 1通过 -1驳回)
|
||||
/// </summary>
|
||||
public int Result { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:封面
|
||||
/// </summary>
|
||||
public string Cover { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:封底
|
||||
/// </summary>
|
||||
public string BackCover { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:pdf预览地址
|
||||
/// </summary>
|
||||
public string PdfPreviewUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:结论json
|
||||
/// </summary>
|
||||
public object Conclusion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:思路导读
|
||||
/// </summary>
|
||||
public string Guide { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:家长指导
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public string Tutelage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:所属机构
|
||||
/// </summary>
|
||||
public long[] OrganizationIds { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Desc:所属机构
|
||||
///// </summary>
|
||||
//public string OrganizationName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:副标题
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 年级
|
||||
/// </summary>
|
||||
public int Grade { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalAddV2Input
|
||||
{
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书目录id
|
||||
/// </summary>
|
||||
public long JournalCatalogId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 页码
|
||||
/// </summary>
|
||||
public int PageNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 页图片
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalPageTaskAddInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书页id
|
||||
/// </summary>
|
||||
public long JournalPageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学科Id
|
||||
/// </summary>
|
||||
public long SubjectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分数
|
||||
/// </summary>
|
||||
public float Score { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回答时间(秒)
|
||||
/// </summary>
|
||||
public int AnswerTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的知识点ids
|
||||
/// </summary>
|
||||
public string KnowledgePointIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关键解析
|
||||
/// </summary>
|
||||
public string KeywordAnalysis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题内容
|
||||
/// </summary>
|
||||
public string Task { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalPageTaskKeywordAnalysis
|
||||
{
|
||||
/// <summary>
|
||||
/// 问题Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单项解析
|
||||
/// </summary>
|
||||
public string KeywordAnalysis { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,158 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalPageTaskOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书页Id
|
||||
/// </summary>
|
||||
public long JournalPageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学科Id
|
||||
/// </summary>
|
||||
public long SubjectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
public string ShowType => Type.GetDescription();
|
||||
|
||||
private string _task;
|
||||
/// <summary>
|
||||
/// 问题
|
||||
/// </summary>
|
||||
public string Task
|
||||
{
|
||||
get { return _task.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _task = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 选项
|
||||
/// </summary>
|
||||
public string Options { get; set; }
|
||||
|
||||
private string _answer;
|
||||
/// <summary>
|
||||
/// 答案
|
||||
/// </summary>
|
||||
public string Answer
|
||||
{
|
||||
get { return _answer.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _answer = value; }
|
||||
}
|
||||
|
||||
private string _analysis;
|
||||
/// <summary>
|
||||
/// 解析
|
||||
/// </summary>
|
||||
public string Analysis
|
||||
{
|
||||
get { return _analysis.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _analysis = value; }
|
||||
}
|
||||
|
||||
public string AnalysisUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题分数
|
||||
/// </summary>
|
||||
public float TaskScore { get; set; }
|
||||
|
||||
private string _audioUrl;
|
||||
/// <summary>
|
||||
/// 音频地址
|
||||
/// </summary>
|
||||
public string AudioUrl
|
||||
{
|
||||
get { return DomainHelper.OssFullUrl(_audioUrl); }
|
||||
set { _audioUrl = value; }
|
||||
}
|
||||
|
||||
private string _videoUrl;
|
||||
/// <summary>
|
||||
/// 视频地址
|
||||
/// </summary>
|
||||
public string VideoUrl
|
||||
{
|
||||
get { return DomainHelper.OssFullUrl(_videoUrl); }
|
||||
set { _videoUrl = value; }
|
||||
}
|
||||
|
||||
private string _pointsUrl;
|
||||
/// <summary>
|
||||
/// 点位数据地址
|
||||
/// </summary>
|
||||
public string PointsUrl
|
||||
{
|
||||
get { return DomainHelper.OssFullUrl(_pointsUrl); }
|
||||
set { _pointsUrl = value; }
|
||||
}
|
||||
|
||||
private string _imageUrl;
|
||||
/// <summary>
|
||||
/// 图片地址
|
||||
/// </summary>
|
||||
public string ImageUrl
|
||||
{
|
||||
get { return DomainHelper.OssFullUrl(_imageUrl); }
|
||||
set { _imageUrl = value; }
|
||||
}
|
||||
|
||||
public List<string> ImageUrls { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题分数
|
||||
/// </summary>
|
||||
public float Score { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回答时间(秒)
|
||||
/// </summary>
|
||||
public int AnswerTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 音频开始时间
|
||||
/// </summary>
|
||||
public long AudioStartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 音频结束时间
|
||||
/// </summary>
|
||||
public long AudioEndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 知识点
|
||||
/// </summary>
|
||||
public string KnowledgePointIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回答项解析
|
||||
/// </summary>
|
||||
public string KeywordAnalysis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 年级
|
||||
/// </summary>
|
||||
public int Grade { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalPageTaskUpdateInput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 书页id
|
||||
/// </summary>
|
||||
public long JournalPageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题
|
||||
/// </summary>
|
||||
public string Task { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选项
|
||||
/// </summary>
|
||||
public string Options { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答案
|
||||
/// </summary>
|
||||
public string Answer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答案图片
|
||||
/// </summary>
|
||||
public string AnswerUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解析
|
||||
/// </summary>
|
||||
public string Analysis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解析图片地址
|
||||
/// </summary>
|
||||
public string AnalysisUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题分数
|
||||
/// </summary>
|
||||
public float Score { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回答时间秒
|
||||
/// </summary>
|
||||
public int AnswerTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片
|
||||
/// </summary>
|
||||
public string ImageUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 视频
|
||||
/// </summary>
|
||||
public string VideoUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 学科Id
|
||||
/// </summary>
|
||||
public long SubjectId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的知识点ids
|
||||
/// </summary>
|
||||
public string KnowledgepointIds { get; set; }
|
||||
}
|
||||
|
||||
public class JournalPageTaskComplementInput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务id
|
||||
/// </summary>
|
||||
public long AssignTaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 音频地址
|
||||
/// </summary>
|
||||
public string AudioUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 音频开始时间
|
||||
/// </summary>
|
||||
public long AudioStartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 音频结束时间
|
||||
/// </summary>
|
||||
public long AudioEndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 点位数据地址
|
||||
/// </summary>
|
||||
public string PointsUrl { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,100 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalPageV2Output
|
||||
{
|
||||
|
||||
|
||||
public long JournalId { get; set; }
|
||||
|
||||
public long JournalCatalogId { get; set; }
|
||||
|
||||
public long JournalPageId { get; set; }
|
||||
|
||||
public string Layout { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 页码
|
||||
/// </summary>
|
||||
public int PageNum { get; set; }
|
||||
|
||||
private string _url;
|
||||
/// <summary>
|
||||
/// 图片
|
||||
/// </summary>
|
||||
public string Url
|
||||
{
|
||||
get { return DomainHelper.OssFullUrl(_url); }
|
||||
set { _url = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 问题
|
||||
/// </summary>
|
||||
public List<JournalPageTaskV2Output>? Tasks { get; set; }
|
||||
|
||||
public List<JournalPageOtherOutput>? Areas { get; set; }
|
||||
}
|
||||
|
||||
public class JournalPageTaskV2Output
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long GroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
|
||||
//public long test => long.Parse(No.Replace("-", string.Empty));
|
||||
|
||||
/// <summary>
|
||||
/// 题型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
public string ShowType => Type.GetDescription();
|
||||
|
||||
/// <summary>
|
||||
/// 选项
|
||||
/// </summary>
|
||||
public string Options { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答案
|
||||
/// </summary>
|
||||
public string Answers { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解析
|
||||
/// </summary>
|
||||
public string Analysis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否分配
|
||||
/// </summary>
|
||||
public bool Assign { get; set; }
|
||||
}
|
||||
|
||||
public class JournalPageOtherOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题号
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 题型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
public string ShowType => Type.GetDescription();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalQueryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 书籍名称
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public JournalStatusEnum? Status { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalTaskOutput
|
||||
{
|
||||
public long TaskId { get; set; }
|
||||
public string TaskNo { get; set; }
|
||||
|
||||
public TaskTypeEnum TaskType
|
||||
{
|
||||
get
|
||||
{
|
||||
var type = new TaskBankType();
|
||||
if (type.ObjectiveTypes.Contains(TaskSubType))
|
||||
return TaskTypeEnum.Objective;
|
||||
else if (type.SubjectiveTypes.Contains(TaskSubType))
|
||||
return TaskTypeEnum.Subjective;
|
||||
else
|
||||
throw new InvalidOperationException($"Unknown task sub type: {TaskSubType}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 详细类型
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum TaskSubType { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class PageLayoutInput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
public string Layout { get; set; }
|
||||
|
||||
public List<TasksImages> TasksImages { get; set; }
|
||||
|
||||
}
|
||||
public class TasksImages
|
||||
{
|
||||
public long TaskId { get; set; }
|
||||
|
||||
public string Url { get; set; }
|
||||
}
|
||||
}
|
||||
29
QYZH.InteractiveMagazine.Models/Dto/MoveInput.cs
Normal file
29
QYZH.InteractiveMagazine.Models/Dto/MoveInput.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Base
|
||||
{
|
||||
public class MoveInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 要移动节点ID (必须)
|
||||
/// </summary>
|
||||
[Required]
|
||||
public long SourceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标父节点ID (0表示移动到根节点)
|
||||
/// </summary>
|
||||
public long TargetParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 在目标父节点下的插入位置 (可选,从0开始,null表示追加到末尾)
|
||||
/// </summary>
|
||||
[Range(0, int.MaxValue)]
|
||||
public int? Position { get; set; }
|
||||
}
|
||||
}
|
||||
@ -14,73 +14,107 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Desc:期刊号
|
||||
/// Desc:书籍名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:总页数
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int IssueNumber {get;set;}
|
||||
public int TotalPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:期刊标题
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Title {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:校验页数
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int VerifyPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:封面图地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string CoverImageUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:摘要
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Summary {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:pdf地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string PdfUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:发布时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? PublishDate {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:宽度
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Width { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否启用
|
||||
/// Default:b'1'
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public bool IsActive {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:高度
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:排序权重
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int SortOrder {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Revision { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:编者寄语
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string EditorNote {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:审查结果(默认0 1通过 -1驳回)
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Result { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:主题色
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string ThemeColor {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:封面
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Cover { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:封底
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string BackCover { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:pdf预览地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string PdfPreviewUrl { get; set; }
|
||||
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:下载书籍页码点阵码PDF文件名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string DownloadJournalPagePdfName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书籍描述/简介
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:期刊类型: Normal, Special
|
||||
/// Default:Normal
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public JournalTypeEnum Type {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:期刊类型: Normal, Special
|
||||
/// Default:Normal
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public JournalTypeEnum Type {get;set;}
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public JournalPageTaskTypeEnum Type {get;set;}
|
||||
public TaskBankTypeEnum Type {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务
|
||||
|
||||
@ -26,5 +26,5 @@ public enum JournalPageTaskTypeEnum
|
||||
/// 问答题
|
||||
/// </summary>
|
||||
[Description("问答题")]
|
||||
QuestionAnswer = 4
|
||||
TaskAnswer = 4
|
||||
}
|
||||
|
||||
@ -8,20 +8,58 @@ namespace QYZH.InteractiveMagazine.Models.Enum;
|
||||
public enum JournalStatusEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 草稿
|
||||
/// 缺失目录
|
||||
/// </summary>
|
||||
[Description("草稿")]
|
||||
Draft = 0,
|
||||
[Description("缺失目录")]
|
||||
MissCatalog = -1,
|
||||
/// <summary>
|
||||
/// 已创建
|
||||
/// </summary>
|
||||
[Description("已创建")]
|
||||
Created = 0,
|
||||
|
||||
[Description("编辑")]
|
||||
Editor = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已发布
|
||||
/// 已校验
|
||||
/// </summary>
|
||||
[Description("已发布")]
|
||||
Published = 1,
|
||||
[Description("已校验")]
|
||||
Verify = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 铺码中
|
||||
/// </summary>
|
||||
[Description("铺码中")]
|
||||
Codeing = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 铺码成功
|
||||
/// </summary>
|
||||
[Description("铺码成功")]
|
||||
CodeSuccess = 5,
|
||||
|
||||
/// <summary>
|
||||
/// 铺码失败
|
||||
/// </summary>
|
||||
[Description("铺码失败")]
|
||||
CodeFail = -5,
|
||||
|
||||
/// <summary>
|
||||
/// 已归档
|
||||
/// </summary>
|
||||
[Description("已归档")]
|
||||
Archived = 2
|
||||
Archive = 9,
|
||||
|
||||
/// <summary>
|
||||
/// 已废弃
|
||||
/// </summary>
|
||||
[Description("已废弃")]
|
||||
Abandoned = -9,
|
||||
|
||||
/// <summary>
|
||||
/// 已发布
|
||||
/// </summary>
|
||||
[Description("已发布")]
|
||||
Published = 999
|
||||
}
|
||||
|
||||
77
QYZH.InteractiveMagazine.Models/Enum/TaskBankTypeEnum.cs
Normal file
77
QYZH.InteractiveMagazine.Models/Enum/TaskBankTypeEnum.cs
Normal file
@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Enum
|
||||
{
|
||||
public enum TaskBankTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 无效题目
|
||||
/// </summary>
|
||||
[Description("无效")]
|
||||
Default = 0,
|
||||
/// <summary>
|
||||
/// 单选题
|
||||
/// </summary>
|
||||
[Description("单选题")]
|
||||
Single = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 多选题
|
||||
/// </summary>
|
||||
[Description("多选题")]
|
||||
Multiple = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 判断题
|
||||
/// </summary>
|
||||
[Description("判断题")]
|
||||
Whether = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 填空题
|
||||
/// </summary>
|
||||
[Description("填空题")]
|
||||
FillIn = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 应用题
|
||||
/// </summary>
|
||||
[Description("应用题")]
|
||||
Problem = 5,
|
||||
|
||||
/// <summary>
|
||||
/// 简答题
|
||||
/// </summary>
|
||||
[Description("简答题")]
|
||||
ShortAnswer = 6,
|
||||
|
||||
}
|
||||
|
||||
public class TaskBankType
|
||||
{
|
||||
/// <summary>
|
||||
/// 客观题
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum[] ObjectiveTypes => new[] { TaskBankTypeEnum.Single, TaskBankTypeEnum.Multiple, TaskBankTypeEnum.Whether };
|
||||
|
||||
/// <summary>
|
||||
/// 获取客观题类型的整数值
|
||||
/// </summary>
|
||||
public List<int> ObjectiveTypeValues => ObjectiveTypes.Select(t => (int)t).ToList();
|
||||
|
||||
/// <summary>
|
||||
/// 主观题
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum[] SubjectiveTypes => new[] { TaskBankTypeEnum.FillIn, TaskBankTypeEnum.Problem, TaskBankTypeEnum.ShortAnswer };
|
||||
|
||||
/// <summary>
|
||||
/// 获取主观题类型的整数值
|
||||
/// </summary>
|
||||
public List<int> SubjectiveTypeValues => SubjectiveTypes.Select(t => (int)t).ToList();
|
||||
}
|
||||
}
|
||||
24
QYZH.InteractiveMagazine.Models/Enum/TaskTypeEnum.cs
Normal file
24
QYZH.InteractiveMagazine.Models/Enum/TaskTypeEnum.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Enum
|
||||
{
|
||||
public enum TaskTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 客观题
|
||||
/// </summary>
|
||||
[Description("客观题")]
|
||||
Objective = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 主观题
|
||||
/// </summary>
|
||||
[Description("主观题")]
|
||||
Subjective = 2
|
||||
}
|
||||
}
|
||||
@ -9,9 +9,14 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Mapster" Version="7.4.0" />
|
||||
<PackageReference Include="MiniExcel" Version="1.41.4" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.166" />
|
||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\QYZH.InteractiveMagazine.Common\QYZH.InteractiveMagazine.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user