# SplitBite **Repository Path**: guangming-mountain/SplitBite ## Basic Information - **Project Name**: SplitBite - **Description**: 基于人工智能的外卖订单识别与拼单分账系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SplitBite 《基于人工智能的外卖订单识别与拼单分账系统》 ## 项目结构 - `splitbite-backend`:Spring Boot + MyBatis-Plus 后端 - `splitbite-frontend`:Vue3 + Element Plus 前端 - `splitbite_db`:MySQL 数据库 ## 核心流程 1. 用户注册或登录。 2. 上传外卖订单截图。 3. 后端执行 OCR,调用 DeepSeek 将 OCR 文本解析为订单 JSON。 4. 用户校对菜品、优惠、配送费、包装费和实付金额。 5. 添加拼单参与人,并把菜品分配给对应同学。 6. 系统按菜品金额占比分摊优惠,按人数均摊配送费和包装费。 7. 生成每个人应付金额和微信收款文案。 ## 本地运行 后端默认连接本地 MySQL: ```bash mysql -uroot -p123456 < splitbite-backend/src/main/resources/db/schema.sql cd splitbite-backend mvn spring-boot:run ``` 前端: ```bash cd splitbite-frontend npm install npm run dev ``` 访问:`http://localhost:5173` 默认账号: - 普通用户:`user / 123456` - 管理员:`admin / 123456` ## Docker 运行 ```bash copy .env.example .env docker compose up --build ``` 访问:`http://localhost:5173` ## AI 与 OCR 配置 - `DEEPSEEK_API_KEY` 为空时,后端会使用演示 JSON,方便答辩时离线演示完整流程。 - `PADDLE_OCR_URL` 为空时,后端会使用演示 OCR 文本。 - 本地联调默认 OCR 适配服务地址:`http://localhost:8866/ocr`。 - 接入真实 PaddleOCR 服务时,在后端环境变量中把 `PADDLE_OCR_URL` 改成真实 OCR 接口地址,接口需接收 multipart `file` 并返回识别文本。 本地启动顺序: ```powershell .\scripts\run-ocr.ps1 .\scripts\run-backend.ps1 cd splitbite-frontend npm run dev ``` ## 分账规则 - 个人菜品金额 = 分配给该人的菜品金额之和。 - 优惠金额按个人菜品金额占比分摊。 - 配送费和包装费按参与人数均摊。 - 最终金额保留两位小数。 - 尾差由菜品金额最高的参与人承担,确保账单合计等于订单实付金额。