文章目录
-
- 概要
- 整体架构流程
- 技术细节
- 小结
概要
业务分析
删除课表中的课程有两种场景:
-
用户直接删除已失效的课程
-
用户退款后触发课表自动删除
技术细节
退款通知
其中用户退款与用户报名课程类似,都是基于MQ通知的方式。具体代码是在tj-trade
模块的RefundApplySerivceImpl
类的handleRefundResult
方法中:
与报名成功的通知类似,一样是OrderBasicDTO,参数信息包含三个:
-
orderId:退款的订单id
-
userId:用户id
-
courseIds:退款的课程id
1.Controller层:
2.Service层:
/**
* 删除课程
* @param courseIds
*/
public void deleteByCourseIds(List<Long> courseIds) {
if (courseIds != null){
//根据课程id批量删除课表
LambdaQueryWrapper<LearningLesson> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LearningLesson::getCourseId,courseIds);
this.remove(wrapper);
}
}
3.Mapper层