2019-12-08

tutor-student-task模块

数据库设计

1.student_task 学习任务表

CREATE TABLE `student_task` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增 id',
  `studentId` INT(11) UNSIGNED NOT NULL COMMENT '学生 id',
  `episodeId` INT(11) UNSIGNED NOT NULL COMMENT '课程 id',
  `lessonId`  INT(11) UNSIGNED NOT NULL COMMENT '班课 id',
  `prestudyTaskStatus` int(11) UNSIGNED NOT NULL COMMENT '预习任务状态',
  `prestudyTaskNum` int(11) UNSIGNED NOT NULL COMMENT '预习任务数量',
  `rolePlayTaskStatus` int(11) UNSIGNED NOT NULL COMMENT '角色扮演任务状态',
  `rolePlayTaskNum` int(11) UNSIGNED NOT NULL COMMENT '角色扮演任务数量',
  `homeworkTaskStatus` int(11) UNSIGNED NOT NULL COMMENT '作业任务状态',
  `homeworkTaskNum` int(11) UNSIGNED NOT NULL COMMENT '作业任务数量',
  `animationTaskStatus` int(11) UNSIGNED NOT NULL COMMENT '动画任务状态',
  `animationTaskNum` int(11) UNSIGNED NOT NULL COMMENT '动画任务数量',
  `replayTaskStatus` int(11) UNSIGNED NOT NULL COMMENT '回放任务状态',
  `replayTaskdNum` int(11) UNSIGNED NOT NULL COMMENT '回放任务数量',
  `createdTime` bigint(20) NOT NULL COMMENT '创建时间',
  `updatedTime` bigint(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `studentId_episodeId` (`studentId`,`episodeId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

UML

依赖服务

依赖下游服务

监听的事件

  • homework开放
  • homework过期
  • homework提交
  • replay开放
  • replay提交
  • animation开放
  • animation过期
  • animation提交
  • roleplay开放
  • roleplay过期
  • roleplay提交
  • prestudy开放
  • prestudy过期
  • prestudy提交
  • ticket创建
  • ticket取消

事件处理设计

事件处理框架图

studentTaskService事件处理流介绍

  • 上层逻辑职责是处理各类型任务到达时的原数据,对原数据加工,负责转换成taskService接受的数据格式
  • taskService来完成对数据的存储,根据任务状态机负责将数据安全写入到db,保证数据的最终一致

任务开放时处理流程图

开放任务处理逻辑

任务过期时处理流程图

过期任务处理逻辑

任务提交时处理流程图

提交任务处理逻辑

ticket创建时处理流程图

ticket创建处理逻辑

ticket取消时处理流程图

ticket取消处理逻辑

你可能感兴趣的:(2019-12-08)