# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## 项目概述 **数字支行辅助管理系统(IBS)** - 基于 若依框架 v3.8.8 的前后端分离全栈项目,专注于银行支行的网格化营销、客户管理和走访业务。 ## 常用命令 ### 后端开发 ```bash # Maven 打包(跳过测试) mvn clean package -Dmaven.test.skip=true # 运行已打包的 JAR cd ruoyi-admin/target java -jar -Xms256m -Xmx1024m ruoyi-admin.jar # 后端服务地址 http://localhost:8080 # Swagger API 文档 http://localhost:8080/swagger-ui/index.html # 测试登录接口获取 token POST /login/test?username=admin&password=admin123 ``` ### 前端开发 ```bash cd ruoyi-ui # 安装依赖 npm install # 开发环境运行(端口 80,代理到 localhost:8080) npm run dev # 生产环境构建 npm run build:prod # 代码检查 npm run lint ``` ### 数据库连接 ```bash # 通过 MCP MySQL 工具连接 # 地址: 116.62.17.81:3306 # 数据库: ibs # 用户名: root ``` ## 核心架构 ### 后端模块结构 ``` ruoyi-admin/ # 主入口模块,包含启动类和配置文件 ruoyi-framework/ # 框架核心:安全配置、缓存、数据源等 ruoyi-system/ # 系统管理:用户、角色、菜单、字典等 ruoyi-common/ # 通用工具:工具类、注解、常量等 ruoyi-quartz/ # 定时任务模块 ruoyi-generator/ # 代码生成器 ibs/ # ★ 业务模块:数字支行核心业务 ★ ``` ### IBS 业务模块 (核心业务) 位置: `ibs/src/main/java/com/ruoyi/ibs/` **主要业务包:** | 包名 | 功能 | 说明 | |------|------|------| | `grid` | 网格管理 | 支行网格划分、分配、统计 | | `cmpm` | 客户经理管理 | 客户经理信息维护 | | `list` | 客户列表管理 | 零售/商户/企业客户管理 | | `visit` | 走访管理 | 走访任务、记录、轨迹 | | `task` | 任务管理 | 营销任务分配和跟踪 | | `draw` | 绘图/网格绘制 | 基于百度地图的网格绘制 | | `custmap` | 客户地图 | 客户地理分布可视化 | | `dashboard` | 仪表盘 | 数据统计和展示 | | `datavisual` | 数据可视化 | 报表和图表 | | `rules` | 规则配置 | 业务规则配置 | | `qxhy` | 青县惠银接口 | 外部系统对接 | | `websocket` | WebSocket通信 | 实时通信支持 | **业务模块命名规范:** - 新建模块命名: `ibs` + 主要功能(如 `ibs-grid`, `ibs-customer`) - Controller 放在新建模块中,不与若依框架混合 - Entity 使用 `@Data` 注解 - Service 使用 `@Resource` 注解,不继承 `ServiceImpl` - DAO 使用 MyBatis Plus,复杂操作在 XML 中编写 SQL ### 前端结构 ``` ruoyi-ui/src/ ├── api/ # API 接口定义 ├── views/ # 页面视图 │ ├── grid/ # 网格管理相关页面 │ ├── customer/ # 客户管理 │ ├── taskManage/ # 任务管理 │ ├── dashboard/ # 仪表盘 │ └── ... ├── components/ # 公共组件 ├── map/ # 地图相关(百度地图集成) ├── store/ # Vuex 状态管理 └── router/ # 路由配置 ``` ### 数据库表命名规范 - 新建表需加项目前缀: `ibs_` + 表名 - 示例: `ibs_grid`, `ibs_customer`, `ibs_visit_record` ## 关键技术点 ### 1. 地图集成 项目深度集成百度地图 API,用于: - 网格绘制和编辑 - 客户地理位置标注 - 走访轨迹记录 - 客户分布热力图 **相关配置:** - 百度地图 AK 在前端配置 - 使用 JTS 库进行地理空间计算 ### 2. 批量导入优化 设计批量导入功能时: - 使用批量操作提高响应速度 - 导入结果只展示失败数据,不展示成功数据 - 使用 EasyExcel 处理 Excel ### 3. 多端支持 - PC 端: 主要管理和配置功能 - PAD 端: 走访记录功能(移动端) ### 4. 外部系统对接 | 系统 | 地址 | 用途 | |------|------|------| | 青县惠银 | http://158.234.96.76:5002 | 业务数据对接 | | BI 系统 | http://158.220.52.42:9388/bi | 数据分析和报表 | | 阿里云 OSS | - | 文件存储 | ## 开发规范 ### 代码分层 - **Entity**: 实体类,不继承 BaseEntity,单独添加审计字段 - **DTO**: 接口传参专用类 - **VO**: 返回数据专用类 - **Service**: 业务逻辑,使用 `@Resource` 注入 - **Mapper**: MyBatis Plus + XML 混合使用 ### 审计字段 通过注解实现自动填充: ```java @TableField(fill = FieldFill.INSERT) private String createBy; @TableField(fill = FieldFill.INSERT) private Date createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private String updateBy; @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; ``` ### 分页 使用 MyBatis Plus 分页插件自动处理,传入 `Page` 对象即可。 ### 前端菜单配置 添加新页面后,需要在数据库 `sys_menu` 表中配置菜单权限。 ## 重要配置文件 | 文件 | 位置 | 说明 | |------|------|------| | 后端配置 | `ruoyi-admin/src/main/resources/application-dev.yml` | 数据库、Redis、第三方服务配置 | | 前端配置 | `ruoyi-ui/vue.config.js` | 开发服务器、代理配置 | | 菜单数据 | 数据库 `sys_menu` 表 | 菜单权限配置 | ## 测试账号 - 用户名: `admin` - 密码: `admin123` ## Swagger 接口文档 启动后端后访问: `http://localhost:8080/swagger-ui/index.html` ## 开发流程建议 1. **数据库设计**: 新建表需加 `ibs_` 前缀 2. **后端实体类**: 使用 `@Data` 注解,添加审计字段注解 3. **后端业务层**: 在 `ibs` 模块下开发,简单 CRUD 用 MyBatis Plus,复杂操作用 XML 4. **后端测试**: 使用 `/login/test` 获取 token 后测试接口 5. **前端开发**: 在 `ruoyi-ui/views/` 下对应业务模块开发 6. **菜单配置**: 在 `sys_menu` 表添加菜单项 7. **API 文档**: 生成后保存在 `doc/api/` 目录