Files
iotlcm/admin-svr/README.md
MiFaZhan f7cab5ad5c
mirror-to-gitee / mirror (push) Successful in 14s
chore: 整合为单仓 iotlcm(12 个仓 → 1 个仓)
把原来 12 个独立仓合并为单仓多服务结构,各仓完整提交历史通过
read-tree 并入保留(137 个提交,blame 可追溯)。

目录:
  admin-svr/ admin-ui/ app/{server,app}/ openapi/ worker-svr/
  upstream-chan/ upstream-proxy/ sms/ bot/ docs/ onelink-mock/ deploy/

同时:
- 新增根 README(目录说明、快速开始、源码构建、镜像发布、许可)
- 新增根 Makefile(make build / test / images / docs)
- 新增根 .gitattributes / .gitignore,删掉 12 份重复的 Apache LICENSE
  (admin-ui/ 与 app/app/ 的 MIT 上游许可保留)
- 各服务的 .gitea/workflows 收敛到仓根:trigger-jenkins.yml(tag 构建全部
  服务)+ mirror-to-gitee.yml(自动建 Gitee 仓后镜像)
- 文档内跨仓绝对链接改为仓内相对路径;部署/构建文档改为单仓路径
2026-11-02 13:35:58 +08:00

103 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# iotlcm-admin-svr
iotLCM 物联网卡全生命周期管理平台的**管理后台服务** —— 承载客户门户、卡信息管理、通信管理、资费管理、告警工单、统计分析与系统治理。
配套前端:同仓 [`admin-ui/`](../admin-ui)。
## 特性
- **卡资产管理**:卡信息、库存、安装、达量断网、批量开停复机
- **通信管理**:卡 / 模组 / 设备三域管理,通道与模板治理
- **资费与交易**:套餐、订单、账单、余额账户与结算批次
- **告警与工单**:报警、待办、故障、工单与规则引擎
- **账号治理**:组织、用户、角色、权限与 API 凭证
- **异步协作**:耗时操作投递到 RabbitMQ,由同仓 [`worker-svr/`](../worker-svr) 执行
- **定时任务**:`sys_job` 表驱动的调度(流量同步、状态同步、账单等)
## 技术栈
- Go 1.25 + GoFrame v2
- MySQL(业务库)、Redis(缓存与队列)、RabbitMQ(异步任务)
- JWT(会话与接口鉴权)
## 快速开始
```bash
cd server
cp config/config.example.yaml config/config.yaml
# 按需填写数据库、Redis、RabbitMQ、JWT 等环境变量
go mod tidy
go run .
```
默认监听 `:8199`。接口文档:
```text
http://127.0.0.1:8199/api.json # OpenAPI 契约
http://127.0.0.1:8199/swagger # SwaggerUI
```
## 配置
将 `server/config/config.example.yaml` 复制为运行时的 `server/config/config.yaml`;`server/config/config_default.yaml` 保存默认值。**公开版里的凭据与地址使用环境变量占位符**:
| 配置项 | 占位 | 说明 |
| --- | --- | --- |
| `jwt.signingKey` | `${JWT_SIGNING_KEY}` | 令牌签发密钥 |
| `database.default.link` | `${DB_DSN}` | 业务库 |
| `redis.default.address` / `pass` | `127.0.0.1:6379` / `${REDIS_PASSWORD}` | 缓存 |
> ⚠️ **部署注意**:`jwt.signingKey` 若使用示例值,登录态与接口令牌将无法跨服务校验。正式部署务必通过环境变量注入真实密钥。
## 初始化数据
`server/storage/data/xiu_admin.sql` 是**框架基座初始化数据**(系统菜单、字典、角色、示例管理员),是运行起点的必要输入。
> **表结构以部署编排为准** —— 开箱可用的建库建表脚本在同仓 [`deploy/schema/init.sql`](../deploy/schema/init.sql)(95 张表 + 种子数据),接口契约见同仓 [`docs/`](../docs)。
## 目录结构
```text
iotlcm-admin-svr/
├── server/
│ ├── api/ # API 契约(system / iot / agent 等)
│ ├── internal/
│ │ ├── controller/ # 控制器
│ │ ├── logic/ # 业务逻辑
│ │ ├── service/ # 服务接口
│ │ ├── model/ consts/ # 模型与常量
│ │ ├── dao/ # 数据访问
│ │ └── library/ # 公共库
│ ├── utility/ # 工具(含启动 banner)
│ ├── config/ # 配置
│ ├── build/ # Dockerfile 与镜像内配置
│ └── storage/data/ # 初始化数据
└── docs/ # 补充说明
```
## 容器化构建
```bash
cd server
docker build -f build/Dockerfile -t iotlcm-admin-svr:latest .
```
镜像内不含任何凭据;`config/config.yaml` 以只读方式挂载覆盖。
## 测试
```bash
cd server
go test ./...
```
## 相关项目
- [`admin-ui/`](../admin-ui) —— 管理前端
- [`openapi/`](../openapi) —— 对外 API 网关
- [`worker-svr/`](../worker-svr) —— 异步执行
## License
[Apache License 2.0](./LICENSE)