abp文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese
Hangfire文档:https://docs.hangfire.io/en/latest/
abp框架版本5.13
-------------------------------------------------
YGNT.Exam.Web.Host web宿主项目
主要关注:
->SwaggerSetup.cs Swagger配置设置
->Startup.cs web的启动设置
-----------------------
YGNT.Exam.Web.Core web基础核心
->ExamWebCoreModule.cs 模块配置,这里是对abp web核心模块的各种配置,初始化
->TokenAuthController.cs 和登录相关接口
-------------------------
YGNT.Exam.Application abp的基础应用层,包含框架自带的用户管理
->AccountAppService.cs 租户验证,用户注册
->IUserMessageAppService.cs  用户消息
->ITenantAppService.cs 租户管理
->IRoleAppService.cs 角色管理
->IUserAppService.cs,IUserManagerAppService.cs 用户管理
--------------------------
YGNT.Exam.Core 框架生成的用户管理等领域层
Messages->用户信息
->Event下有TaskHandler.cs 用于发送试题解析,试卷生成任务信息
---------------------
YGNT.Exam.EntityFrameworkCore 框架生成的数据层
注意Seed文件夹下的内容为数据初始化,
HostRoleAndUserCreator.cs->CreateRole()-> PermissionFinder.GetAllPermissions()这个方法将获取系统设置的权限,如果有修改或者添加新的权限提供商(AuthorizationProvider)要记得在这个修改

--------------------------------------------------------------------
YGNT.QuestionLibrary 题库模块

YGNT.QuestionLibrary.Application 题库模块应用层,webapi接口
->IQuestionBaseDataAppService.cs 基础数据管理
->IChapterAppService.cs 章节管理
->ICognitiveAbilityAppService.cs 认知能力
->IDisciplineAppService.cs 学科管理
->IEducationCategoryAppService.cs 教育类别管理
->IEnumDocAppService.cs 枚举文档,一些动态的数据格式在对应的接口可能无法生成文档,放在这里单独展示
->IKnowledgePointAppService.cs 知识点
->IPaperAppService.cs 试卷管理
->IPaperQuestionAppService.cs 试卷试题管理
->IPaperSettingAppService.cs 试卷设置
->IQuestionAppService.cs 试题管理
->IDisciplineQuestionTypeAppService.cs 学科细分题型
->IQuestionTypeAppService.cs 系统试题类型管理
->IPaperProduceTaskAppService.cs 试卷生成任务
->IQuestionResolveTaskAppService.cs 试题解析任务管理
->ITextbookAppService.cs 教材管理
------------------------------
YGNT.QuestionLibrary.Core 题库模块领域层 大部分的业务流程是放在这里面的
BaseData 基础数据
PaperStructureSetting.cs->试卷结构设置 
->Param 是用的PaperStructureSettingParam下的结构序列化为json
IQuestionTypeManager.cs->题型(大)管理

Chapters,KnowledgePoints为树结构 两者都有一张闭包表用于记录节点数据
在Event中有ChapterAutoTreePathFill.cs,KnowledgePointAutoTreePathFill.cs 用于自动创建,删除闭包路径,使用的abp 领域事件,关于领域事件具体查看abp文档

Papers 试卷管理
Event中有PaperDisciplineQtSortSettingHandler.cs 用于修改排序设置后更新试题排序

Permissions 题库模块权限
在QuestionLibraryAuthorizationProvider中设置权限内容.
displayName 接受的是一个本地化的字符串,本地化字符串需要在Localization->SourceFiles->QuestionLibrary-zh-Hans.json 中配置

Tasks 任务
Domain->Jobs 中为定义的各种后台任务
ITaskManager.cs->任务管理(执行,进入任务队列)

IRepositories 定义的包含数据过滤的仓储接口,在YGNT.QuestionLibrary.EntityFrameworkCore->EntityFrameworkCore->Repositories 进行实现
使用本文件夹下的接口代表使用数据过滤
------------------------------
YGNT.QuestionLibrary.EntityFrameworkCore 题库模块数据层
Repositories->对数据过滤的仓储接口的实现
Seed->数据初始化 

------------------------------
YGNT.File 文件上传接口,很简单看代码就行了









