团队项目冲刺--Day5
团队项目冲刺--Day5
一、今日站立式会议照片

二、昨日已完成的工作
| 成员 | 完成内容 | Work Item |
|---|---|---|
| 宋可月 | 完成预约创建 API 与冲突检测 | T-10 |
| 齐畅 | 预约页面 UI 已可输入并提交 | T-13 |
| 颜宏宇 | 预约列表查询 API 初版完成 | T-14 |
| 戴清 | 数据库时间索引验证成功 | T-9 |
| 缪子睿 | 冲突检测测试用例已通过 | T-20 |
| 曹伟斌 | 邮件发送模块原型已可发送 | T-19 |
| 赖彦彤 | 预约页面 UI 联调进行中 | T-13 |
三、今日计划工作
| 成员 | 今日任务 | Work Item |
|---|---|---|
| 宋可月 | 将预约成功逻辑与邮件通知挂钩 | T-10, T-19 |
| 齐畅 | UI 接收邮件发送成功 / 失败提示 | T-13 |
| 颜宏宇 | 优化预约查询、加入场馆名字段 | T-14 |
| 戴清 | 设计邮件内容所需字段结构 | T-9 |
| 缪子睿 | 邮件发送 + 预约流程测试用例 | T-20 |
| 曹伟斌 | 编写正式邮件模板(HTML) | T-19 |
| 赖彦彤 | 完善预约成功界面 UI | T-13 |
四、今日遇到的困难
1️⃣ 邮件模块中文出现乱码(曹伟斌)
必须明确设置 UTF-8
部分邮件客户端(Windows 邮件)不兼容 HTML → 需多格式 MIME
✔ 已解决:HTML + plain text 版本同时发送
2️⃣ 邮件发送属于耗时任务,会阻塞 API(宋可月)
用户点击预约后,如果等待邮件发送 → 页面卡顿
解决方案(Alpha 阶段):
✔ 暂时同步发送,但设置超时
Beta 阶段:
✔ 使用 Celery / Redis 异步队列
3️⃣ 邮件模板需要包含更多详细信息(团队讨论)
包括:
场馆名称
日期
时间段
费用
取消说明
链接(目前用占位)
✔ 已加入
4️⃣ 邮件服务器调试端口冲突
本地 MailCatcher 占用了 1025 → 改为 2525
✔ 已解决
五、燃尽图

六、代码
utils/email_util.py(邮件发送模块)
from flask_mail import Message
from flask import current_app
from extensions import mail
def send_reservation_email(to, venue_name, date, start, end, price):
"""
发送预约成功邮件(HTML + Text 双格式)
"""
subject = "预约成功通知 - 校园体育场馆系统"
text_body = f"""
您的预约已成功!
场馆:{venue_name}
日期:{date}
时间:{start} - {end}
费用:{price} 元
如需取消预约,请登录系统。
"""
html_body = f"""
<h2>📢 您的预约已成功!</h2>
<p><b>场馆:</b>{venue_name}</p>
<p><b>日期:</b>{date}</p>
<p><b>时间:</b>{start} - {end}</p>
<p><b>费用:</b>{price} 元</p>
<hr>
<p>如需取消预约,请登录系统。</p>
"""
msg = Message(
subject=subject,
recipients=[to]
)
msg.body = text_body
msg.html = html_body
mail.send(msg)
return True
七、每日总结
宋可月: 邮件通知绑定成功,系统更完整了。
齐畅: 预约成功页面更有“反馈感”了。
颜宏宇: 查询接口加入场馆名,提高前端易用性。
戴清: 邮件字段结构整理完毕,数据源稳定。
缪子睿: 邮件通知测试用例已跑通,还需补异常测试。
曹伟斌: HTML 模板成功渲染,体验很不错。
赖彦彤: 预约成功页 UI 整体完成。
浙公网安备 33010602011771号