Files
monisuo/CLAUDE.md
sion123 63668fcf63 refactor(theme): 优化主题配色方案并统一设计语言
- 更新 CLAUDE.md 中的技能系统执行逻辑,简化任务处理流程
- 重构 app_color_scheme.dart 中的颜色定义,将深色主题主色从专业蓝改为真金色,浅色主题主色从专业蓝改为深灰色
- 统一盈利颜色为绿色调色板,更新渐变和容器颜色以保持一致性
- 调整 app_theme_extension.dart 中的强调色引用,确保深色主题使用金色作为主强调色
- 优化颜色命名和注释,使设计意图更清晰
2026-04-06 02:50:48 +08:00

6.1 KiB
Raw Blame History

CLAUDE.md

本文件为 Claude Codeclaude.ai/code在处理本仓库中的代码时提供使用指引。始终用中文与用户沟通。

项目概述

模拟所 (Monisuo) — 虚拟货币模拟交易平台。全栈 monorepo三个子系统共用一个 MySQL 数据库。

技能系统

执行任务前先判定复杂度简单任务改样式、调主题、修小bug、清理冗余不读 brainstorming。复杂任务主动启用适用技能扫描 .agents/skills/ 目录Read 对应 SKILL.md 后严格遵循执行。技能优先级高于默认行为,但低于用户的显式指令。

构建与运行命令

Java 后端 (Maven, Java 8, Spring Boot 2.2.4)

mvn spring-boot:run                          # 开发服务,端口 5010
mvn compile                                  # 仅编译
mvn test                                     # 运行测试
mvn clean package -DskipTests                # 打包 JAR → target/monisuo-1.0.jar

Flutter 移动端/Web (flutter_monisuo/)

cd flutter_monisuo
flutter pub get                               # 安装依赖
flutter run -d chrome                         # 开发 (Web)
flutter run -d android                        # 开发 (Android)
flutter analyze                               # 代码检查
flutter test                                  # 运行测试
flutter build web --release --dart-define=ENV=prod    # 生产 Web 构建 → build/web/
flutter build apk --release --dart-define=ENV=prod    # 生产 APK 构建 → build/app/outputs/

通过 --dart-define=ENV=prod|dev 切换环境API 地址自动切换。

Vue 管理后台 (monisuo-admin/)

cd monisuo-admin
pnpm install                                  # 安装依赖(需 pnpm >=10, node >=22.15
pnpm dev                                      # Vite 开发服务
pnpm build                                    # 生产构建vue-tsc + vite→ dist/
pnpm lint / pnpm lint:fix                     # 代码检查,使用 @antfu/eslint-config

部署

deploy/build_local.sh                         # 本地构建 Flutter + Admin
deploy/deploy_server.sh                       # 完整服务器部署(前端同步 + Maven 构建 + JAR 重启)
deploy/deploy_server.sh frontend              # 仅部署前端
deploy/deploy_server.sh backend               # 仅部署后端

服务器:8.155.172.147,后端端口 5010。Flutter Web → /www/wwwroot/monisuo-h5/,管理后台 → /www/wwwroot/monisuo-admin/

架构

后端 (src/main/java/com/it/rattan/)

分层架构:Controller → Service → Mapper → Entity

  • JWT 认证:TokenFilter + UserContextThreadLocal。接口前缀/api/(用户端)、/admin/(管理端)。
  • 统一响应封装:Result<T>code/msg/dataPageResult 分页。
  • GlobalExceptionHandler 全局异常处理BCrypt 密码加密。
  • bean-searcher 动态查询构建,用于管理端列表接口。
  • 数据库MySQLmonisuoORM 用 MyBatis-Plus。建表脚本 sql/init.sql11 张表)。

Flutter 应用 (flutter_monisuo/lib/)

  • 状态管理ProviderChangeNotifierproviders/ 消费 data/services/,底层调用 core/network/DioClient
  • 主题样式前端禁止硬编码新设计统一维护到theme目录的定义中,并尽可能复用设计主题。
  • UIshadcn_ui + 自定义主题系统(core/theme/)。颜色集中管理。组件过大,需要组件化,而不是堆积。
  • 数据流data/services/API 调用)→ providers/(状态)→ ui/pages/(视图)。
  • 页面auth、home、market、trade、asset、mine、orders、onboarding。

Vue 管理后台 (monisuo-admin/src/)

  • 路由:基于文件系统的路由,unplugin-vue-routerpages/ 目录)。路由层有鉴权守卫。
  • 状态管理Piniaauth、theme+ TanStack Vue Query服务端状态
  • HTTPAxixos 通过 composables/use-axios.ts 封装。Vite 代理 /apilocalhost:5010(去除前缀)。
  • UIshadcn-vue 组件在 components/ui/(自动注册,已排除 tsconfig
  • 自动导入Vue composables、stores、constants 通过 unplugin-auto-import 自动导入。
  • 代码检查ESLint 9 flat config + @antfu/eslint-config。Pre-commit 钩子通过 simple-git-hooks + lint-staged

核心业务领域

双账户体系:

  • 资金账户 (account_fund):与用户 1:1USDT 余额,用于充提。充值需管理员审批。
  • 交易账户 (account_trade):与用户 1:N每币种一个持有币种数量和加权平均成本价。
  • 资金流转:充值 → 资金账户 → 划转至交易账户(USDT) → 买卖币种。所有操作记录在 account_flow
  • 盈亏计算:(持仓数量 × 当前价格) - (持仓数量 × 平均成本价)
  • 详细流程图见 ACCOUNT_SYSTEM_DESIGN.md

数据库核心表

sys_usersys_admincoinprice_type: 1=实时, 2=管理定价)、account_fundaccount_trade(唯一索引 user_id+coin_code)、order_tradeorder_fund(充提订单,状态驱动的审批流)、account_flowsys_configuser_favoritecold_wallet

代码规范

Git 提交

Conventional Commits 格式:feat(module): 描述fix(module): 描述chore(scope): 描述。提交正文可用中文。

Flutter 代码规范

  • 遵循 Effective Dart 规范,提交前运行 flutter analyze
  • 使用 AppSpacingAppRadiusAppColorScheme 主题常量,禁止硬编码颜色。
  • 修改主题/UI 时不要改动业务逻辑/API/Provider 层。

Java 代码规范

  • 使用 Lombok 简化代码MyBatis-Plus LambdaUpdateWrapper 做更新操作。
  • 所有涉及资金变动的方法必须加 @Transactional(rollbackFor = Exception.class)
  • RESTful API 设计Swagger 文档springfox 2.9.2)。

管理后台代码规范

  • TypeScript strict 模式lint 规则强制 <script lang="ts">
  • shadcn-vue 组件自动管理,不要手动编辑 components/ui/
  • 用 TanStack Vue Query 做数据请求Pinia 仅用于客户端状态。