目录
系统介绍
系统概述
笨鸟SaaS会员通用系统是一款面向多租户场景的会员管理解决方案,支持租户独立运营、数据隔离、灵活计费。系统采用前后端分离架构,基于Vue3 + PHP + MySQL技术栈,提供完整的会员管理、消费计费、积分体系、数据统计等功能。
核心特性
- 多租户架构:支持多租户独立运营,数据完全隔离
- 灵活计费:支持按时计费、单次计费等多种计费模式
- 积分体系:消费自动累积积分,支持积分兑换
- 会员等级:自定义会员等级和折扣率
- 数据统计:实时统计报表,趋势图表分析
- 权限管理:基于角色的权限控制,细粒度功能授权
- 主题切换:支持明暗主题切换,提升用户体验
适用场景
- 健身房会员管理
- 美容院会员系统
- 娱乐场所计费管理
- 培训机构学员管理
- 其他需要会员管理的场景
功能模块
1. 数据报表(Dashboard)
功能说明:展示系统核心运营数据,包括会员统计、交易统计、趋势图表。
主要指标:
- 会员总数
- 今日新增会员
- 今日充值金额
- 今日消费金额
- 今日积分兑换
图表展示:
- 周趋势折线图(充值/消费趋势)
- 月度交易柱状图
- 会员等级分布饼图
- 积分兑换趋势图
2. 会员管理(Members)
2.1 会员列表
功能说明:展示所有会员信息,支持搜索、筛选、编辑。
会员信息:
- 卡号/手机号
- 姓名
- 联系电话
- 会员等级
- 账户余额
- 积分数量
- 加入时间
- 最后消费时间
2.2 会员详情
功能说明:查看会员详细信息,包括基本信息、交易记录、消费统计。
详细信息:
- 基本信息(姓名、电话、身份证)
- 账户信息(余额、积分、等级)
- 交易记录(充值、消费、积分变动)
- 消费统计(累计消费、消费次数)
2.3 创建会员
功能说明:快速注册新会员,支持自定义卡号。
必填信息:
- 姓名
- 电话
- 会员等级
- 初始金额(可选)
3. 会员充值(Recharge)
功能说明:为会员账户充值,支持多种充值方式。
充值流程:
- 输入卡号/手机号搜索会员
- 查看会员当前余额
- 输入充值金额
- 确认充值
- 查看充值结果
充值记录:
- 自动记录充值交易
- 显示充值时间、金额、操作员
4. 消费扣费(Consume)
功能说明:处理会员消费,支持多种计费模式。
计费模式:
- 按时计费:根据消费时长计算费用
- 单次计费:固定单次消费金额
消费流程:
- 输入卡号/手机号搜索会员
- 选择计费模式
- 输入消费时长/次数
- 系统自动计算费用
- 应用会员折扣(如有)
- 确认消费
- 自动累积积分
会员折扣:
- 根据会员等级自动应用折扣率
- 显示折扣金额和实际支付金额
5. 积分扣除(Points Deduct)
功能说明:扣除会员积分,用于积分兑换场景。
扣除流程:
- 输入卡号/手机号搜索会员
- 查看会员当前积分
- 输入扣除积分数量
- 输入扣除原因
- 确认扣除
6. 交易记录(Transactions)
功能说明:查看所有交易记录,支持按会员、按操作员查询。
交易类型:
- 充值记录
- 消费记录
- 积分扣除记录
- 初始存款记录
查询方式:
- 按会员卡号查询
- 按操作员密码查询(租户操作员)
7. 会员计费(Billing)
功能说明:实时计时计费管理,支持多会员同时计费。
计费功能:
- 开始计费:记录开始时间
- 结束计费:计算消费时长和费用
- 实时显示:当前计费状态和预估费用
8. 生日提醒(Birthday)
功能说明:展示今日生日会员列表,便于营销关怀。
提醒信息:
- 会员姓名
- 联系电话
- 会员等级
- 账户余额
9. 系统设置(Settings)
9.1 基础设置
- 系统名称
- 系统Logo
- 主题模式(明亮/暗黑)
- 允许自定义卡号
9.2 会员等级设置
- 自定义等级名称
- 设置折扣率
- 添加/删除等级
9.3 计费设置
- 每小时费率
- 单次费率
- 默认计费模式
9.4 积分设置
- 启用/禁用积分功能
- 积分兑换比例(每消费1元累积积分)
9.5 数据管理
- 导出系统数据(JSON格式)
- 导入系统数据
10. 系统管理(System Admin)
功能说明:超级管理员专用模块,管理租户和套餐。
10.1 租户管理
- 创建租户
- 编辑租户信息
- 停用/启用租户
- 查看租户状态
10.2 套餐管理
- 创建套餐
- 设置套餐功能
- 设置套餐价格
- 分配套餐给租户
10.3 订单管理
- 查看租户订单
- 处理订单状态
用户角色与权限
1. 超级管理员(Super Admin)
角色定位:系统级管理员,负责整体运营管理。
权限范围:
- 数据报表(全局统计)
- 交易记录(所有租户)
- 会员列表(所有租户)
- 生日提醒(所有租户)
- 系统设置(全局配置)
- 系统管理(租户、套餐、订单)
不可见功能:
- 会员管理(创建、编辑)
- 会员充值
- 消费扣费
- 积分扣除
- 会员计费
- 按操作员查询
- 积分设置
- 数据导出导入
2. 租户操作员(Tenant Operator)
角色定位:租户级操作员,负责日常业务操作。
权限范围:
- 根据套餐分配的功能权限
- 仅限本租户数据操作
典型权限:
- 会员管理
- 会员充值
- 消费扣费
- 积分扣除
- 交易记录(本租户)
- 会员计费
- 系统设置(本租户)
3. 权限控制机制
3.1 功能权限
基于套餐功能列表控制:
- 套餐包含的功能代码列表
- 操作员只能使用套餐允许的功能
3.2 数据权限
基于租户ID隔离:
- 所有数据表包含
tenant_id字段 - 查询时自动过滤租户ID
- 超级管理员可查看全局数据
安装部署
1. 环境要求
| 组件 | 版本要求 |
|---|---|
| PHP | 7.3+ |
| MySQL | 5.7+ |
| Apache/Nginx | 任意版本 |
| 浏览器 | Chrome/Firefox/Edge |
2. 安装步骤
2.1 部署文件
- 将系统文件部署到Web服务器目录
- 配置Web服务器指向
index.html
2.2 配置数据库
编辑 api/db.php 文件:
define('DB_HOST', 'localhost'); // 数据库主机
define('DB_NAME', 'member_system'); // 数据库名称
define('DB_USER', 'root'); // 数据库用户名
define('DB_PASS', '123456'); // 数据库密码
2.3 初始化数据库
访问初始化脚本:
http://localhost/api/init_db.php
http://localhost/api/init_features.php
http://localhost/api/init_plans.php
http://localhost/api/init_permissions.php
2.4 创建超级管理员
访问 api/create_super_admin.php 创建超级管理员账号。
3. 目录结构
WWW/
├── index.html # 主应用页面
├── tenant_login.html # 租户登录页面
├── api/
│ ├── index.php # API路由入口
│ ├── db.php # 数据库配置
│ ├── tenant_context.php # 租户上下文
│ ├── members_mysql.php # 会员API
│ ├── config_mysql.php # 配置API
│ ├── transactions_mysql.php # 交易API
│ ├── stats_mysql.php # 统计API
│ ├── csrf_protection.php # CSRF保护
│ └── init_*.php # 初始化脚本
├── uploads/ # 上传文件目录
├── sessions/ # Session存储目录
└── logs/ # 日志目录
使用指南
1. 登录系统
1.1 超级管理员登录
访问地址:http://localhost/index.html
- 输入用户名和密码
- 系统验证后进入主界面
1.2 租户操作员登录
访问地址:http://localhost/tenant_login.html
- 输入租户名称
- 输入用户名和密码
- 系统验证后跳转到主界面
2. 日常操作流程
2.1 新会员注册
- 进入"会员管理"模块
- 填写会员信息
- 选择会员等级
- 设置初始金额(可选)
- 点击"创建会员"
2.2 会员充值
- 进入"会员充值"模块
- 输入卡号或手机号
- 查看会员信息
- 输入充值金额
- 确认充值
2.3 会员消费
- 进入"消费扣费"模块
- 输入卡号或手机号
- 选择计费模式
- 输入消费时长或次数
- 系统自动计算费用
- 确认消费
3. 数据管理
3.1 导出数据
- 进入"系统设置"模块
- 点击"导出数据"
- 系统生成JSON文件
- 下载保存
3.2 导入数据
- 进入"系统设置"模块
- 选择JSON文件
- 点击"导入数据"
- 系统恢复数据
技术架构
1. 前端架构
| 技术 | 说明 |
|---|---|
| Vue 3 | 前端框架 |
| Tailwind CSS | UI样式框架 |
| Font Awesome | 图标库 |
| Chart.js | 图表库 |
2. 后端架构
| 技术 | 说明 |
|---|---|
| PHP 7.3+ | 后端语言 |
| MySQL | 数据库 |
| PDO | 数据库连接 |
| RESTful API | API设计风格 |
3. 安全机制
| 机制 | 说明 |
|---|---|
| CSRF保护 | 防止跨站请求伪造 |
| 租户隔离 | 数据完全隔离 |
| 权限控制 | 基于角色的权限 |
| 密码加密 | 安全存储密码 |
API接口
1. 会员接口
获取会员列表
GET /api/members
参数: tenant_id (租户ID)
返回: 会员列表数组
搜索会员
GET /api/members?cardId={cardId}
参数: cardId (卡号)
返回: 会员信息对象
创建会员
POST /api/members
参数: name, phone, level, balance, tenant_id
返回: 创建结果
2. 交易接口
充值
POST /api/members
参数: action=recharge, cardId, amount, tenant_id
返回: 充值后余额
消费
POST /api/members
参数: action=consume, cardId, amount, type, tenant_id
返回: 消费后余额
积分扣除
POST /api/members
参数: action=points_deduct, cardId, points, tenant_id
返回: 扣除后积分
3. 统计接口
概览统计
GET /api/stats?type=overview
参数: tenant_id (租户ID)
返回: 统计数据对象
周趋势
GET /api/stats?type=weekly
参数: tenant_id (租户ID)
返回: 周趋势数据数组
4. 配置接口
获取配置
GET /api/config
参数: tenant_id (租户ID)
返回: 配置对象
保存配置
POST /api/config
参数: systemName, memberLevels, billingSettings, tenant_id
返回: 保存结果
数据库结构
1. 核心表结构
members(会员表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| card_id | VARCHAR(50) | 卡号 |
| name | VARCHAR(100) | 姓名 |
| phone | VARCHAR(20) | 电话 |
| id_card | VARCHAR(20) | 身份证 |
| level | VARCHAR(20) | 会员等级 |
| balance | DECIMAL(10,2) | 余额 |
| points | INT | 积分 |
| status | VARCHAR(20) | 状态 |
| tenant_id | INT | 租户ID |
| created_at | TIMESTAMP | 创建时间 |
transactions(交易表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| card_id | VARCHAR(50) | 卡号 |
| amount | DECIMAL(10,2) | 金额 |
| type | VARCHAR(20) | 交易类型 |
| description | TEXT | 描述 |
| operator_id | INT | 操作员ID |
| tenant_id | INT | 租户ID |
| timestamp | TIMESTAMP | 交易时间 |
tenants(租户表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| name | VARCHAR(100) | 租户名称 |
| plan | VARCHAR(50) | 套餐名称 |
| status | VARCHAR(20) | 状态 |
| created_at | TIMESTAMP | 创建时间 |
plans(套餐表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| name | VARCHAR(50) | 套餐名称 |
| features | JSON | 功能列表 |
| price | DECIMAL(10,2) | 价格 |
admin_users(管理员表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键 |
| username | VARCHAR(50) | 用户名 |
| password | VARCHAR(255) | 密码 |
| real_name | VARCHAR(100) | 真实姓名 |
| role | VARCHAR(20) | 角色 |
| tenant_id | INT | 租户ID |
| status | VARCHAR(20) | 状态 |
2. 交易类型说明
| 类型 | 说明 | amount值 |
|---|---|---|
| recharge | 充值 | 正数 |
| consumption | 消费 | 负数 |
| points_deduct | 积分扣除 | 负数 |
| initial_deposit | 初始存款 | 正数 |
常见问题
1. 登录问题
Q: 登录后刷新页面数据丢失?
A: 检查浏览器是否禁用了localStorage,系统使用localStorage存储登录状态。
Q: 租户登录失败?
A: 检查租户状态是否为"active",租户名称是否正确。
2. 数据问题
Q: 超级管理员看不到数据?
A: 超级管理员应不传递租户ID,检查前端请求是否正确。
Q: 会员等级显示为"?????
A: 检查memberLevels配置是否正确加载,等级ID是否匹配。
3. 权限问题
Q: 功能模块不显示?
A: 检查用户套餐是否包含该功能,权限是否正确分配。
Q: 无法保存配置?
A: 检查CSRF验证是否通过,请求是否携带正确的token。
4. 性能问题
Q: 页面加载缓慢?
A: 检查数据库连接是否正常,数据量是否过大。
Q: 图表不显示?
A: 检查Chart.js是否正确加载,数据是否正确返回。
技术支持
如有问题,请检查以下日志文件:
api/logs/csrf.log- CSRF验证日志api/logs/error.log- 错误日志
下载地址:saas.benniaooffice.com_C384J.tar.gz
提取码:
演示地址:http://saas.benniaooffice.com
版本信息
- 版本: 1.0.0
- 发布日期: 2026-06-11
- 技术栈: Vue 3 + PHP 7.3 + MySQL 5.7


评论(0)