135 lines
5.7 KiB
Markdown
135 lines
5.7 KiB
Markdown
# 管理员操作指南(ADMIN_GUIDE)
|
||
|
||
> 本指南只讲在 NocoDB 里怎么点。不需要懂技术,照着做即可。
|
||
> 所有操作都在 NocoDB 的 `AlistAccess` 工作区里完成,系统会自动处理后续。
|
||
|
||
---
|
||
|
||
## 第一部分:给顾客开账号 + 授权(3 步)
|
||
|
||
> 顺序:先建顾客 → 再建购买记录 → 再挂产品。
|
||
|
||
### 第 1 步 — 建顾客(Customers 表)
|
||
|
||
打开 `Customers` 表,点「+新增记录」,**按顺序填**:
|
||
|
||
| 顺序 | 栏位 | 必填 | 怎么填 |
|
||
|---|---|---|---|
|
||
| 1 | `username` | ✅ | 顾客登录用的账号名,**不能重复** |
|
||
| 2 | `password` | ✅ | 顾客的登录密码 |
|
||
| 3 | `display_name` | 选填 | 顾客显示名(顾客姓名等)|
|
||
| 4 | `email` | 选填 | 顾客邮箱 |
|
||
| 5 | `status` | ✅ | 先选 `active`(顾客马上能用)|
|
||
|
||
> **填完会看到**:保存后,下面几个栏位(`alist_user_id`、`alist_role_id`、`sync_status`)
|
||
> 会被系统自动填上,`sync_status` 变成 `synced`。这是正常的,不用管。
|
||
>
|
||
> **注意**:如果 `status` 先选 `pending`(还没决定卖什么),系统不会建账号。
|
||
> 等你后面改成 `active` 才会正式开账号。
|
||
|
||
### 第 2 步 — 记购买(Purchases 表)
|
||
|
||
打开 `Purchases` 表,点「+新增记录」,**期望填写**:
|
||
|
||
| 栏位 | 必填 | 怎么填 |
|
||
|---|---|---|
|
||
| `customer` | ✅ | 选第 1 步那个顾客 |
|
||
| `product` | ✅ | 选顾客买的产品 |
|
||
| `purchase_date` | 选填 | 购买日期 |
|
||
| `amount` | 选填 | 金额 |
|
||
| `payment_method` | 选填 | 付款方式 |
|
||
| `order_id` | 选填 | 订单号 |
|
||
| `notes` | 选填 | 备注 |
|
||
|
||
> 这份是**记账留档**用,填不填都不影响顾客能不能看文件。
|
||
|
||
### 第 3 步 — 挂产品(CustomerProducts 表)
|
||
|
||
> **这步才是真正让顾客「看得到文件」的关键。**
|
||
|
||
打开 `CustomerProducts` 表,点「+新增记录」,**按顺序填**:
|
||
|
||
| 顺序 | 栏位 | 必填 | 怎么填 |
|
||
|---|---|---|---|
|
||
| 1 | `customer` | ✅ | 选第 1 步那个顾客 |
|
||
| 2 | `product` | ✅ | 选他买的产品 |
|
||
| 3 | `start_at` | 选填 | 开始日期 |
|
||
| 4 | `expires_at` | ✅ | 到期日期(**到期当天就失效**)|
|
||
| 5 | `status` | ✅ | 选 `active` |
|
||
|
||
> **填完会看到**:顾客登录后就能看到这个产品对应的文件夹。
|
||
> 到了 `expires_at` 那天,权限自动失效。
|
||
>
|
||
> **一个顾客可以有多条** CustomerProducts:买几个产品就建几条,权限会全加起来。
|
||
|
||
---
|
||
|
||
## 第二部分:准备产品(Products + Resources,2 步)
|
||
|
||
> 顺序:先建资源(文件夹)→ 再建产品(打包)。
|
||
|
||
### 第 1 步 — 建资源(Resources 表)
|
||
|
||
打开 `Resources` 表,点「+新增记录」,**按顺序填**:
|
||
|
||
| 顺序 | 栏位 | 必填 | 怎么填 |
|
||
|---|---|---|---|
|
||
| 1 | `name` | ✅ | 给人看的名字(如「Forex 课程」)|
|
||
| 2 | `alist_path` | ✅ | 文件夹路径,以 `/` 开头,如 `/Class/Forex` |
|
||
|
||
> **注意**:`alist_path` 必须是真实存在的文件夹路径,填错顾客会打不开。
|
||
|
||
### 第 2 步 — 建产品(Products 表)
|
||
|
||
打开 `Products` 表,点「+新增记录」,**按顺序填**:
|
||
|
||
| 顺序 | 栏位 | 必填 | 怎么填 |
|
||
|---|---|---|---|
|
||
| 1 | `name` | ✅ | 产品名(如「Python Basic」)|
|
||
| 2 | `status` | ✅ | 选 `active` |
|
||
| 3 | `Resources` | ✅ | 勾选这个产品**包含**的资源(可勾多个)|
|
||
|
||
> **填完会看到**:以后在「第一部分第 3 步」给顾客挂这个产品时,
|
||
> 产品里勾选的资源路径会一次性算给顾客。
|
||
|
||
---
|
||
|
||
## 附:Customers 的 status 怎么选
|
||
|
||
| status | 意思 | 顾客能看文件吗 | 什么时候用 |
|
||
|---|---|---|---|
|
||
| `pending` | 还没正式开通 | ❌ | 刚建顾客、还没卖产品时 |
|
||
| `active` | 正常使用 | ✅ | 顾客在使用中 |
|
||
| `suspended` | 暂时停权 | ❌ | 欠费 / 有问题暂时停 |
|
||
| `expired` | 整户到期 | ❌ | 顾客服务整体结束 |
|
||
| `deleted` | 停用(保留记录)| ❌ | 不合作了但想留历史 |
|
||
|
||
- 只要不是 `active`,顾客就登不进去、也看不到文件。
|
||
- 改回 `active`,系统会自动算**现在还有效**的产品权限(已经过期的不会回来)。
|
||
|
||
---
|
||
|
||
## 附 2:到期后会发生什么(重要)
|
||
|
||
系统**每 5 分钟自动扫一次**所有顾客的到期日(`CustomerProducts.expires_at`),
|
||
**到期当天**(当天就算到期)就会把这些产品对应的文件夹权限从顾客身上移除——
|
||
**这一步是全自动的,不用管理员做任何操作**(2026-08-28 定案:维持此行为,不做自动停用/通知)。
|
||
|
||
| 项目 | 实际行为 |
|
||
|---|---|
|
||
| 文件权限 | 到期当天自动移除,顾客再也打不开任何文件夹 ✅ |
|
||
| 账号 | **不冻结**——顾客仍能登录,但登录进去目录是空的、什么都看不到 |
|
||
| `Customers.status` | 不会自动改,仍显示 `active`(正常现象,权限其实已移除) |
|
||
| 通知 | 不会自动发任何通知,管理员自行留意 `expires_at` 即可 |
|
||
|
||
> **要连登录都不让他进**(退款 / 违规 / 明确不续约):
|
||
> 手动把 `Customers.status` 改成 `suspended` 或 `expired`,系统**马上**冻结账号(登不进去)。
|
||
|
||
> **续费 / 恢复**:把 `CustomerProducts.expires_at` 改到新日期(或新增一条记录),权限自动恢复。
|
||
> 若之前手动冻结过(status 不是 `active`),记得先把 status 改回 `active`。
|
||
|
||
> **顾客反馈「能登录但里面什么都没有」**:先查他的 `CustomerProducts.expires_at`,
|
||
> 十有八九是到期了。要么改 `expires_at` 续费,要么说明服务已结束。
|
||
> 如果 `expires_at` 还没到但看不到东西:查该产品 `Products.status` 是否 `active`、
|
||
> Resource 的 `alist_path` 是否填对(必须真实存在的 `/` 开头路径)。
|