refactor(journal task): 重构期刊任务模块,优化答案数据结构与流程
1. 移除废弃的KeywordAnalysis相关接口与代码 2. 重构任务答案存储逻辑,改用一对多关联存储多组答案 3. 调整实体与DTO字段,统一评分、时长等任务配置字段位置 4. 优化任务查询与返回结构,使用列表统一管理答案数据 5. 修复微信授权控制器默认返回逻辑
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||
using QYZH.InteractiveMagazine.Common.Helpers;
|
||||
using QYZH.InteractiveMagazine.Models.Enum;
|
||||
@ -47,36 +47,56 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 选项
|
||||
/// 答案列表
|
||||
/// </summary>
|
||||
public string Options { get; set; }
|
||||
public List<JournalTaskAnswerOutput> Answers { get; set; }
|
||||
|
||||
private string _answer;
|
||||
private string _imageUrl;
|
||||
/// <summary>
|
||||
/// 答案
|
||||
/// 图片地址
|
||||
/// </summary>
|
||||
public string Answer
|
||||
public string ImageUrl
|
||||
{
|
||||
get { return _answer.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _answer = value; }
|
||||
get { return DomainHelper.OssFullUrl(_imageUrl); }
|
||||
set { _imageUrl = value; }
|
||||
}
|
||||
|
||||
private string _analysis;
|
||||
/// <summary>
|
||||
/// 解析
|
||||
/// </summary>
|
||||
public string Analysis
|
||||
{
|
||||
get { return _analysis.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _analysis = value; }
|
||||
}
|
||||
|
||||
public string AnalysisUrl { get; set; }
|
||||
public List<string> ImageUrls { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题分数
|
||||
/// 积分
|
||||
/// </summary>
|
||||
public float TaskScore { get; set; }
|
||||
public float Points { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成长值
|
||||
/// </summary>
|
||||
public float GrowthPoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 理解力评分
|
||||
/// </summary>
|
||||
public float Comprehension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 判断力评分
|
||||
/// </summary>
|
||||
public float Judgment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表达力评分
|
||||
/// </summary>
|
||||
public float Expression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 说服力评分
|
||||
/// </summary>
|
||||
public float Persuasiveness { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 作答参考时间(秒)
|
||||
/// </summary>
|
||||
public int AnswerTime { get; set; }
|
||||
|
||||
private string _audioUrl;
|
||||
/// <summary>
|
||||
@ -108,28 +128,6 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
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>
|
||||
@ -145,14 +143,37 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
/// </summary>
|
||||
public string KnowledgePointIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回答项解析
|
||||
/// </summary>
|
||||
public string KeywordAnalysis { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 年级
|
||||
/// </summary>
|
||||
public int Grade { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 答案输出
|
||||
/// </summary>
|
||||
public class JournalTaskAnswerOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
private string _answer;
|
||||
/// <summary>
|
||||
/// 参考答案
|
||||
/// </summary>
|
||||
public string Answer
|
||||
{
|
||||
get { return _answer.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _answer = value; }
|
||||
}
|
||||
|
||||
private string _answerUrl;
|
||||
/// <summary>
|
||||
/// 参考答案图片
|
||||
/// </summary>
|
||||
public string AnswerUrl
|
||||
{
|
||||
get { return _answerUrl.AddDomain(DomainHelper.OssDomain); }
|
||||
set { _answerUrl = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,11 +13,10 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 书Id
|
||||
/// 杂志Id
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 书页id
|
||||
/// </summary>
|
||||
@ -38,60 +37,41 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
/// </summary>
|
||||
public string Task { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选项
|
||||
/// </summary>
|
||||
public string Options { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答案
|
||||
/// </summary>
|
||||
public string Answer { get; set; }
|
||||
public List<JournalTaskAnswerInput> TaskAnswer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答案图片
|
||||
/// 积分
|
||||
/// </summary>
|
||||
public string AnswerUrl { get; set; }
|
||||
|
||||
public int Points { get; set; }
|
||||
/// <summary>
|
||||
/// 解析
|
||||
/// 成长值
|
||||
/// </summary>
|
||||
public string Analysis { get; set; }
|
||||
|
||||
public float GrowthPoint { get; set; }
|
||||
/// <summary>
|
||||
/// 解析图片地址
|
||||
/// 理解力评分
|
||||
/// </summary>
|
||||
public string AnalysisUrl { get; set; }
|
||||
|
||||
public float Comprehension { get; set; }
|
||||
/// <summary>
|
||||
/// 问题分数
|
||||
/// 判断力评分
|
||||
/// </summary>
|
||||
public float Score { get; set; }
|
||||
public float Judgment { get; set; }
|
||||
/// <summary>
|
||||
/// 表达力评分
|
||||
/// </summary>
|
||||
public float Expression { get; set; }
|
||||
/// <summary>
|
||||
/// 说服力评分
|
||||
/// </summary>
|
||||
public float Persuasiveness { 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
|
||||
|
||||
@ -61,19 +61,9 @@ namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
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; }
|
||||
public List<JournalTaskAnswerOutput> Answers { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否分配
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Journal
|
||||
{
|
||||
public class JournalTaskAnswerInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 参考答案
|
||||
/// </summary>
|
||||
public string Answer { get; set; }
|
||||
/// <summary>
|
||||
/// 参考答案图片
|
||||
/// </summary>
|
||||
public string AnswerUrl { get; set; }
|
||||
}
|
||||
}
|
||||
@ -12,94 +12,135 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
[SugarTable("JournalPageTask")]
|
||||
public partial class JournalPageTask : SqlSugarBaseEntity
|
||||
{
|
||||
public JournalPageTask(){
|
||||
public JournalPageTask()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:书id
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long JournalId {get;set;}
|
||||
/// <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 JournalPageId { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:分组
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long GroupId { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:题号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string No { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:题号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string No {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:题型
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:题型
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public TaskBankTypeEnum Type {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:任务
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Task { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Task {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:分组
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public long GroupId {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:成长值设置
|
||||
/// Default:0
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? GrowthPoint { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Revision {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:积分设置
|
||||
/// Default:0
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int Points { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:理解力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Comprehension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string TaskUrl {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:判断力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Judgment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:选项
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Options {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:表达力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Expression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否需要AI处理
|
||||
/// Default:true
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public bool NeedAiProcess {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:说服力评分
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Persuasiveness { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:乐观锁
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int Revision { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:基础Prompt配置ID(为空则使用IsDefault=1的模板)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public long? BasePromptId {get;set;}
|
||||
/// <summary>
|
||||
/// Desc:任务图片地址
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string TaskUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:个性化Prompt(追加到基础Prompt后面,可为空)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string CustomPrompt {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:是否需要AI处理
|
||||
/// Default:true
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public bool NeedAiProcess { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:基础Prompt配置ID(为空则使用IsDefault=1的模板)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public long? BasePromptId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:个性化Prompt(追加到基础Prompt后面,可为空)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string CustomPrompt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:作答参考时间
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int AnswerTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,70 +35,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string Analysis {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:回答时间(秒)
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public int AnswerTime {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:任务分数
|
||||
/// Default:0
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public float Score {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:关键解析json
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string KeywordAnalysis {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:成长值设置
|
||||
/// Default:0
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? GrowthPoint {get;set;}
|
||||
|
||||
/// <summary>
|
||||
/// Desc:积分设置
|
||||
/// Default:0
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public int? Points {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;}
|
||||
public string AnswerUrL { get;set;}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user