Files
PartsInquiry/backend/txm/doc/同步文档.md
2025-09-27 22:57:59 +08:00

78 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 前后端数据库状态说明
**更新日期**: 2025-09-17
### 概要
- 数据库已落地:已在远程 MySQL `mysql.tonaspace.com``partsinquiry` 库完成初始化(表结构与触发器已创建)。
- 已生成根目录文档:`/doc/database_documentation.md` 已同步线上结构(字段、索引、外键、触发器)。
- 后端代码仍未配置数据源依赖与连接,前端无本地结构化存储方案。
### 已建库与连接信息(用于部署/联调)
- Address: `mysql.tonaspace.com`
- Database: `partsinquiry`
- User: `root`
- 说明:所有结构变更均通过 MysqlMCP 执行并已落地到线上库。
### 角色与模拟数据策略(统一为店长)
- 当前不进行角色划分,系统仅保留“店长”角色。
- 已将所有用户记录统一为:`role='owner'``is_owner=1`
- 前端/后端权限逻辑暂未启用,后续若引入权限体系,再行扩展角色与边界。
### 小程序默认用户(可开关,默认关闭)
- 目的:开发/演示阶段,便于免登录联调。
- 机制:前端在请求头附加 `X-User-Id`(值为张老板 id=2仅当开关开启时。
- 开关:
- 环境变量:`VITE_APP_ENABLE_DEFAULT_USER=true``VITE_APP_DEFAULT_USER_ID=2`
- 或本地存储:`ENABLE_DEFAULT_USER=true``DEFAULT_USER_ID=2`
- 关闭:不设置/置为 `false` 即可停用(生产环境默认关闭)。
- 完全移除:删除 `frontend/common/config.js` 中默认用户配置与 `frontend/common/http.js` 中注入逻辑。
### 后端Spring Boot状态
- 依赖:`pom.xml` 已包含 `spring-boot-starter-web``spring-boot-starter-data-jpa``mysql-connector-j`
- 配置:`application.properties` 使用环境变量注入数据源,已补充 Hikari/JPA新增附件占位图配置
- `attachments.placeholder.image-path`env: `ATTACHMENTS_PLACEHOLDER_IMAGE`
- `attachments.placeholder.url-path`env: `ATTACHMENTS_PLACEHOLDER_URL`,默认 `/api/attachments/placeholder`
- 接口:新增附件相关接口(占位方案):
- POST `/api/attachments`:忽略内容,返回 `{ url: "/api/attachments/placeholder" }`
- GET `/api/attachments/placeholder`:返回本地占位图二进制
- 迁移:仍建议引入 Flyway/Liquibase结构变更继续通过 MysqlMCP 并同步 `/doc/database_documentation.md`
### 前端uni-app数据库状态
- 数据持久化:未见 IndexedDB/WebSQL/SQLite/云数据库使用;页面数据为内置静态数据。
- 本地存储:未见 `uni.setStorage`/`uni.getStorage` 的集中封装或结构化键空间设计。
- 结论:前端当前不涉及本地数据库或结构化存储方案。
### 风险与影响
- 后端未配置数据源与接口,应用无法读写远端库(虽已建表)。
- 无接口契约,前后端仍无法联调涉及数据库的功能。
### 建议的后续行动(不自动执行)
- 在后端引入依赖:`spring-boot-starter-web``spring-boot-starter-data-jpa``mysql-connector-j`
- 配置数据源:使用环境变量注入 `SPRING_DATASOURCE_URL``SPRING_DATASOURCE_USERNAME``SPRING_DATASOURCE_PASSWORD` 等,指向上述远程库。
- 引入迁移工具Flyway/Liquibase管理 DDL后续所有变更继续通过 MysqlMCP 执行,并同步 `/doc/database_documentation.md`
- 增加健康检查与基础 CRUD 接口;在 `/doc/openapi.yaml` 按规范登记并标注实现状态(❌/✅)。
### 前端默认连接策略
- 默认后端地址:`http://127.0.0.1:8080`(可被环境变量/Storage 覆盖)
- 多地址重试:按顺序尝试(去重处理):`[ENV, Storage, 127.0.0.1:8080, localhost:8080]`
- 默认用户:开启(可被环境变量/Storage 关闭),请求自动附带 `X-User-Id`(默认 `2`)。
- 如需关闭:在 Storage 或构建环境中设置 `ENABLE_DEFAULT_USER=false`
### 占位图策略(当前阶段)
- 说明:所有图片上传与展示均统一使用占位图,实际文件存储暂不开发。
- 本地占位图:`C:\Users\21826\Desktop\Wj\PartsInquiry\backend\picture\屏幕截图 2025-08-14 134657.png`
- 配置方式:
- PowerShell当前用户持久化
```powershell
setx ATTACHMENTS_PLACEHOLDER_IMAGE "C:\\Users\\21826\\Desktop\\Wj\\PartsInquiry\\backend\\picture\\屏幕截图 2025-08-14 134657.png"
setx ATTACHMENTS_PLACEHOLDER_URL "/api/attachments/placeholder"
```
- 应用重启后生效;也可在运行环境变量中注入。
- 前端影响:
- `components/ImageUploader.vue` 上传始终得到 `{ url: '/api/attachments/placeholder' }`
- 商品列表/详情展示该占位图地址