第12组 · 余昕越 · 第1次评审详情 - sebestp/coursewise GitHub Wiki
- 报告期次:第1次 | 报告日期:2026-10-08 | 项目组号:第12组 | 项目名称:在线购物系统
- 已完成工作:上传02模块 buyer.py(合并请求 #2、#4)
- 成果物:商品浏览与购买意向成果
负责人:余昕越;GitHub账号:ygccbpkn12345。负责02模块的公开商品查询与免注册购买意向提交。
-
PR #2:提交
buyer.py,已合并。 -
PR #4:按02文件夹结构提交,排除 README,根目录旧
buyer.py移入02文件夹,已合并。 - 当前模块目录
- 当前 buyer.py 源码
- PR #4 对应源码快照下载:包含该提交时的整个仓库。
代码已上传;系统集成和功能测试待验证。本页说明已提交的实现,不将源码上传等同于功能验收通过。02模块未上传 README,模块说明在本页维护。
| 方法 | 路径 | 登录要求 | 功能与返回 |
|---|---|---|---|
| GET | /api/product |
无需登录 | 查询在售或冻结商品,返回 {product: 商品对象或 null};已售商品不公开展示 |
| POST | /api/intents |
无需登录 | 接收 product_id/buyer_name/contact/note,保存购买意向,返回 id/message
|
购买意向只登记线下购买意愿,不执行在线付款或交货。公开商品接口不返回买家姓名和电话。
| 名称 | 作用 |
|---|---|
get_current_product(request, data) |
查询状态为 active 或 frozen 的商品,通过 public_product() 返回公开字段 |
submit_intent(request, data) |
校验输入、规范化电话,在写事务内确认商品在售并写入购买意向 |
ROUTES |
将上述两个接口映射到处理函数,由05模块服务器统一挂载 |
依赖05模块的 database.connection()、public_product() 和请求对象的 integer()、text()、error()。本文件是业务模块,不能单独作为服务器启动。
-
product_id由统一请求校验器检查;商品编号用于关联意向。 -
buyer_name为1–40字符;note可空,最多300字符。 -
contact原始输入为6–30字符,只允许数字、加号、括号、横线和空格;移除括号、横线及空格后,去除开头加号的主体长度须为6–20字符。 - 电话校验只检查格式,不验证号码真实性或归属,不承诺识别所有国际号码写法。
- 商品必须为
active才能提交意向;冻结、已售或不存在的商品返回409。写入前在写事务内重新检查状态,旧页面无法绕过该检查。 - 规范化电话后依赖数据库
UNIQUE(product_id, contact)约束处理重复提交,重复意向返回409;参数错误由统一校验器及本模块返回400。
(评审后填写)