Files
easygoadmin-web/CLAUDE.md
T
2026-10-18 18:15:47 +08:00

4.9 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

项目概述

小蚂蚁云后台管理系统 (RXThinkCMF):Spring Boot 3.3 (JDK 17) 多模块 Maven 后端 + Vue 3 管理后台前端 (xiaomayi-ui/)。注释与提交信息使用中文;Java 文件带版权头,不要删除。

常用命令

后端(Maven,无 mvnw,需系统 mvn)

  • 全量构建:mvn clean package(默认 local profile)
  • 指定环境构建:mvn clean package -P prod(可选:local|dev|test|uat|prod)
  • 运行后台应用:java -jar xiaomayi-modules/xiaomayi-admin/target/xiaomayi-admin.jar,或 IDE 直接运行主类 com.xiaomayi.admin.XMAdminApplication
  • 单独构建某模块:mvn clean package -pl xiaomayi-services/xiaomayi-system -am(-am 连带构建依赖模块)
  • 测试实际被跳过:admin 的 surefire 配置 skipTests=true,父 POM 配置 compiler 跳过 test 编译,仓库中基本没有测试

前端(xiaomayi-ui/,包管理器 pnpm)

  • 安装依赖:pnpm install
  • 开发:pnpm dev(端口 8001,代理 /api → http://127.0.0.1:8081/api,见 .env.development 的 VITE_PROXY)
  • 构建:pnpm build 或 pnpm build:test
  • 类型检查:pnpm type:check
  • Lint:pnpm lint:eslint、pnpm lint:prettier、pnpm lint:stylelint

后端架构

模块依赖方向:xiaomayi-modules(可运行应用)→ xiaomayi-services(业务模块)→ xiaomayi-common(基础组件)。

  • xiaomayi-common/:约 30 个能力组件(security、mybatis、redis、oss/minio、sms、email、alipay/wxpay、websocket、tenant、excel、generator 等)+ BOM 模块 xiaomayi-all。所有第三方依赖版本集中在 xiaomayi-common/pom.xml 的 dependencyManagement 中管理,新增依赖版本加在这里。
  • xiaomayi-services/:业务领域模块(system、cms、product、order、member、logistics、invoice、quartz、generator),每层结构为 dto / entity / mapper / service,Mapper XML 在各模块 src/main/resources/mapper/。
  • xiaomayi-modules/:可运行应用。xiaomayi-admin(后台管理,主类 XMAdminApplication,端口 8081,context-path /api);xiaomayi-web(前台网站 XMWebApplication);xiaomayi-uniapp(客户端接口 UniAppApplication)。
  • xiaomayi-visual/xiaomayi-monitor:监控应用。

后端约定:

  • Controller 位于应用模块(主要在 xiaomayi-admin/.../controller/<业务域>/),注入 services 模块的 Service;不要把 Controller 写进 services 模块。
  • 统一响应体 com.xiaomayi.core.utils.R:{code, msg, data, count},code=0 成功、1 失败,分页总数放在 count。前端 axios 封装按 code === 0 判断成功(xiaomayi-ui/src/utils/http/axios/)。
  • 认证用 Spring Security;放行 URL 在 xiaomayi-admin/src/main/resources/configs/application-security.yml。
  • ORM 为 MyBatis(XML mapper),多数据源 dynamic-datasource + Druid;默认主库 MySQL,库名 rxthinkcmf.web,初始化脚本 document/rxthinkcmf.web.sql。
  • 配置分两层:application.yml 通过 spring.config.import 导入公共配置 configs/application-*.yml(mybatis、security、logger、tenant、payment 等)和环境配置 configs/<env>/application-*.yml(redis、aliyun、minio、token、email 等)。spring.profiles.active 由 Maven profile 的 @package.environment@ 资源过滤注入——改 application-<env>.yml 的内容时注意它是被 Maven filtering 处理的资源。
  • 版本号统一为 ${revision}(当前 2.0.0),由 flatten-maven-plugin 解析,不要在子 POM 中硬编码版本。
  • 代码生成器:GeneratorController + Freemarker 模板(xiaomayi-admin/src/main/resources/templates/,含 modules/ 后端模板和 ui/ 前端模板)。

前端架构(xiaomayi-ui)

Vue 3 + Vite 3 + TypeScript + Element Plus + Pinia,结构类似 vben-admin。

  • 接口定义在 src/api/<域>/<模块>.ts,页面在 src/views/<域>/;@ 别名指向 src/。
  • 动态路由:登录后由后端菜单接口(getRouters)返回菜单树,src/router/generator-routers.ts 用 import.meta.glob('../views/**/*.{vue,tsx}') 把菜单里的 component 路径字符串解析成组件。新增页面必须放在 src/views/ 下,且菜单表中配置对应路径,否则路由无法加载。
  • 请求走 src/utils/http/axios/ 封装,接口前缀 VITE_GLOB_API_URL_PREFIX=/api,与后端 context-path 对应。
  • 环境变量在根目录 .env、.env.development、.env.test、.env.production。

部署

  • 根目录 Dockerfile + docker-compose.yml:构建并运行 admin 应用(挂载 ./logs、./upload)。
  • .jenkins/:CI 配置(Jenkinsfile 调用内部 share-library 的 pipelineJDKService)。
  • docker/deploy.sh:从 Harbor 拉取镜像并 docker compose up。