35 Commits

Author SHA1 Message Date
zhangjf
dfce5b0566 refactor: 统一脚本管理,优化Assembly打包配置
- 将各服务脚本统一到项目根目录scripts目录
- Assembly配置引用根目录scripts,避免重复
- 脚本自动从目录名推断服务名称
- 排除docker相关配置文件(application-docker.yml)
- 新增env.properties环境变量配置模板
- 更新单机部署文档至v2.1
2026-02-22 14:43:41 +08:00
zhangjf
7a3fcb3ed7 feat: 使用Maven Assembly实现标准化打包
主要更新:
- 每个服务打包为独立tar.gz,包含bin/lib/conf目录
- bin目录:启动/停止/重启/状态脚本
- lib目录:服务JAR包及所有依赖
- conf目录:配置文件(application.yml等)

新增文件:
- 各模块src/main/assembly/assembly.xml配置
- 各模块src/main/scripts启动脚本
- server-deploy/scripts一键管理脚本
- server-deploy/assembly/assembly.xml模板

更新文档:
- 单机部署文档v2.0,说明assembly打包方式
2026-02-22 14:04:57 +08:00
zhangjf
734dafe975 docs: 新增单机部署文档和服务部署脚本
包含内容:
- 单机部署文档(环境安装、数据库初始化、服务部署指南)
- 9个微服务的启动/停止/重启脚本
- 一键启动/停止/重启所有服务脚本
- 服务状态查看脚本
- 日志统一存放在/datacfs/applogs/服务名称目录
2026-02-22 13:48:23 +08:00
zhangjf
fa0a356d08 docs: 更新部署运维文档至v2.0
主要更新内容:
- 新增Docker Compose部署章节
- 更新服务端口配置(Gateway:8000, fund-sys:8100等)
- 新增多租户混合负载模式说明
- 更新Prometheus+Grafana监控体系配置
- 新增链路追踪日志格式(TraceId+SpanId)
- 更新环境变量配置
- 新增访问地址汇总和默认账号信息
2026-02-22 13:30:21 +08:00
zhangjf
a6716da742 docs: 问题清单新增问题11-ContextInterceptor响应头未设置traceId和spanId 2026-02-20 16:51:23 +08:00
zhangjf
ad4176ae8a docs: 更新移动端技术栈为 Vue3 + Vite5 + Vant4
- 架构设计文档:更新前端架构说明和接入层架构图
- 需求文档:更新移动端技术栈描述
- 功能清单:更新移动端模块技术栈
- 移除 UniApp 跨端架构,改为独立的 H5 移动端应用
2026-02-20 08:19:46 +08:00
zhangjf
8e4afcd1a5 feat: TenantAwareLoadBalancer 整合 TenantRoutingProperties 配置
问题:TenantRoutingProperties 定义了配置但未被使用

解决方案:
1. TenantAwareLoadBalancer 注入 TenantRoutingProperties
   - 使用配置的 tenantHeader 名称
   - 使用配置的 buildTenantGroup 方法
   - 使用配置的 isSharedService 判断
   - 使用配置的 isFallbackToShared 策略

2. 新增功能
   - 支持 enabled=false 禁用租户路由
   - 共享服务跳过租户过滤
   - 可配置是否回退到共享实例

3. 更新测试适配新构造函数
2026-02-19 21:02:25 +08:00
zhangjf
109ae29474 docs: 添加Docker构建脚本和部署指南
- scripts/docker-build.sh: Docker镜像构建脚本
  - 支持单模块构建、全部构建、docker-compose构建
  - 支持镜像源配置、镜像推送、清理功能
- doc/Docker部署指南.md: 完整部署文档
  - 环境要求、镜像源配置
  - 镜像构建方法、服务端口规划
  - 启动停止命令、故障排查
2026-02-19 19:15:56 +08:00
zhangjf
d11ed1ba1e docs: 添加问题10 HikariMonitorConfig空指针异常到问题清单 2026-02-19 18:26:28 +08:00
zhangjf
10eca3fb35 feat: 实现多租户架构完整能力
## 新增功能

### 1. 多租户核心组件
- TenantRoutingProperties: 租户路由配置属性
- TenantAwareLoadBalancer: 租户感知负载均衡器
- TenantLineHandlerImpl: MyBatis Plus 租户插件
- TenantIgnoreHelper: 忽略租户过滤工具类
- NacosMetadataConfig: Nacos 元数据自动注册

### 2. Gateway 租户过滤器
- TenantGatewayFilter: 从 JWT 提取租户信息写入请求头
- 透传 X-Tenant-Id、X-Tenant-Group、X-User-Id、X-Username

### 3. 支持的部署模式
- 一库多租户(SaaS 模式): 通过 tenant_id 字段隔离
- 一库一租户(私有化): 独立服务实例和数据库
- 混合模式: VIP 租户专属实例 + 普通租户共享实例

### 4. Nacos 3.0 适配
- 所有业务模块添加 username/password 认证配置
- 服务实例自动注册租户标签

## 问题修复
- #8: FeignClient 硬编码 URL 导致 Nacos 服务发现失效
- #9: Nacos 3.0 客户端缺少 username/password 认证配置
- fund-exp expenseType 字段类型从 Integer 改为 Long

## 测试
- TenantAwareLoadBalancerTest: 负载均衡器单元测试
- 混合模式集成测试脚本
2026-02-19 18:10:16 +08:00
zhangjf
5ebbb13a51 fix: 修复API测试中发现的问题
## 问题修复

### 1. 上下文拦截器
- ContextInterceptor: 从HTTP Header提取租户ID和用户ID到ThreadLocal
- WebMvcConfig: 注册拦截器到Spring MVC

### 2. 数据库配置
- fund-cust/application.yml: 修复MySQL密码默认值
- fund-proj/application.yml: 修复MySQL密码默认值

### 3. Gateway配置
- application.yml: 删除空的Sentinel datasource配置
- SentinelRuleConfig: 删除重复的sentinelGatewayFilter Bean

### 4. 数据库表
- requirement.sql: 修复主键列名为id,与BaseEntity保持一致

### 5. MyBatis-Plus依赖
- fund-cust/pom.xml: 使用mybatis-plus-spring-boot3-starter
- fund-proj/pom.xml: 使用mybatis-plus-spring-boot3-starter
2026-02-17 16:12:46 +08:00
zhangjf
075525d577 feat: 需求工单管理模块完整实现
## 新增功能

### 需求工单实体层
- Requirement.java: 需求工单实体类
- RequirementMapper.java: MyBatis-Plus Mapper接口
- RequirementDataService.java: 数据访问服务

### 业务层
- RequirementDTO.java: 数据传输对象
- RequirementVO.java: 视图对象
- RequirementService.java: 业务服务实现

### 接口层
- RequirementController.java: REST API接口
  - GET /api/v1/requirement/list - 分页查询
  - GET /api/v1/requirement/{id} - 查询详情
  - POST /api/v1/requirement - 创建需求
  - PUT /api/v1/requirement/{id} - 更新需求
  - DELETE /api/v1/requirement/{id} - 删除需求
  - PUT /api/v1/requirement/{id}/status - 更新状态
  - PUT /api/v1/requirement/{id}/progress - 更新进度

### 数据库
- requirement.sql: 建表SQL脚本
2026-02-17 15:34:40 +08:00
zhangjf
da445a44de feat: D.3/F.1/F.3任务实施 - Nacos配置中心/读写分离/索引优化
## D.3 Nacos统一配置中心
- 添加spring-cloud-starter-alibaba-nacos-config依赖
- 创建bootstrap.yaml配置文件
- DynamicConfig: @RefreshScope动态配置刷新示例

## F.1 ShardingSphere读写分离
- 添加shardingsphere-jdbc-core依赖
- sharding-config.yaml: 读写分离配置示例
- 支持主从切换、负载均衡策略

## F.3 数据库索引优化
- db-index-optimization.sql: 全库索引优化脚本
- 用户/角色/菜单/部门表索引
- 用款/支出/收款表索引
- 复合索引优化常用查询场景
2026-02-17 15:14:19 +08:00
zhangjf
a17307a96e feat: 完成资金服务平台六步实施 - 数据库初始化+服务启动+网关配置
本次提交包含:
1. 11个Maven模块全部创建并编译通过
2. 4个数据库初始化脚本(14张表)
3. fund-sys服务启动验证
4. Gateway路由配置完成
5. API端到端测试通过

核心能力:
- 多租户数据隔离(MyBatis-Plus)
- JWT认证+BCrypt密码
- 统一返回结构
- 参数校验
- OpenFeign示例
- API网关统一入口

修复:
- MyBatis-Plus与Spring Boot 3兼容性问题
- BaseEntity字段类型统一(Long)
- Gateway版本兼容性
2026-02-17 12:53:55 +08:00
zhangjf
32863c5ce3 docs: 补充 Controller 职责与参数校验规范\n\n- 在开发规范中新增 8.4 Controller 与请求参数校验规范\n- 明确 Controller 只负责数据接收/校验、调用业务Service和封装返回结果\n- 建议使用 @Valid/@Validated + @NotBlank/@NotNull 等注解做必填校验\n- 提供登录接口参数校验示例和全局异常处理示例 2026-02-17 10:22:58 +08:00
zhangjf
6e75d23f1e docs: 增补 MyBatis-Plus 使用规范\n\n- 明确 ServiceImpl 仅负责数据访问,不承载业务逻辑\n- 约定数据服务类命名为 XxxDataService,业务服务命名为 XxxService 等\n- 禁止在 MyBatis ServiceImpl 中使用 @Slf4j,避免与 MyBatis Log 冲突\n- 建议将 Entity/Mapper/ServiceImpl 封装在独立 data 包下,与业务服务层物理隔离 2026-02-17 10:00:23 +08:00
zhangjf
2c22213326 docs: 补充 OpenFeign 参数对象管理策略\n\n- 在 2.3 章节新增 2.3.6 参数对象(DTO)管理策略\n- 约定通用参数对象放在 fund-common 独立模块\n- 领域业务参数对象按服务分模块管理,避免跨模块 Java 类型耦合\n- 明确消费方可定义本地 DTO 并在 Service 层做映射\n- 修复技术架构章节标题被覆盖的问题 2026-02-17 09:51:05 +08:00
zhangjf
cf0db27bc5 docs: 补充模块通信方式说明
新增内容:
- 2.3 模块通信方式章节
  - 2.3.1 基础服务 - Maven 依赖方式
  - 2.3.2 业务服务 - OpenFeign 通信方式
  - 2.3.3 通信链路追踪
  - 2.3.4 通信架构图
  - 2.3.5 通信方式选择标准

关键说明:
✓ fund-common 等基础服务采用 Maven 依赖方式
✓ 业务服务间采用 OpenFeign 进行 HTTP 通信
✓ 自动传递租户ID、用户信息、链路追踪ID
✓ 提供完整的代码示例和架构图
✓ 明确反模式,避免错误使用
2026-02-17 09:28:37 +08:00
zhangjf
c7904a9f8b docs: 同步文件上传管理模块文档
更新内容:

1. API接口文档.md
   - 新增「十六、文件管理接口」章节(194行)
   - 7个核心接口文档:
     * 16.1 上传文件(multipart/form-data)
     * 16.2 分页查询文件列表
     * 16.3 根据业务类型和ID查询文件列表
     * 16.4 获取文件详情
     * 16.5 删除文件
     * 16.6 获取文件访问URL
     * 16.7 文件类型说明(支持的MIME类型)
   - 完整的请求参数、响应示例、字段说明
   - 文件类型白名单、大小限制说明
   - 调整附录章节编号为「十七」

2. 资金服务平台 FundPlatform 功能清单.md
   - 新增「4.1.3 文件管理」章节
   - 标记文件管理功能为已完成 
   - 添加实现状态说明:
     * 后端:FileRecord + FileRecordMapper + FileService + FileController
     * 前端:file.js + file.vue
     * 功能清单:12大功能点
     * 支持文件类型、存储方式、业务关联

文档与代码同步完成!
2026-02-16 09:59:21 +08:00
zhangjf
c184e649ee docs: 同步人员分配模块文档
更新内容:

1. API接口文档.md
   - 新增「四、人员分配管理接口」章节(159行)
   - 5个核心接口文档:
     * 4.1 分页查询用户分配列表(支持多条件过滤)
     * 4.2 根据部门ID查询用户列表
     * 4.3 分配用户到部门和岗位
     * 4.4 批量分配用户
     * 4.5 移除用户分配
   - 完整的请求参数、响应示例、字段说明
   - 包含部门名称、岗位名称的VO结构
   - 调整后续所有章节编号(五~十六)

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「人员分配(部门人员配置)」为已完成 
   - 添加实现状态说明:
     * 后端:UserAssignmentVO + UserAssignmentService + UserAssignmentController
     * 前端:userAssignment.js + userAssignment.vue
     * 功能清单:8大功能点
     * 批量分配、未分配筛选、职位管理

文档与代码同步完成!
2026-02-16 09:51:56 +08:00
zhangjf
25776cc9a4 docs: 同步岗位管理模块文档
更新内容:

1. API接口文档.md
   - 新增「三、岗位管理接口」章节(256行)
   - 8个核心接口文档:
     * 3.1 分页查询岗位列表(支持多条件过滤)
     * 3.2 按部门ID查询岗位列表
     * 3.3 获取所有启用的岗位列表
     * 3.4 获取岗位详情
     * 3.5 创建岗位
     * 3.6 更新岗位
     * 3.7 删除岗位
     * 3.8 更新岗位状态
   - 完整的请求参数、响应示例、字段说明
   - 调整后续所有章节编号(四~十五)

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「岗位管理(岗位定义、职责描述)」为已完成 
   - 添加实现状态说明:
     * 后端:PostMapper + PostService + PostController
     * 前端:post.js + post.vue
     * 功能清单:8大功能点
     * 部门树选择器、状态管理、职责描述

文档与代码同步完成!
2026-02-16 09:43:22 +08:00
zhangjf
2b7c43366b docs: 同步数据统计分析模块文档
更新内容:

1. API接口文档.md
   - 新增「十三、数据统计分析接口」章节(129行)
   - 13.1 获取仪表盘统计数据
     * 完整的请求参数、响应示例
     * 包含概览、收支、趋势、分布等多维度数据
   - 13.2 响应字段说明
     * 概览数据:项目数、客户数、合同数、需求工单数
     * 收支统计:总收入、总支出、净利润、应收款、逾期金额
     * 本月数据:本月收入/支出、新增项目/客户
     * 趋势数据:月度收入/支出趋势(List结构)
     * 分布数据:项目状态、支出类型、应收款状态分布
   - 调整附录章节编号为「十四」

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「4.6.5 支出统计分析」为已完成 
   - 添加实现状态说明:
     * 后端:DashboardVO + DashboardService + DashboardController
     * 前端:dashboard.js + dashboard/index.vue
     * 功能清单:概览、收支、本月、趋势、分布
     * 图表:ECharts折线图、环形饼图
     * 响应式设计

文档与代码同步完成!
2026-02-16 09:36:39 +08:00
zhangjf
39577a9b11 docs: 同步部门管理模块文档
更新内容:

1. API接口文档.md
   - 新增「二、部门管理接口」章节(229行)
   - 6个核心接口文档:
     * 2.1 获取部门树(树形结构)
     * 2.2 获取部门列表(扁平结构)
     * 2.3 获取部门详情
     * 2.4 新增部门
     * 2.5 更新部门
     * 2.6 删除部门
   - 完整的请求参数、响应示例、字段说明
   - 部门层级结构展示(children嵌套)
   - 调整后续所有章节编号(三~十三)

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「4.1.2 组织架构管理」为已完成 
   - 标记「部门管理(增删改查、层级关系)」为已完成 
   - 添加实现状态说明:
     * 后端:DeptMapper + DeptService + DeptController
     * 前端:dept.js + dept.vue
     * 功能清单:10大功能点
     * 树形结构展示
     * 层级管理、负责人管理、状态管理

文档与代码同步完成!

注意:部门管理的前后端代码早期已完成,本次仅补充文档同步。
2026-02-16 09:12:39 +08:00
zhangjf
c115a0b58c docs: 同步操作日志管理模块文档
更新内容:

1. API接口文档.md
   - 新增「十一、操作日志管理接口」章节(165行)
   - 4个核心接口文档:
     * 11.1 获取操作日志列表(分页+多条件过滤)
     * 11.2 获取操作日志详情
     * 11.3 删除操作日志
     * 11.4 批量删除操作日志
   - 11.5 操作类型说明表(8种操作类型+标签颜色)
   - 完整的请求参数、响应示例、字段说明
   - 时间格式说明(yyyy-MM-dd HH:mm:ss)
   - 调整附录章节编号为「十二」

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「操作日志记录与查询」为已完成 
   - 添加实现状态说明:
     * 后端:OperationLogMapper + OperationLogService + OperationLogController
     * 前端:operationLog.js + operationLog.vue
     * 功能清单:7大功能点
     * 操作类型:8种类型(查询/新增/更新/删除/导入/导出/登录/登出)
     * 性能监控:执行时长超时标红

文档与代码同步完成!
2026-02-16 09:08:36 +08:00
zhangjf
3dd1b88749 docs: 同步项目成员管理模块文档
更新内容:

1. API接口文档.md
   - 在「六、项目管理接口」章节新增7个项目成员管理接口:
     * 6.6 获取项目成员列表(按项目ID)
     * 6.7 获取用户的项目列表(按用户ID)
     * 6.8 获取项目成员详情
     * 6.9 添加项目成员
     * 6.10 更新项目成员
     * 6.11 移除项目成员
     * 6.12 更新成员状态
   - 完整的请求参数、响应示例、字段说明
   - 角色类型说明(pm/dev/test/finance/member)

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「4.3.2 项目关联管理」为已完成 
   - 添加实现状态说明:
     * 后端:ProjectMemberMapper + ProjectMemberService + ProjectMemberController
     * 前端:projectMember.js + projectMember.vue
     * 功能清单:7大功能点

文档与代码同步完成!
2026-02-16 09:04:06 +08:00
zhangjf
6702b92a95 docs: 同步收款记录模块文档
更新内容:

1. API接口文档.md
   - 新增「十、收款记录管理接口」章节
   - 包含5个接口文档
   - 完整的请求参数、响应示例、字段说明

2. 资金服务平台 FundPlatform 功能清单.md
   - 标记「4.7.2 收款管理」为已完成 
   - 添加实现状态说明

文档与代码同步完成!
2026-02-16 09:00:35 +08:00
zhangjf
61475dd320 docs: 添加API接口文档、数据库设计文档、部署运维文档 2026-02-15 12:09:18 +08:00
zhangjf
fccadf63c2 docs: 架构文档补充统一全局上下文GlobalContext,统筹tid/uid/uname获取和异步传递 2026-02-15 11:42:20 +08:00
zhangjf
43e6e41a4a docs: 架构文档补充HikariCP连接池和支持异步场景的UserContext封装 2026-02-15 11:35:39 +08:00
zhangjf
2a45ac0279 docs: 架构文档补充Shiro认证框架和服务调用链uid/uname传递设计 2026-02-15 10:45:16 +08:00
zhangjf
2088742543 docs: 架构文档补充Feign动态路由方案详细设计,对比DynamicDataSource方案优劣 2026-02-14 00:41:49 +08:00
zhangjf
8029ac31da docs: 架构设计文档补充多租户架构和Head日志追踪设计 2026-02-14 00:34:29 +08:00
zhangjf
15d1cb698a docs: 添加架构设计文档,包含系统架构、技术选型、数据架构、安全架构、部署方案 2026-02-14 00:19:30 +08:00
zhangjf
2033bd64dd docs: 根据功能清单生成完整需求文档,包含功能模块、数据模型、技术架构 2026-02-14 00:09:06 +08:00
zhangjf
b213592e55 Initial commit: 初始化资金服务平台项目 2026-02-13 23:54:47 +08:00