负责的功能
课程模块
主要包括老师的课程和学生的课程管理,因为数据库有老师和学生的数据
老师需要安排学生上课
所以会有一个课程表,可能会问到数据库表是怎么设计的,简单列一下主要的字段
课程表(从开发的角度来看,课程表不应该跟老师、班级、学生绑定,仅仅属于一个单独的表,不受老师、班级、学生的改变而改变),
老师表(一般不会问到,就是一些老师的基本信息)
学生表(一般不会问到学生的基本信息)
班级表(一般不会问到)
课程表:
课程id 课程名称 课程的价格 录入的时间 修改的时间 课程的状态(是否下架)
老师教学表
主键id 课程id 班级id 教学时间
学生课程表
老师id 班级id 学生id 课程id
学生购买课程表
主键id 课程id 渠道: (可以分为 现金、微信、支付宝、网上购买、或者优惠购买等)可以作为工厂+策略模式 使用的点 金额: 购买课程所需金额 课程使用时间: 用于后面rocketMQ进行消息提醒给老师
主要工作:业务
老师教学课程安排的增删改查:
主要是创建老师课程,创建班级,录入学生课程表信息,然后通过多表关联
可以查询出老师自己个人所关联的班级,以及教学的课程
老师点击某个班,通过多表联查可以查询自己班内的学生人数,学生的到课状态,学生课程到期时间等等
技术描述:
一、使用多线程,为什么要用到多线程?
因为需要统计的报表数据量大,导出的数据报表的sheet表有多张,而每张sheet都是不同的数据,查询不同的mysql表,如果一个线程去处理,会出现耗时很久的情况,所以使用多线程,每个线程负责处理一个sheet表包含的mysql数据的查询,最后在主线程中将多个sheet导出到excel中
二、为什么要用策略模式
因为不同的学生购买课程的渠道不同,有些渠道会有价格上的出入,而导出报表的时候需要对不同的渠道的学生进行汇总统计,所以对于这个场景,使用了策略模式,以后,就算再增加一个渠道,我也只是再增加一个策略类来处理,而不会动到业务的主逻辑,大概就是什么对修改关闭对扩展开放之类的,吹一下就行
三、因为学生购买的课程是有限时间限制的,对于学生即将到期的课程,老师可以设置一天或者前几天即将到期的学生,通过消息提醒自己,,使用定时任务查询每个即将到期的学生,通过RocketMQ的延时功能提醒老师
标签:班级,管理,老师,学生,课程表,课程,后台,id From: https://www.cnblogs.com/anothercfx/p/17414859.html