Files
yoloShop/CLAUDE.md
2026-02-11 21:10:06 +08:00

110 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.
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 项目概述
波猫商店 (Bomaos-Shop) — 基于 Java 8 + Spring Boot 2.7.13 的自动化发卡电商平台支持14种支付渠道、批发模式、自动/手动发货。
**重要提示:本仓库缺少 `src/main/` 目录Java 源码 (`.java`) 和资源文件均不在标准位置。** 所有内容位于 `target/classes/` 下:
- **Java 后端**:仅有编译后的 `.class` 文件,无法直接编辑,需反编译才能理解逻辑
- **前端模板和静态资源完整存在**Beetl 模板 (`templates/`)、CSS/JS (`static/`)、配置文件 (`*.yml`) 均可直接编辑
- **注意**`target/` 是 Maven 构建输出目录,`mvn clean` 会清除其中所有文件
## 构建与运行
```bash
# Maven 编译
mvn compile
# 打包(跳过测试)
mvn clean package -DskipTests
# 运行测试
mvn test
# 直接运行
java -jar target/bomaos-shop-2.0.4.jar
# Docker 部署(需先将 sql/bomaos-shop.sql 复制到 mysql/db/init.sql
docker-compose up -d
```
应用默认端口 **8085**,开发环境数据库连接 `localhost:3307`Docker 环境连接 `mysql:3306`
## 技术栈
| 层级 | 技术 |
|------|------|
| 框架 | Spring Boot 2.7.13 |
| ORM | MyBatis-Plus 3.5.3.1 |
| 数据库 | MySQL 8.0 + Druid 连接池 |
| 认证 | Apache Shiro 1.11.0 + JWT (jwtp) |
| 模板引擎 | Beetl 3.0.16 |
| 前端 UI | Layui |
| 工具库 | Hutool 5.8.20、Lombok、Fastjson 2 |
## 架构
### 包结构 (`com.bomaos`)
```
com.bomaos/
├── BomaosApplication # 启动类
├── carmi/ # 卡密管理CRUD + Excel 导入导出)
├── orders/ # 订单管理
├── products/ # 商品 & 分类管理
├── settings/ # 支付配置、优惠券、商店设置、微信推送
├── content/ # 文章 & 轮播图
├── reception/ # 前台展示(首页、商品详情、支付回调)
├── dashboard/ # 后台仪表盘
├── theme/ # 主题管理(白天/黑夜/暗黑)
├── website/ # 网站 SEO 设置
└── common/
├── core/
│ ├── pays/ # 14种支付渠道集成alipay/wxpay/paypal/epusdt/epay 等)
│ ├── shiro/ # Shiro 安全配置
│ ├── aspect/ # AOP 操作日志
│ ├── config/ # Spring 配置类
│ ├── enmu/ # 枚举(支付类型等)
│ ├── utils/ # 工具类
│ └── web/ # BaseController / BaseApiController
└── system/ # 用户、角色、菜单、字典、日志等系统管理
```
### 分层模式
每个业务模块遵循标准 MVC 分层:`controller/ → service/ → mapper/ → entity/`,部分模块含 `dto/``vo/``excel/`
### 路由分区
- **后台管理**`/products/**``/carmi/**``/orders/**``/settings/**``/content/**``/sys/**``/dashboard/**`
- **前台展示**`/`(首页)、`/product/{id}``/order``/search``/pay`
- **支付回调**`/notify/**`
- **JWT 保护的 API**`/api/**`
### 多环境配置
- `application.yml` — 公共配置端口、连接池、MyBatis-Plus、JWT
- `application-dev.yml` — 开发环境MySQL localhost:3307
- `application-test.yml` — 测试环境
- `application-prod.yml` — 生产环境
- 通过 `spring.profiles.active` 切换
### 数据库
24 张表,初始化脚本在 `sql/bomaos-shop.sql`。核心业务表:`sys_products`(商品)、`sys_cards`(卡密)、`sys_orders`(订单)、`sys_pays`(支付配置)、`sys_coupon`(优惠券)。系统表以 `sys_` 前缀命名,使用 RBAC 权限模型(`sys_user` / `sys_role` / `sys_menu` 及关联表)。
### 支付集成
支付实现集中在 `common.core.pays` 包下,每种支付方式一个子包。支付配置存储在 `sys_pays` 表中JSON 格式保存各渠道参数。回调统一由 `reception.controller.NotifyController` 处理。
## 编码约定
- Java 8 语法UTF-8 编码
- 实体类使用 Lombok (`@Data`, `@TableName` 等)
- MyBatis-Plus 注解映射XML Mapper 与 Java 文件同目录(`classpath:com/bomaos/**/*Mapper.xml`
- 下划线数据库字段自动映射驼峰命名 (`map-underscore-to-camel-case: true`)
- 时间格式统一 `yyyy/MM/dd HH:mm:ss`,时区 GMT+8
- 操作日志通过 AOP 切面 (`OperLogAspect`) 自动记录