做一个实战业务培训模块：

请参考数实战业务培训.png

1. 新增实战培训：培训主题：限制20字,必填；培训时间：默认今天 YYYY-MM-DD HH:mm:ss 必填；培训简介：必填；计划人数：(人)，正整数，必填；培训地点：必填；预期成果：可填；报名开始时间： YYYY-MM-DD HH:mm:ss 必填，< 培训时间；报名结束时间：YYYY-MM-DD HH:mm:ss 必填 > 报名开始时间 && < 培训时间 ; 封面：支持后缀名为jpg、jpeg、png等图片单选上传，文件大小10M以内。
2. 查询实战培训：培训主题精确匹配，培训日期(el-date-picker type="daterange")范围匹配，分页列实战培训列表。
3. 修改实战培训：所有均可修改。
4. 删除实战培训：删除数据。
5. 查看实战培训：均可查看。
6. 发布实战培训
7. 下架实战培训
8. 发布前： 查看 发布 编辑 删除，发布后： 查看 下架；开始报名后 不允许下架
9  报名状态：
 9.1 未发布/今时＜报名开始时间：未开始
 9.2 实际报名人数＜计划人数&今时≤报名截止时间：报名中
 9.3 实际报名人数≥计划人数&今时≤报名截止时间：已报满
 9.4 今时＞报名截止时间：已截止
10. 异常返回：统一格式 code、msg、data。
11. 技术栈：RuoYi v3.9.2-springboot2 分支 + MySQL-5.7.39。