zhangjf
|
fe51e87c17
|
fix: 调整服务部署脚本
- 启动脚本路径改为 bin 目录
- 只更新服务jar和fund-common*.jar,不再全量覆盖lib目录
|
2026-02-23 15:08:04 +08:00 |
|
zhangjf
|
1e346c3a2e
|
feat: 添加生产环境部署脚本
- deploy-config.sh: 部署配置文件(服务器信息、路径配置)
- deploy-mobile.sh: 移动端部署脚本
- deploy-admin.sh: 管理后台部署脚本
- deploy-service.sh: 服务部署脚本(只更新lib目录)
- deploy-all.sh: 全量部署脚本
|
2026-02-23 15:03:14 +08:00 |
|
zhangjf
|
bd5f8ab468
|
fix: 数据库脚本与实体类一致性修复 + fund-admin Nginx子路径部署支持
1. 数据库脚本修复:
- fund_sys_init.sql: sys_config表添加group_code/group_name/sort_order/remark字段
- fund_proj_init.sql: 添加requirement表(需求工单)
- fund_exp_init.sql: 添加fund_expense表缺失字段
- 删除重复的doc/requirement.sql
2. fund-admin Nginx子路径部署支持:
- 新增.env.development/.env.production环境配置
- vite.config.ts支持VITE_BASE动态base路径
- router使用import.meta.env.BASE_URL
- API baseURL使用环境变量
- deploy-frontend-nginx.sh支持/fadmin部署前缀
3. 架构文档更新:
- 数据库设计文档新增4.4实体类与SQL脚本同步规范
- 新增4.5自动化检查机制
|
2026-02-23 00:12:39 +08:00 |
|
zhangjf
|
797feff8c2
|
feat: fund-gateway增加/fund context path
修改内容:
1. fund-gateway/application.yml:
- 所有路由Path添加/fund前缀
- StripPrefix从1改为2(剥离/fund和模块名两级)
- 例:/fund/sys/... -> 转发到 /api/v1/sys/...
2. 前端API配置:
- fund-admin/src/api/request.ts: baseURL改为'/fund'
- fund-mobile/src/api/request.ts: baseURL改为'/fund'
3. Nginx部署脚本:
- 添加/fund/路径代理配置
- 保留/api/代理兼容旧版
API调用示例:
- 旧版:/sys/auth/login
- 新版:/fund/sys/auth/login
网关路由:
- /fund/sys/** -> lb://fund-sys/api/v1/sys/**
- /fund/cust/** -> lb://fund-cust/api/v1/cust/**
- ...
|
2026-02-22 22:24:20 +08:00 |
|
zhangjf
|
69556c047a
|
feat: 日志目录使用INSTANCE_NAME区分多实例
问题:多实例部署时,APP_NAME相同导致日志互相覆盖
- 实例1: fund-sys (普通租户)
- 实例2: fund-sys-vip (VIP租户)
- 日志都写入 /datacfs/applogs/fund-sys/ ❌
修改:
- start.sh:
- 添加 -Dapp.instance.name=${INSTANCE_NAME} 参数
- 日志目录改为 ${LOG_HOME}/${INSTANCE_NAME}
- logback-spring.xml (9个服务):
- APP_NAME source改为 app.instance.name
- 默认值保持服务名用于fallback
效果:
- 实例1: /datacfs/applogs/fund-sys/info.log
- 实例2: /datacfs/applogs/fund-sys-vip/info.log ✅
|
2026-02-22 21:14:48 +08:00 |
|
zhangjf
|
480bd796f4
|
refactor: 将LOG_HOME移至env.properties统一管理
- env.properties: 添加LOG_HOME配置项
- start.sh: LOG_HOME从环境变量读取,提供默认值fallback
优势:
- 日志路径集中配置,便于统一修改
- 不同环境可配置不同日志目录
- 启动脚本无需修改即可适应不同环境
|
2026-02-22 21:02:33 +08:00 |
|
zhangjf
|
88bb3193e5
|
fix: 修复日志路径重复问题
问题:LOG_HOME已包含服务名,logback又加APP_NAME导致重复
- start.sh: LOG_HOME="/datacfs/applogs/${INSTANCE_NAME}"
- logback: ${LOG_PATH}/${APP_NAME}/info.log
- 结果: /datacfs/applogs/fund-gateway/fund-gateway/info.log
修复:
- start.sh: LOG_HOME改为"/datacfs/applogs"(不含服务名)
- logback会自动添加APP_NAME子目录
- 结果: /datacfs/applogs/fund-gateway/info.log
多租户场景:
- 通过传入不同的logging.file.path区分实例日志
- 如 -Dlogging.file.path=/datacfs/applogs/fund-sys-vip001
|
2026-02-22 20:58:09 +08:00 |
|
zhangjf
|
ca1d0edd56
|
fix: 移除启动命令中的日志格式参数,避免shell解析错误
问题:
- LOG_PATTERN包含特殊字符(百分号、方括号等)
- 通过-D参数传递导致shell解析错误
修改:
- start.sh: 移除LOG_LEVEL_ROOT/LOG_LEVEL_APP/LOG_PATTERN参数
只保留logging.file.path用于指定日志目录
- logback-spring.xml: 日志格式改为直接配置
使用<property>而非<springProperty>
- env.properties: 更新注释说明日志配置由logback管理
优势:
- 启动命令简洁,无特殊字符解析问题
- 日志配置统一在logback-spring.xml管理
- 避免shell注入风险
|
2026-02-22 20:52:46 +08:00 |
|
zhangjf
|
1f30315a2f
|
refactor: 将conf目录加入classpath,移除spring.config.location参数
- start.sh:
- ClassPath改为 lib/*:conf
- 移除CONFIG_OPTS参数
- Spring Boot自动从classpath加载配置文件
优势:
- 启动命令更简洁
- 配置文件作为classpath资源自动加载
- 符合Spring Boot标准做法
|
2026-02-22 20:37:20 +08:00 |
|
zhangjf
|
2184dce6a8
|
refactor: 优化打包结构,主JAR放入lib目录并带版本号
- pom.xml: 移除finalName配置,JAR保留版本号
- assembly.xml: 主JAR放入lib目录(useProjectArtifact=true)
- start.sh: 简化启动逻辑
- ClassPath统一为 lib/*
- 无需单独匹配主JAR文件名
- 只需配置MAIN_CLASS即可启动
优势:
- 主JAR带版本号便于版本识别和升级
- 所有JAR统一放lib目录,结构清晰
- 启动脚本更简洁,无需APP_NAME匹配JAR
|
2026-02-22 20:30:28 +08:00 |
|
zhangjf
|
a4aa4b4156
|
feat: 优化打包方式为普通JAR+依赖分离
- pom.xml:
- 添加finalName配置去除版本号
- maven-jar-plugin排除资源文件
- 禁用spring-boot-maven-plugin repackage
- 各服务移除冗余的plugin配置
- assembly.xml:
- 主JAR放根目录(仅服务代码)
- lib目录放依赖JAR
- start.sh:
- 支持java -cp classpath模式启动
- 从service.properties读取MAIN_CLASS
- 向后兼容fat jar模式
- service.properties:
- 所有服务添加MAIN_CLASS配置
优势:
- 主JAR从131MB缩小到103KB
- 多服务部署可共享lib目录
- 资源文件外置便于修改
|
2026-02-22 20:22:27 +08:00 |
|
zhangjf
|
b8044c3769
|
fix: 修复Assembly打包与启动脚本JAR查找问题
- assembly.xml: 主JAR放到根目录,移除lib目录
- Spring Boot fat jar已包含所有依赖
- 避免依赖JAR冗余和混淆
- start.sh: 优化JAR文件查找逻辑
- 优先查找根目录: ${APP_HOME}/${APP_NAME}.jar
- fallback到lib目录(向后兼容)
- 添加JAR_FILE到启动日志输出
|
2026-02-22 20:03:29 +08:00 |
|
zhangjf
|
8190887de8
|
feat: 数据库脚本优化、前端部署脚本、租户ID支持
- 数据库脚本优化
- 新增01_create_user.sql创建fundsp用户
- 新增02_grant_user.sql授权脚本
- 新增fund_exp_init.sql、fund_receipt_init.sql
- 修复SQL脚本与实体类一致性
- 密码更新为fundSP@123
- 前端部署脚本
- 新增build-frontend.sh前端构建脚本
- 新增deploy-frontend-nginx.sh Nginx部署脚本
- 打包输出到deploy目录
- 租户ID支持
- fund-admin/fund-mobile支持query参数读取tid
- 新增tenant.ts store管理租户状态
- 请求拦截器添加X-Tenant-Id header
- 启动脚本修复
- 修复INSTANCE_NAME变量替换问题
- 更新所有service.properties配置
- 配置更新
- 更新所有服务数据库密码
- 更新docker-compose.yml配置
|
2026-02-22 19:45:52 +08:00 |
|
zhangjf
|
1225d8387e
|
feat: 配置文件分离为统一配置和个性化配置
- 新增service.properties:每个服务独立的个性化配置
- APP_NAME: 服务名称
- INSTANCE_NAME: 实例名称(多租户场景)
- TENANT_ID: 租户标识
- env.properties:所有服务共用的统一配置
- Nacos/Redis/日志等公共参数
- 加载顺序:先env.properties,后service.properties(个性化覆盖统一)
- 更新assembly.xml:service.properties打包到conf目录
- 更新启动脚本:统一使用load_properties函数加载配置
|
2026-02-22 16:10:03 +08:00 |
|
zhangjf
|
dd8de5d96e
|
refactor: APP_NAME从JAR文件自动推断
- APP_NAME不再写在env.properties,而是从lib/*.jar自动推断
- env.properties只保留INSTANCE_NAME和TENANT_ID(多租户场景使用)
- 所有脚本(start.sh/stop.sh/status.sh)统一从JAR文件获取APP_NAME
- 避免打包后所有服务的env.properties都一样导致APP_NAME冲突
|
2026-02-22 15:59:53 +08:00 |
|
zhangjf
|
3e73b6c086
|
feat: 脚本支持多租户实例部署
- env.properties新增APP_NAME、INSTANCE_NAME、TENANT_ID配置
- APP_NAME: 服务名称(对应JAR文件名)
- INSTANCE_NAME: 实例名称(区分多租户实例,用于日志目录和PID文件)
- TENANT_ID: 租户标识(用于Nacos元数据路由)
- start.sh传递spring.application.name和TENANT_ID参数
- stop.sh和status.sh同步支持INSTANCE_NAME
|
2026-02-22 15:46:09 +08:00 |
|
zhangjf
|
faded43266
|
refactor: 统一日志配置到logback-spring.xml
- logback-spring.xml从环境变量读取日志级别和格式
- 移除各服务application.yml中的logging配置
- env.properties添加LOG_PATH、LOG_LEVEL_ROOT、LOG_LEVEL_APP参数
- 启动脚本start.sh传递日志相关JVM参数
- assembly.xml将env.properties打包到conf目录
|
2026-02-22 15:36:04 +08:00 |
|
zhangjf
|
cb0affa2cf
|
refactor: 补充env.properties配置参数覆盖
- 新增Redis连接池配置参数
- 新增Hikari连接池公共配置参数
- 新增Sentinel配置参数
- 新增网关限流配置参数
- 新增腾讯云COS配置参数
- 新增文件上传配置参数
- 各服务application.yml引用对应环境变量
|
2026-02-22 15:25:17 +08:00 |
|
zhangjf
|
2557cac757
|
refactor: 统一配置参数到env.properties
- 更新env.properties,添加Nacos/Redis/日志/多租户等公共配置
- 各服务application.yml使用环境变量引用公共配置
- 数据库配置保持独立,不纳入统一配置
|
2026-02-22 15:19:48 +08:00 |
|
zhangjf
|
dfce5b0566
|
refactor: 统一脚本管理,优化Assembly打包配置
- 将各服务脚本统一到项目根目录scripts目录
- Assembly配置引用根目录scripts,避免重复
- 脚本自动从目录名推断服务名称
- 排除docker相关配置文件(application-docker.yml)
- 新增env.properties环境变量配置模板
- 更新单机部署文档至v2.1
|
2026-02-22 14:43:41 +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
|
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 |
|