feat: Kotlin+Solon 重构医院前置机(业务+被控端+Agent+升级流程)
主程序(com.hospital.front): - Kotlin 2.0.21 + Solon 3.10.7 + MyBatis-Plus + HikariCP + Logback - HospitalAdapter 策略模式:5 家医院(xinglongyuan/qingyang/ningxia/yanan/jinghe)+ dev Mock - 三方言 Mapper:bsm(Oracle)/ nx / ya(SqlServer),存储过程参数原样迁移 - 20 个业务接口(/order/*)+ 11 个被控端接口(/api/admin/*,Token 鉴权+脱敏+防穿越) - 全局异常处理、Result 统一响应、业务开关热更新 Agent(com.hospital.agent,独立进程,单 jar 双 main): - WebSocket 主动出站连 B 端(指数退避重连),心跳转发主程序健康 - ProcessGuard 看门狗:3 次探测失败自动拉起主程序 - UpgradeCommand:下载→SHA256 校验→备份→替换→拉起→健康检查→失败自动回滚 - 命令分发:PING/日志/配置/重启等 10 类命令 部署(pac/): - Windows Server 脚本(start.bat/agent.bat/WinSW 服务),纯 ASCII 注释防 GBK 错乱 - 5 家医院配置模板 + agent.properties Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 外置配置示例(部署时拷贝到 conf\)
|
||||
|
||||
> **使用流程**:
|
||||
> 1. 首次部署:把整个 `conf-example\` 目录拷贝为 `conf\`
|
||||
> ```
|
||||
> xcopy /E /I conf-example conf
|
||||
> ```
|
||||
> 2. 编辑 `conf\app-{编码}.yml`,把 `CHANGE_ME` 替换为真实密码(或通过环境变量注入)
|
||||
> 3. 根据实际部署环境修改 `hospital.id`、数据库 URL 等
|
||||
>
|
||||
> **本目录不入 Git**(已在 `.gitignore` 中声明 `pac/conf/*.yml`)。
|
||||
|
||||
## 5 家医院配置清单
|
||||
|
||||
| 医院 | 文件 | 数据库 | 默认端口 | `hm.type` |
|
||||
|---|---|---|---|---|
|
||||
| 兴隆园医院 | `app-xinglongyuan.yml` | Oracle | 8082 | `bsm` |
|
||||
| 庆阳医院 | `app-qingyang.yml` | Oracle | 8082 | `bsm` |
|
||||
| 宁夏宝石花医院 | `app-ningxia.yml` | SqlServer | 8082 | `nx` |
|
||||
| 延安医院 | `app-yanan.yml` | SqlServer | 8082 | `ya` |
|
||||
| 泾河医院 | `app-jinghe.yml` | Oracle | 8082 | `bsm` |
|
||||
|
||||
## 切换医院
|
||||
|
||||
```batch
|
||||
# 启动泾河(默认)
|
||||
bin\start.bat start
|
||||
|
||||
# 启动其他医院
|
||||
set HOSPITAL=xinglongyuan
|
||||
bin\start.bat start
|
||||
```
|
||||
|
||||
## 环境变量占位
|
||||
|
||||
配置文件中使用 `${ENV_VAR:DEFAULT}` 占位语法,例如:
|
||||
```yaml
|
||||
password: ${DB_PWD_JINGHE:CHANGE_ME}
|
||||
```
|
||||
|
||||
启动前设置环境变量(推荐,避免明文写密码):
|
||||
```batch
|
||||
set DB_PWD_JINGHE=ActualPassword
|
||||
bin\start.bat start
|
||||
```
|
||||
|
||||
> **安全提示**:
|
||||
> 1. 部署后 `chmod 600` 整个 `conf\` 目录(Linux)或 `Set-Acl`(Windows PowerShell)
|
||||
> 2. **不要**把包含真实密码的 yml 提交到 Git
|
||||
Reference in New Issue
Block a user