# 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`) 自动记录