第12组 · 余昕越 · 第1次评审详情 - sebestp/coursewise GitHub Wiki

余昕越 · 第1次评审详情(第12组 · 组员)

基本信息

  • 报告期次:第1次 | 报告日期:2026-10-08 | 项目组号:第12组 | 项目名称:在线购物系统

工作任务与成果物

成果物 · 商品浏览与购买意向成果

商品浏览与购买意向成果

负责人:余昕越;GitHub账号:ygccbpkn12345。负责02模块的公开商品查询与免注册购买意向提交。

提交与源码

代码已上传;系统集成和功能测试待验证。本页说明已提交的实现,不将源码上传等同于功能验收通过。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。

教师点评

(评审后填写)

⚠️ **GitHub.com Fallback** ⚠️