|
|
2 weeks ago | |
|---|---|---|
| client | 2 weeks ago | |
| deploy | 2 weeks ago | |
| docs | 2 weeks ago | |
| server | 2 weeks ago | |
| .env.example | 2 weeks ago | |
| .gitignore | 2 weeks ago | |
| README.md | 2 weeks ago | |
| package.json | 2 weeks ago | |
| pnpm-workspace.yaml | 2 weeks ago | |
| pom.xml | 2 weeks ago |
一个可直接使用 IntelliJ IDEA 打开的前后端工程,用于检索、筛选和导出海外礼品产品素材。
| 模块 | 技术 |
|---|---|
| 前端 | React 18、TypeScript、Vite 6、Tailwind CSS 4、React Router |
| 后端 | Java 8、Spring Boot 2.7.18、Spring Data JPA、Flyway |
| 数据库 | H2(开发/可选快速部署)、PostgreSQL(推荐生产) |
| 构建 | npm、Maven 3.9+ |
File > Open,打开整个 D:\AAAAA\AAA-sans 目录,不要只打开 client 或 server。pom.xml 和前端 package.json。npm --prefix client install。Fullstack,或分别运行 Backend 和 Frontend。如果 IDEA 没有自动识别运行配置,可直接运行后端入口 server/src/main/java/com/singsong/SingsongApplication.java,再运行前端 client/package.json 中的 dev 脚本。
PowerShell 当前默认 Java 若不是 8,请先将 JAVA_HOME 和 Path 指向本机 JDK 8,并用 java -version 确认显示 1.8.x。
启动后端:
mvn -pl server spring-boot:run
启动前端(另开一个终端):
npm --prefix client install
npm --prefix client run dev
npm --prefix client run typecheck
npm --prefix client run build
mvn -pl server test
mvn -pl server package
AAA-sans/
|- client/ React 前端源码
| |- src/api/ 后端接口封装
| |- src/app/components/ 页面和业务组件
| |- src/contexts/ 登录与收藏状态
| `- src/types/ TypeScript 类型
|- server/ Spring Boot 后端源码
| |- src/main/java/ 控制器、服务、实体、仓储和导出任务
| |- src/main/resources/ 配置与 Flyway 数据库脚本
| `- src/test/ 后端集成测试
|- docs/ API、数据库和技术文档
|- deploy/ Nginx、systemd 和构建脚本
|- pom.xml IDEA/Maven 根工程入口
`- package.json 前端统一脚本入口
首次启动后端会创建 server/data/ 和 server/exports/,两者均已加入 .gitignore。如需全新开发数据,可在后端停止后删除 server/data/,再次启动时 Flyway 会重新初始化。
开发环境的 H2 控制台地址为 http://localhost:8080/api/h2-console,JDBC URL 为 jdbc:h2:file:./data/singsong,用户名 sa,密码为空。
更详细的接口和数据库设计见 docs/API_SPEC.md、docs/DATABASE.md 和 docs/TECH_STACK.md。
关键词搜索会由后端访问客户 144 只读接口,API Key 不会发送给浏览器。密钥保存在已被 Git 忽略的 server/config/application-secrets.yml,生产环境建议通过 CUSTOMER144_API_KEY 环境变量注入。
外部接口没有关键词参数,因此后端会按接口规范分页维护 H2/PostgreSQL 只读商品快照表,并在每次用户搜索时调用远端第一页刷新最新数据。远端有关键词匹配时展示远端商品;远端无数据、不可用或没有匹配时继续使用原有本地商品数据。远端文本字段为空时映射为 -,价格为空时前端显示 -。
可配置项:
CUSTOMER144_API_ENABLED=true
CUSTOMER144_API_BASE_URL=https://gift.singsong.cn/api/customer144
CUSTOMER144_API_KEY=通过安全渠道提供的密钥