refactor: 调整期刊实体字段与用户期刊输出映射
1. 移除Journal实体冗余的Title字段,统一使用Name字段 2. 更新UserDto和UsersService中的期刊标题映射逻辑 3. 新增JournalPageTask的四项能力评分字段 4. 新增AI提示词管理的完整服务、控制器与相关DTO 5. 新增用户作答记录实体JournalPageTaskUserAnswer
This commit is contained in:
116
QYZH.InteractiveMagazine.Models/Dto/Ai/AiBasePromptDto.cs
Normal file
116
QYZH.InteractiveMagazine.Models/Dto/Ai/AiBasePromptDto.cs
Normal file
@ -0,0 +1,116 @@
|
||||
using QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// AIPrompt配置创建/更新输入
|
||||
/// </summary>
|
||||
public class AiBasePromptInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置标识(如:DEFAULT, READING, COMPREHENSION)
|
||||
/// </summary>
|
||||
public string PromptKey { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 配置名称(如:默认Prompt、阅读理解专用)
|
||||
/// </summary>
|
||||
public string PromptName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Prompt模板内容
|
||||
/// </summary>
|
||||
public string PromptTemplate { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 配置说明
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 优先级(数值越小优先级越高)
|
||||
/// </summary>
|
||||
public int Priority { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为默认模板
|
||||
/// </summary>
|
||||
public bool IsDefault { get; set; } = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AIPrompt配置输出
|
||||
/// </summary>
|
||||
public class AiBasePromptOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键ID
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 配置标识
|
||||
/// </summary>
|
||||
public string PromptKey { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 配置名称
|
||||
/// </summary>
|
||||
public string PromptName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Prompt模板内容
|
||||
/// </summary>
|
||||
public string PromptTemplate { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 配置说明
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 优先级
|
||||
/// </summary>
|
||||
public int Priority { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为默认模板
|
||||
/// </summary>
|
||||
public bool IsDefault { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
public string? CreatedBy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人
|
||||
/// </summary>
|
||||
public string? UpdatedBy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AIPrompt配置分页查询输入
|
||||
/// </summary>
|
||||
public class AiBasePromptQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置标识(精确匹配)
|
||||
/// </summary>
|
||||
public string? PromptKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 配置名称(模糊查询)
|
||||
/// </summary>
|
||||
public string? PromptName { get; set; }
|
||||
}
|
||||
@ -86,7 +86,7 @@ public class UserJournalItemOutput
|
||||
/// <summary>
|
||||
/// 期刊标题
|
||||
/// </summary>
|
||||
public string JournalTitle { get; set; } = string.Empty;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 期刊封面
|
||||
|
||||
@ -92,8 +92,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
public string PdfPreviewUrl { get; set; }
|
||||
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:下载书籍页码点阵码PDF文件名称
|
||||
/// Default:
|
||||
|
||||
@ -152,5 +152,33 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
/// </summary>
|
||||
public string CustomPrompt {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:理解力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Comprehension {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:判断力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Judgment {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:表达力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Expression {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:说服力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Persuasiveness {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,216 @@
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
{
|
||||
///<summary>
|
||||
///杂志任务用户作答记录;
|
||||
///</summary>
|
||||
[SugarTable("JournalPageTaskUserAnswer")]
|
||||
public partial class JournalPageTaskUserAnswer : SqlSugarBaseEntity
|
||||
{
|
||||
public JournalPageTaskUserAnswer(){
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long JournalId {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书页id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long JournalPageId {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long JournalPageTaskId {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务分组id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long JournalPageTaskGroupId {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:用户id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long UserId {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答结果
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Result {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:积分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Points {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:成长值
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float GrowthPoints {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:题目作答图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string QuestionAnswerUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:答案图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string AnswerUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:页面作答图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string PageAnswerUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Revision {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答状态
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int AnswerStatus {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答开始时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime AnswerStartTime {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答结束时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime AnswerEndTime {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答耗时(秒)
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int AnswerSeconds {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:图像识别结果
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int ImageRecognition {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书页序号
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int JournalPageNum {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:修改次数
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Modify {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:最后标签id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long LastTag {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:点读书页序号
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int DotPageNum {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:页面结果图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string PageResultUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:题型
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Type {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:点读书页编号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string DotPageNo {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:页面作答点读图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string PageAnswerDotUrl {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:中断次数
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int BreakCount {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:中断时间记录
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string BreakTimes {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作业状态
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string AssignmentStatus {get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user