chore: 初始开源发布

iotlcm-app:小程序端 + 用户端服务。

- app/:uni-app 小程序前端(基于 unibest,MIT)
  - 微信 AppID → YOUR_WX_APPID,uni-app AppID → __UNI__YOURAPPID
  - 内网后端地址 → admin.iotlcm.example.com
  - 应用标题与 unibest 模板 README 重写(保留上游致谢与 MIT 声明)
- server/:GoFrame 用户端服务(基于 XiuAdmin,Apache-2.0)
  - module xiuadmin → git.5iot.com/iotlcm-public/iotlcm-app(360 文件)
  - 支付回调地址 → app.iotlcm.example.com,商户名与应用名泛化
  - 真实手机号 → 合法 11 位编造号(保留号段前 3 位 + 后 4 位)
  - 依赖号码尾部的断言同步更新
  - 补 server/LICENSE(Apache-2.0)
- 移除内部资产:CI 触发器
- 补根 README,LF 行尾 + .gitattributes

已知:TestSysDept_RefreshDeptAncestors 在源仓同一提交上同样失败,属既有缺陷。
This commit is contained in:
MiFaZhan
2026-10-26 14:01:25 +08:00
commit 2ed5dfa6a1
1013 changed files with 138466 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
# iotlcm-app
iotLCM 物联网卡全生命周期管理平台的**小程序端 + 用户端服务**。
- `app/` —— uni-app 小程序前端(基于 [unibest](https://github.com/unibest-tech/unibest),MIT)
- `server/` —— 用户端 GoFrame 服务(基于 XiuAdmin 框架,Apache-2.0)
配套管理后台:[iotlcm-admin-svr](https://git.5iot.com/iotlcm-public/iotlcm-admin-svr) / [iotlcm-admin-ui](https://git.5iot.com/iotlcm-public/iotlcm-admin-ui)
## 特性
**小程序端**(`app/`)
- 公开查卡:输入卡号即可查状态、流量、到期时间
- 卡片详情与用量曲线(日/月分库)
- 一键诊断:拍卡号或手输,问题排查直达
- 账号体系:组织下个人账号、角色权限
**用户端服务**(`server/`)
- 小程序端的业务后端:卡映射、诊断、订单、余额、消息、工单
- 独立于管理后台的用户域数据与权限
- 对接上游通道完成真实查卡与诊断
## 技术栈
- 前端:uni-app + Vue 3 + TypeScript + Vite 5 + UnoCSS + wot-ui + z-paging
- 后端:Go 1.25 + GoFrame v2 + MySQL + Redis
## 快速开始
### 后端
```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.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。