# sboot **Repository Path**: chentian888/sboot ## Basic Information - **Project Name**: sboot - **Description**: 苍穹外卖开发第2次 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-07 - **Last Updated**: 2026-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 功能 - [ ] 登录模块JWT - [ ] 商品列表/缓存商品列表 - [ ] 菜品口味 - [ ] 购物车 - [ ] 订单模块 - [ ] 缓存击穿解决方案 - [ ] 分布式锁下单 - [ ] 限流接口 - [ ] 延迟取消订单 - [ ] 订单状态机 - [ ] 幂等性设计 - [ ] 并发控制 - [ ] 事务边界 - [ ] 数据一致性 - [ ] 上传/下载 - [ ] 定时任务 目标:会设计完整的订单流程。 ## 工程 - [ ] 分层设计 - [ ] DTO / VO / Entity 区分 - [ ] AOP 记录操作日志 - [ ] 统一返回封装 - [ ] 全局异常处理 - [ ] 参数校验 - [ ] 统一日志 - [ ] 配置管理 - [ ] 环境隔离 - [ ] 会写拦截器 - [ ] 用户鉴权 - [ ] 会写自定义注解 - [ ] 自定义AutoFill注解自动为实体类的公共字段(如创建时间、更新人)赋值,无需手动 set - [ ] 熟练用常见注解 - [ ] 理解 IOC / AOP 原理 - [ ] 自定义序列化 - [ ] 工具 - [ ] 微信支付 - [ ] 阿里OSS - [ ] JWT生成/解析 - [ ] config配置 - [ ] 跨域配置 - [ ] 静态资源映射配置 - [ ] 拦截器配置 - [ ] 自定义序列化配置 - [ ] Swagger整合 - [ ] MyBatis-Plus整合 - [ ] Redis整合 - [ ] 重复请求处理 - [ ] 事务传播机制 - [ ] 状态流转校验 - [ ] 幂等控制 目标:不查资料可以完整搭一个标准单体项目骨架 ## MySql * 表设计规范 * 一对多 / 多对多 建模 * 冗余字段设计 * 索引设计 * 唯一索引 vs 普通索引 * 乐观锁 * 分页优化 * 慢查询分析 目标:能自己设计一套商城数据库结构。 ## Redis * 常见数据结构(String / Hash / Set / ZSet) * 缓存设计 * 缓存击穿 / 雪崩 / 穿透 * 分布式锁 * 限流 * 延迟队列 * 计数器 * Session 存储 目标:知道什么时候用 Redis,而不是乱用。 ```shell docker run -d \ --name mysql8 \ -p 3306:3306 \ -v /Users/kayak/Desktop/Docker/mysql/data:/var/lib/mysql \ -v /Users/kayak/Desktop/Docker/mysql/conf/custom.conf:/etc/mysql/my.conf \ -v /Users/kayak/Desktop/Docker/mysql/logs:/logs \ -e MYSQL_ROOT_PASSWORD=root \ -e TZ=Asia/Shanghai mysql:8.4 \ ``` ## 表设计 ### dish-菜品 √ * 名称-name * 图片-image * 分类-category_id × * 售价-price * 售卖状态-status * 描述-description * 创建人-create_user * 更新人-update_user * 创建时间-create_time * 更新时间-update_time ### dish_flavor-菜品口味 × * 菜品主键-dish_id * 口味名称-name * 口味值-value ### category-分类 √ * 名称-name * 类型-type 1-菜品类/2-套餐类 * 排序-sort * 状态-status * 创建人-create_user * 更新人-update_user * 创建时间-create_time * 更新时间-update_time ### setmeal-套餐 √ * 名称-name * 图片-image * 分类-category_id × * 价格-price * 售卖状态-status * 套餐描述-description * 创建人-create_user * 更新人-update_user * 创建时间-create_time * 更新时间-update_time ### setmeal_dish-套餐中的菜品 √ * 套餐主键-setmeal_id * 菜品主键-dish_id * 菜品名称-name * 菜品价格-price * 菜品份数-copies * 创建时间-create_time * 更新时间-update_time ### shopping_cart-购物车 * 用户主键-user_id * 菜品主键-dish_id * 套餐主键-setmeal_id × * 菜品数量-number * 口味-dish_flavor × * 创建时间-create_time * 更新时间-update_time ### orders-订单 * 订单号-number * 订单状态-status * 用户主键-user_id × * 用户名-user_name * 手机号-phone * 地址-address_book_id × * 地址-address * 实收金额-amount * 下单时间-order_time × * 备注-remark * 打包费-pack_amount * 取消原因-cancel_reason * 拒单原因-rejection_reason * 配送状态-delivery_status × * 预计送达时间-estimated_delivery_time × * 送达时间-delivery_time * 支付渠道-pay_method * 支付状态-pay_status * 支付时间-checkout_time × * 餐具数量-tableware_number × * 餐具数量状态-tableware_status × * 派送费 ### orders_detail-订单详情 * 订单主键-order_id * 菜品主键-dish_id * 菜品名称 × * 菜品图片 × * 套餐主键-setmeal_id * 套餐名称 × * 套餐图片 × * 名字-name × * 图片-image × * 口味-dish_flavor × * 数量-number * 价格-amount ### user-用户 √ * openid * 昵称-name * 头像-avatar * 手机号-phone * 性别-sex * 身份证号-id_number * 创建时间-create_time ### employee-员工 √ * 姓名-name * 账号-username * 密码-password * 手机号-phone * 性别-sex * 身份证号-id_number * 账号状态-status * 创建人-create_user * 更新人-update_user * 创建时间-create_time * 更新时间-update_time ### address_book √ * 用户主键-user_id * 收货人-consignee * 性别-sex * 手机号-phone * 省代码-province_code * 省描述-province_name * 市代码-city_code * 市描述-city_name * 区代码-district_code * 区描述-district_name * 标签-label * 详细地址-detail * 是否默认-is_default ### shop-店铺 * 营业状态 * 店铺地址 * 联系方式 * 创建时间 * 更新时间 ## 接口设计 ### admin #### 分类 * 分类分页查询-/admin/category/page * 新增菜品/套餐分类-/admin/category * 修改分类-/admin/category * 删除分类-/admin/category * 启用/禁用分类-/admin/category/status/{status} * ×根据类型查询分类-/admin/category/list * ×根据id查询分类-/admin/category/{id} #### 员工 * 员工分页查询-/admin/employee/page * 登录-/admin/employee/login * 退出登录-/admin/employee/logout * 修改密码-/admin/employee/editPassword * 新增-/admin/employee * 修改-/admin/employee * 删除-/admin/employee * 启用/禁用-/admin/employee/status/{status} * ×根据id查询员工-/admin/employee/{id} #### 套餐 * 套餐分页-/admin/setmeal/page * 新增-/admin/setmeal * 修改-/admin/setmeal * 批量删除-/admin/setmeal * 启售/停售分类-/admin/setmeal/status/{status} * ×根据id查询套餐-/admin/setmeal/{id} #### 工作台 * 今日数据-/admin/workspace/businessData * 订单管理-/admin/workspace/overviewDishes * 套餐总览-/admin/workspace/overviewSetmeals * ×订单总览-/admin/workspace/overviewOrders #### 店铺 * ×获取店铺状态-/admin/shop/status * 修改店铺状态-/admin/shop/{status} #### 数据统计 * 营业额统计-/admin/report/turnoverStatistics * 用户统计-/admin/report/userStatistics * 订单统计-/admin/report/ordersStatistics * 销量排名TOP10-/admin/report/top10 * ×导出Excel报表接口-/admin/report/export #### 菜品 * 菜品分页查询-/admin/dish/page * 新增-/admin/dish * 修改-/admin/dish * 批量删除-/admin/dish * 启售/停售分类-/admin/dish/status/{status} * ×菜品详情-/admin/dish/{id} * ×根据分类id查询菜品-/admin/dish/list #### 订单 * 订单分页查询- /admin/order/conditionSearch * 订单详情-/admin/order/details/{id} * 接受订单-/admin/order/confirm * 拒绝订单- /admin/order/rejection * 派送订单-/admin/order/delivery/{id} * 取消订单- /admin/order/cancel * ×完成订单-/admin/order/complete/{id} * ×各个状态的订单数量统计-/admin/order/statistics * 退单 #### 通用接口 * ×文件上传-/admin/common/upload ### user #### 分类 * ×分类列表-/user/category/list #### 收货地址 * ×地址列表-/user/addressBook/list * ×查询默认地址-/user/addressBook/default * 新增收货地址-/user/addressBook * 修改地址-/user/addressBook * ×删除地址-/user/addressBook * 设置默认地址-/user/addressBook/default * ×地址详情-/user/addressBook/{id} #### 套餐 * ×根据分类id查询套餐-/user/setmeal/list * ×根据套餐id查询菜品-/user/setmeal/dish/{id} #### 店铺 * 获取营业状态-/user/shop/status #### 用户 * 登录-/user/user/login * 退出登录-/user/user/logout #### 菜品 * ×根据分类id查询菜品-/user/dish/list #### 订单 * 历史订单-/user/order/historyOrders * 订单详情-/user/order/orderDetail/{id} * 取消订单-/user/order/cancel/{id} * 提交订单-/user/order/submit * 催单-/user/order/reminder/{id} * 支付-/user/order/payment * ×再来一单-/user/order/repetition/{id} #### 购物车 * 加入购物车-/user/shoppingCart/add * 从购物车移除-/user/shoppingCart/sub * ×查看购物车-/user/shoppingCart/list * ×清空购物车-/user/shoppingCart/clean