业务和功能介绍(可直接粘贴,约 360 字):
立项背景是足球培训机构招生、排课、点名扣课、续费分散在表格和人工统计,课时余量和课包状态难对齐。目标是做成统一教务后台,把学员从线索到在读、上课消耗、订单续费串成闭环,减少漏点名和错扣课。
核心模块包括:学员与线索跟进、课程班级与排课、报名订单与课包(按次/按天)、点名扣课与超上处理、剩余天数/课时调整、办结归档、续费预警与家校通知。机构端管日常教务,校区端看本校数据,家长端查课表与作业。
主流程为:招生建档 → 报名生成课包 → 分班排课 → 上课点名按扣课顺序消耗课包 → 课时不足续费或加天 → 课包用尽办结。批量加天按学员取最高优先级可用课包写入,失败学员单独回传,保证部分成功可落地。
本项目为足球培训教务后端,采用 ThinkPHP6 多应用架构,按 admin/school/platform/apps 拆分机构端、校区端、平台端与家长端。数据层用 ThinkORM + MySQL,校区隔离走 scope 查询;会话与防重复点名用 Redis;支付/消息对接微信,文件走阿里云 OSS。
我主要负责学员课包与点名扣课链路:完成报读课程办结,readCourses 过滤已办结数据;补齐点名授课课点校验(大于等于 0 的整数);在单订单加剩余天数基础上做批量加天,按学员取 sort 最高且可用(未结束、未办结、订单已支付)的课包写入,成功/失败分别汇总返回。相关接口约 3 个,批量失败可逐人定位原因。
难点一是课包状态口径不统一,sort 最高不一定可用,最终与扣课顺序对齐并校验 is_end/is_complete/订单状态。二是批量不能因一人失败全回滚,改为单人事务、失败入 fail_list,保证部分成功可落地。
我负责学员课包与点名相关接口:报读课程办结及列表过滤已办结数据;点名授课课点校验(大于等于 0 的整数);在单订单加天基础上做批量加剩余天数,按学员取 sort 最高且可用的课包写入,失败学员汇总返回前端。
技术栈为 ThinkPHP6 多应用 + ThinkORM/MySQL,校区隔离用 scope,防重复点名用 Redis。亮点是批量加天单人事务、成功失败分列,不完全回滚。难点是课包可用口径要与扣课顺序一致,需同时判断未结束、未办结、订单已支付,避免加到无效课
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论