f7cab5ad5c
mirror-to-gitee / mirror (push) Successful in 14s
把原来 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 仓后镜像)
- 文档内跨仓绝对链接改为仓内相对路径;部署/构建文档改为单仓路径
110 lines
3.6 KiB
Markdown
110 lines
3.6 KiB
Markdown
# iotlcm-app
|
||
|
||
iotLCM 物联网卡全生命周期管理平台的**小程序端 + 用户端服务**。
|
||
|
||
- `app/` —— uni-app 小程序前端(基于 [unibest](https://github.com/unibest-tech/unibest),MIT)
|
||
- `server/` —— 用户端 GoFrame 服务(基于 XiuAdmin 框架,Apache-2.0)
|
||
|
||
配套管理后台:同仓 [`admin-svr/`](../admin-svr) / [`admin-ui/`](../admin-ui)
|
||
|
||
## 特性
|
||
|
||
**小程序端**(`app/`)
|
||
|
||
- 公开查卡:输入卡号即可查状态、流量、到期时间
|
||
- 卡片详情与用量曲线(日/月分库)
|
||
- 一键诊断:拍卡号或手输,问题排查直达
|
||
- 账号体系:组织下个人账号、角色权限
|
||
|
||
**用户端服务**(`server/`)
|
||
|
||
- 小程序端的业务后端:卡映射、诊断、订单、余额、消息、工单
|
||
- 独立于管理后台的用户域数据与权限
|
||
- 对接上游通道完成真实查卡与诊断
|
||
|
||
## 技术栈
|
||
|
||
- 前端:uni-app + Vue 3 + TypeScript + Vite 5 + UnoCSS + wot-ui + z-paging
|
||
- 后端:Go 1.25 + GoFrame v2 + MySQL + Redis
|
||
|
||
## 快速开始
|
||
|
||
### 后端
|
||
将 `server/config/config.example.yaml` 复制为 `server/config/config.yaml` 并填写自己的凭据;使用代码生成前同样将 `server/hack/config.example.yaml` 复制为 `server/hack/config.yaml`。
|
||
|
||
|
||
```bash
|
||
cd server
|
||
go mod tidy
|
||
go run .
|
||
```
|
||
|
||
默认监听 `:8199`。
|
||
|
||
### 小程序前端
|
||
|
||
```bash
|
||
cd app
|
||
pnpm install
|
||
pnpm dev:mp-weixin # 微信小程序,产物用微信开发者工具打开 dist/dev/mp-weixin
|
||
```
|
||
|
||
## 配置
|
||
|
||
| 位置 | 说明 |
|
||
| --- | --- |
|
||
| `server/config/config.example.yaml` | 后端配置(**公开版凭据为占位符**) |
|
||
| `app/env/.env*` | 前端环境变量(**公开版 AppID 为占位符**) |
|
||
|
||
后端配置占位:
|
||
|
||
| 配置项 | 占位 |
|
||
| --- | --- |
|
||
| `database.default.link` | `mysql:${DB_USER}:${DB_PASSWORD}@tcp(${DB_HOST}:3306)` |
|
||
| `redis.default.address` / `pass` | `${REDIS_ADDR}` / `${REDIS_PASSWORD}` |
|
||
| `jwt.signingKey` | `${JWT_SIGNING_KEY}` |
|
||
|
||
前端配置占位:
|
||
|
||
| 变量 | 占位 |
|
||
| --- | --- |
|
||
| `VITE_WX_APPID` | `YOUR_WX_APPID` |
|
||
| `VITE_UNI_APPID` | `__UNI__YOURAPPID` |
|
||
| `VITE_MP_SERVER_BASEURL` | `https://admin.iotlcm.example.com/app/api/v1` |
|
||
|
||
## 目录结构
|
||
|
||
```text
|
||
iotlcm-app/
|
||
├── app/ # uni-app 小程序前端
|
||
│ ├── src/pages/ # 页面(首页、查卡、诊断、登录等)
|
||
│ ├── src/constant/ # 常量与路由定义
|
||
│ ├── env/ # 环境变量
|
||
│ └── src/static/logo.svg # 应用图标
|
||
└── server/ # GoFrame 用户端服务
|
||
├── api/ # API 契约(app / common / gen)
|
||
├── internal/
|
||
│ ├── logic/app/ # 用户端业务逻辑
|
||
│ ├── model/ consts/ # 模型与常量
|
||
│ └── utility/ # 工具(含启动 banner)
|
||
├── config/ # 配置
|
||
└── storage/data/ # 框架基座初始化数据
|
||
```
|
||
|
||
## 初始化数据
|
||
|
||
`server/storage/data/xiu_admin.sql` 是框架基座初始化数据(系统菜单、字典、角色、示例账号),是运行起点的必要输入。
|
||
|
||
> **数据库 schema 不随本仓发布** —— 生产库的完整 DDL 已过时,请按需自建表结构。
|
||
|
||
## 上游与许可
|
||
|
||
| 部分 | 上游 | 许可 |
|
||
| --- | --- | --- |
|
||
| `app/` | [unibest](https://github.com/unibest-tech/unibest) | MIT(见 [`app/LICENSE`](./app/LICENSE)) |
|
||
| `server/` | XiuAdmin(GoFrame 中后台框架基座) | Apache-2.0(见 [`server/LICENSE`](./server/LICENSE)) |
|
||
|
||
## License
|
||
|
||
根目录 [LICENSE](./LICENSE) 为 Apache-2.0。
|