---
# System prepended metadata

title: 需求文档

---

## 会员小程序需求文档

### 业务场景概述

该项目主要围绕会员场景，用于进出某个封闭赛车场。整个产品链路上只有三类用户，个人会员、车队会员、超级管理员：

- 普通用户可以付费成为【个人会员】，以及展示出入场所的二维码。【个人会员】存在有效期，临近有效期时需要续费才能延续会员权益。
- 个人会员可以付费加入车队成为【车队会员】，加入车队的费用是一次性的，期限为永久。但是如果要更换车队，需要再付一次费用。
- 超级管理员在后管端对会员信息进行修改与审核。

前端分为【小程序端】和【后台管理端】 2 个部分，二者共用一个后端。

#### 小程序端

##### 加入会员页面

会员信息填写页面。该页面主要分为三个部分：

- 个人基本信息由用户输入
- 付款

![image](https://hackmd.io/_uploads/ryA84H8ZC.png)



##### 会员页面

在该页面展示基本信息，会员个人信息页面（仅显示、不可编辑）

- 姓名
- 手机号
- 身份证
- 有效期
- 所属车队
- 角色

除以上信息外，在该页面可以加入/更换车队（更换时需额外付费），也可以续费。

在该页面可出示【临时二维码】（1分钟后过期），给保安扫码验证。（保安可以是任何人，无特殊权限）

![image](https://hackmd.io/_uploads/SkClGVLZC.png)


##### 管理员页面

~~管理员页面实际上也是会员页面，区别在于展示的信息更少，仅显示名字、手机号和角色，点击“扫码”按钮可以开启扫码。扫码即向后端请求会员信息，能够返回会员信息则代表通过，若无返回信息则显示“二维码无效”页面。~~


##### 【活动】功能



---

#### 后管端

使用 Rails 实现，对样式无要求，表单表格能保持左右居中即可。

由于后管端不对外开放，~~因此不需要对用户进行登录鉴权。能够防止普通黑客攻击即可。~~ 因此进行简单的密码登录即可，不需要提供图形化的注册、修改密码界面。

- 会员独立页面，以列表的形式显示会员信息，包含姓名、手机号、身份证、有效期、所属车队、职务角色，提供搜索框进行模糊搜索。支持增删改查。

- 车队独立页面，以列表的形式显示车队信息，包含车队名称、负责人姓名，负责人联系电话，不需要提供搜索框。支持增删改查。

- ~~管理员独立页面，以列表的形式显示管理员的信息，包含姓名、手机号、身份证、有效期、管理权限，不需要提供搜索框。支持增删改查。~~

付款列表，仅展示。

所有列表全量显示，不需要分页


---

### 业务字段

```

name:string*                    // 姓名
wechatID:string                // 微信号
phone:string*                // 手机号
idNumber:string*             // 身份证
effectiveTime:时间戳            // 会员有效截至日期
club:string*                  // 所属车队
role:number*                   // 角色

// 付款列表，只会存成功的订单
payList:object[{
    name, phone, time:时间戳, wechatID, orderID: string
}]
    
clubList:string[]             // 车队列表
```