110 lines
4.6 KiB
Markdown
110 lines
4.6 KiB
Markdown
# 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`) 自动记录
|