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 文件上传接口,很简单看代码就行了