VIP福利
主页 > 淘客/网店/商城 > 会议管理系统源码
会议管理系统源码

109 0 未知

会议管理系统源码

  发布时间:2026-10-09 15:08:41

分类 淘客/网店/商城

价格:¥1200VIP¥1080SVIP¥960

购买数量: (库存:充足)

免登录购买

扫描二维码轻松支付

模板效果图
  • 模板介绍
  • 下载记录
  • 用户评价
分享商品可得佣金【120元】 点击参与
# 会议管理系统 (Meeting Management System)

一套基于 **PHP + MySQL** 的全功能会议管理系统,适用于大型论坛、峰会、学术会议、政府大会、合作伙伴大会、经销商大会、产业大会、行业大会、发布会、招商会、培训会等场景。

## 功能特性

### 核心功能
- ✅ **会议管理** - 多会议创建、发布、状态管理、当前会议切换
- ✅ **会议报名** - 在线报名、自定义字段、票种管理、重复报名检测
- ✅ **会议核销** - 二维码扫码核销、手动核销、核销记录、实时统计
- ✅ **会议信息管理** - 会议介绍、时间地点、联系方式、封面Banner
- ✅ **会议资讯管理** - 新闻/通知/媒体报道、富文本、置顶、浏览统计
- ✅ **专家管理** - 演讲嘉宾信息、演讲主题、个人简介
- ✅ **参会管理** - 报名审核、人员列表、CSV导出、状态管理
- ✅ **会议介绍** - 富文本详情页、主办方/协办方信息
- ✅ **展商管理** - 展商信息、展位号、分类筛选
- ✅ **会议议程** - 多日议程、分会场、时间轴展示
- ✅ **资料下载** - 文件上传、分类管理、下载统计
- ✅ **单/多会议切换** - 后台一键切换当前操作会议
- ✅ **发票管理** - 发票申请、开票状态、企业/个人发票
- ✅ **酒店预定** - 酒店/房型管理、在线预定、房量控制
- ✅ **接送机及车辆预定** - 接机/送机/摆渡车/包车、座位管理
- ✅ **会议座次** - 区域管理、自动生成座位、可视化分配
- ✅ **个性化会议日程及座次** - 参会人添加个人日程、查看专属座位
- ✅ **会议首页** - 移动端H5首页、功能入口、资讯/议程展示
- ✅ **小程序部署** - 完整RESTful API,支持微信小程序对接
- ✅ **二维码扫描访问** - 报名生成二维码、扫码核销
- ✅ **后台字段自定义** - 会议/参会人/专家/展商字段可自定义

### 技术栈
- **后端**: PHP 7.4+ / PDO (原生PHP,无框架依赖)
- **数据库**: MySQL 5.7+ / 8.0+ (utf8mb4)
- **前端**: 原生 HTML/CSS/JavaScript (响应式)
- **移动端**: H5 页面 (可嵌入小程序 webview)
- **API**: RESTful JSON 接口

## 目录结构

```
meeting-system/
├── install.php              # 安装向导(自带 install.lock 重复执行保护,安装后请删除)
├── index.php                # 入口(跳转移动端)
├── .htaccess                # Apache重写规则
├── config/
│   ├── database.php         # 数据库配置
│   ├── wechat.php           # 微信小程序配置
│   └── app.php              # 应用环境配置(env/debug/签到密钥/版本号)
├── database/
│   ├── schema.sql           # 建表脚本(34 表,数据库结构真值源)
│   ├── seed.sql             # 示例数据(默认管理员 admin / admin123)
│   └── upgrade_v*.sql       # 版本升级脚本(由 admin/upgrade.php 执行)
├── includes/
│   ├── bootstrap.php        # 引导文件(含生产环境错误处理)
│   ├── app.php              # 应用配置读取
│   ├── db.php               # 数据库操作类(全预处理 + 标识符白名单)
│   ├── auth.php             # 后台管理员认证类(含限流/权限分级)
│   ├── member_auth.php      # 前台会员认证类(Session)
│   ├── token.php            # 会员 API Token 服务(哈希落库 + 过期)
│   ├── csrf.php             # CSRF 防护(写操作必须 POST + 同源/Token)
│   ├── rate_limit.php       # 登录失败限流
│   ├── signin_token.php     # 签到二维码签名(密钥外置,全项目唯一实现)
│   ├── payment.php          # 支付服务类
│   ├── payment_verify.php   # 支付回调验签(微信v2/v3、支付宝RSA2、第三方HMAC)
│   ├── functions.php        # 通用函数
│   └── custom_fields.php    # 自定义字段类
├── api/                     # API接口(供小程序/H5调用)
│   ├── meeting.php          # 会议接口
│   ├── registration.php     # 报名接口
│   ├── member.php           # 会员接口(微信登录/手机号登录/注册/资料/改密)
│   ├── payment.php          # 支付接口(下单/支付参数/状态查询/模拟支付[仅dev])
│   ├── payment_callback.php # 支付回调(微信/支付宝/第三方,全部验签)
│   ├── checkin.php          # 核销接口(需后台账号登录)
│   ├── signin.php           # 签到接口(自助扫码/工作人员扫码/签到记录/统计)
│   ├── exhibitor.php        # 展商自助报名接口
│   ├── content.php          # 内容接口(专家/展商/议程/资讯/资料)
│   └── service.php          # 服务接口(酒店/车辆/发票/座次/日程)
├── admin/                   # 后台管理
│   ├── login.php            # 登录
│   ├── index.php            # 仪表盘
│   ├── meetings.php         # 会议管理
│   ├── attendees.php        # 报名管理
│   ├── checkin.php          # 核销管理
│   ├── signin.php           # 扫码签到管理
│   ├── signin_qrcode.php    # 签到二维码(大屏显示)
│   ├── attendee_schedules.php # 人员日程管理
│   ├── inspection_routes.php  # 考察线路管理
│   ├── attendee_inspections.php # 人员考察管理
│   ├── upload.php           # 图片上传接口
│   ├── experts.php          # 专家管理
│   ├── exhibitors.php       # 展商管理
│   ├── agenda.php           # 议程管理
│   ├── news.php             # 资讯管理
│   ├── downloads.php        # 资料管理
│   ├── hotels.php           # 酒店预定
│   ├── transport.php        # 接送机/车辆
│   ├── invoices.php         # 发票管理
│   ├── seating.php          # 座次管理
│   ├── fields.php           # 自定义字段
│   ├── system_config.php    # 系统配置(仅超级管理员)
│   ├── payment_configs.php  # 支付接口配置(仅超级管理员)
│   ├── payment_orders.php   # 支付订单
│   ├── meeting_sessions.php # 场次管理
│   ├── liaisons.php         # 联络员管理
│   ├── upgrade.php          # 数据库版本升级执行器(仅超级管理员)
│   └── users.php            # 管理员管理(仅超级管理员)
├── miniprogram/             # 微信小程序(原生,23 页,详见 miniprogram/README.md)
├── mobile/                  # 移动端H5
│   ├── index.php            # 会议首页
│   ├── register.php         # 报名页
│   ├── agenda.php           # 议程页
│   ├── experts.php          # 专家页
│   ├── exhibitors.php       # 展商页
│   ├── news.php             # 资讯列表
│   ├── news_detail.php      # 资讯详情
│   ├── downloads.php        # 资料下载
│   ├── my.php               # 我的(报名/日程/服务)
│   ├── hotel.php            # 酒店预定
│   ├── transport.php        # 接送机
│   ├── seating.php          # 我的座位
│   ├── invoice.php          # 申请发票
│   ├── signin.php           # 扫码签到(我的签到凭证)
│   ├── scan_signin.php      # 自助扫码签到(扫描工作人员二维码)
│   ├── inspection.php       # 考察线路选择
│   ├── login.php            # 登录/注册
│   ├── logout.php           # 退出登录
│   └── checkin.php          # 扫码核销
├── assets/
│   ├── css/admin.css        # 后台样式
│   └── css/mobile.css       # 移动端样式
└── uploads/                 # 上传文件目录
```

## 快速部署

### 方式一:安装向导(推荐)

1. 将 `meeting-system` 目录上传到网站根目录
2. 确保目录可写(`config/`、`uploads/`)
3. 浏览器访问 `http://你的域名/install.php`
4. 填写数据库信息和管理员账号,点击安装
5. 安装完成后**删除 install.php**
6. 访问 `http://你的域名/admin/` 登录后台

### 方式二:手动安装

1. 创建数据库并导入:
```bash
mysql -u root -p -e "CREATE DATABASE meeting_system DEFAULT CHARACTER SET utf8mb4"
mysql -u root -p meeting_system < database/schema.sql
mysql -u root -p meeting_system < database/seed.sql
```

2. 修改 `config/database.php` 中的数据库连接信息

3. 生成管理员密码哈希并更新数据库:
```bash
php -r "echo password_hash('你的密码', PASSWORD_DEFAULT);"
```
然后执行 SQL:
```sql
UPDATE sys_users SET password='上面生成的哈希' WHERE username='admin';
```

4. 设置目录权限:
```bash
chmod -R 755 meeting-system
chmod -R 777 meeting-system/uploads
chmod -R 777 meeting-system/config
```

### Nginx 配置示例

```nginx
server {
listen 80;
server_name your-domain.com;
root /var/www/meeting-system;
index index.php;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# 禁止访问敏感目录
location ~ ^/(config|database|includes|logs)/ { deny all; }

client_max_body_size 50M;
}
```

### 宝塔面板部署

1. 宝塔面板 → 网站 → 添加站点
2. PHP版本选择 7.4 或更高
3. 将源码上传到网站根目录
4. 数据库 → 创建数据库(记录用户名密码)
5. 访问 `http://域名/install.php` 完成安装
6. 安装后删除 install.php
7. 软件商店 → 安装 PHP 扩展:`pdo_mysql`、`gd`(二维码用)

## 访问地址

- **后台管理**: `http://你的域名/admin/`
- **移动端H5**: `http://你的域名/mobile/`
- **API接口**: `http://你的域名/api/`

## API 接口文档

所有接口返回统一格式:
```json
{ "code": 0, "msg": "ok", "data": {} }
```
`code=0` 表示成功,非0表示失败。

### 会议接口 `api/meeting.php`

| 参数 | 说明 |
|------|------|
| `?action=list` | 会议列表 |
| `?action=detail&id=1` | 会议详情 |
| `?action=home&id=1` | 会议首页数据 |
| `?action=current` | 当前会议 |

### 报名接口 `api/registration.php`

| 参数 | 说明 |
|------|------|
| `?action=register` (POST) | 提交报名 |
| `?action=info&phone=xxx` | 查询报名信息 |
| `?action=detail&id=1` | 报名详情 |
| `?action=ticket&code=xxx` | 凭票号查询 |
| `?action=fields&mid=1` | 获取报名自定义字段 |

### 核销接口 `api/checkin.php`

**所有动作都要求后台账号登录**(未登录返回 401),避免票号被枚举后批量核销或拉取参会人隐私。

| 参数 | 说明 |
|------|------|
| `?action=verify&code=xxx` | 验证票号 |
| `?action=checkin&code=xxx` (POST) | 执行核销 |
| `?action=logs&mid=1` | 核销记录 |
| `?action=stats&mid=1` | 核销统计 |

### 签到接口 `api/signin.php`

支持两种签到方式:**参会人员自助扫码签到**(扫描工作人员大屏幕二维码)和**工作人员扫码签到**(扫描参会人员票号二维码)。

**参会人员端接口:**

| 参数 | 说明 |
|------|------|
| `?action=qrcode_info&mid=1&day=1&session=xxx&token=xxx` | 获取签到二维码信息(验证token有效性),可同时传 phone/member_id/openid 获取我的签到状态 |
| `?action=self_signin` (POST) | 自助扫码签到,参数:mid, day, session, token, phone/member_id/openid |
| `?action=my_logs&mid=1&phone=138xxx` | 获取我的签到记录 |
| `?action=my_status&mid=1&day=1&phone=138xxx` | 获取我的签到状态(某天/场次) |

**工作人员端接口:**

| 参数 | 说明 |
|------|------|
| `?action=staff_signin` (POST) | 工作人员扫码签到,参数:ticket_code, day, session, operator_id |
| `?action=verify&ticket_code=Txxx` | 验证票号(不签到,返回参会人信息和签到记录) |
| `?action=logs&mid=1&day=1&page=1` | 签到记录列表,支持 keyword/type 筛选 |
| `?action=stats&mid=1&day=1` | 签到统计(总人数/签到数/签到率/按签到方式统计) |
| `?action=day_stats&mid=1` | 按天统计签到人数 |
| `?action=cancel&id=1` (POST) | 取消签到记录 |

**签到方式 signin_type:**
- `self_scan` - 自助扫码(参会人员扫工作人员二维码)
- `qrcode` - 工作人员扫码(扫参会人员票号二维码)
- `manual` - 手动签到
- `face` - 人脸签到

**安全机制:** 签到二维码包含 token,每天自动更新,算法为 HMAC-SHA256,密钥取自 `config/app.php` 的 `signin_secret`(**上线前务必改成随机值**),防止截图伪造。

**身份要求:** 自助签到 / 我的签到记录 必须携带有效会员 token;验票、签到记录、统计、取消签到 需后台账号登录。

### 内容接口 `api/content.php`

通过 `module` 参数区分:`expert`/`exhibitor`/`agenda`/`news`/`download`

| 参数 | 说明 |
|------|------|
| `?module=expert&action=list&mid=1` | 专家列表 |
| `?module=agenda&action=list&mid=1` | 议程列表 |
| `?module=news&action=list&mid=1` | 资讯列表 |
| `?module=download&action=get&id=1` | 下载文件 |

### 服务接口 `api/service.php`

通过 `module` 参数区分:`hotel`/`transport`/`invoice`/`seating`/`schedule`

| 参数 | 说明 |
|------|------|
| `?module=hotel&action=list&mid=1` | 酒店列表 |
| `?module=hotel&action=book` (POST) | 预定酒店 |
| `?module=transport&action=list&mid=1` | 车辆列表 |
| `?module=seating&action=map&mid=1` | 座位图 |
| `?module=schedule&action=list&attendee_id=1` | 个人日程 |
| `?module=schedule&action=add` (POST) | 添加日程 |

## 微信小程序对接指南

### 1. 小程序端调用 API

```javascript
// app.js 中配置 API 基础地址
const BASE_URL = 'https://your-domain.com/api';

// 封装请求
function request(action, data = {}, method = 'GET') {
return new Promise((resolve, reject) => {
wx.request({
url: `${BASE_URL}/${action.file}?action=${action.name}`,
method,
data,
success: res => resolve(res.data),
fail: reject
});
});
}

// 获取会议列表
request({file: 'meeting.php', name: 'list'}).then(res => {
console.log(res.data);
});

// 提交报名
request({file: 'registration.php', name: 'register'}, {
meeting_id: 1,
name: '张三',
phone: '13800138000',
company: '某某公司'
}, 'POST').then(res => {
console.log('报名成功,票号:', res.data.ticket_code);
});
```

### 2. 小程序扫码核销

```javascript
// 调用微信扫码
wx.scanCode({
success: (res) => {
const code = res.result.split('code=')[1]; // 从URL提取票号
request({file: 'checkin.php', name: 'checkin'}, {code}, 'POST').then(r => {
wx.showToast({title: r.msg, icon: r.code === 0 ? 'success' : 'none'});
});
}
});
```

### 3. 小程序 webview 嵌入 H5

可直接在小程序中使用 `` 嵌入移动端H5页面:
```xml

```

### 4. 二维码生成

报名成功后返回的 `qrcode_image` 字段即为二维码图片URL,可直接在小程序中展示:
```xml

```

## 自定义字段使用

后台 → 自定义字段 → 选择实体类型(会议/参会人/专家/展商)→ 添加字段

支持的字段类型:
- `text` 单行文本
- `textarea` 多行文本
- `number` 数字
- `date` / `datetime` 日期/时间
- `select` 下拉选择
- `radio` 单选
- `checkbox` 多选
- `email` / `phone` / `url` 邮箱/手机/链接
- `file` / `image` 文件/图片

字段可设置为**全局**(所有会议共用)或**仅当前会议**。

## 安全建议

1. 安装完成后立即删除 `install.php`
2. 修改默认管理员账号和密码
3. 数据库使用强密码,不要使用 root
4. 配置 HTTPS(SSL证书)
5. `config/` 目录设置禁止外部访问
6. 定期备份数据库
7. 上传目录限制可执行文件访问

## 数据库表说明

共 34 张数据表(以 `database/schema.sql` 为准),核心表:
- `meetings` - 会议表
- `attendees` - 参会人员/报名表
- `experts` - 专家表
- `exhibitors` - 展商表
- `agenda` - 议程表
- `news` - 资讯表
- `downloads` - 资料下载表
- `invoices` - 发票表
- `hotels` / `hotel_rooms` / `hotel_bookings` - 酒店相关
- `vehicles` / `transport_bookings` - 车辆相关
- `seating_zones` / `seats` - 座次相关
- `personal_schedules` - 个人日程
- `checkin_logs` - 核销记录
- `custom_fields` / `custom_field_values` - 自定义字段
- `sys_users` - 系统管理员
- `ticket_types` - 票种
- `meeting_page_configs` - 首页配置
- `payment_configs` / `payment_orders` - 支付配置 / 支付订单
- `members` / `member_tokens` - 参会用户 / 会员登录Token
- `login_attempts` - 登录失败限流
- `system_config` - 系统配置(含 `db_version` 数据库版本号)
- `exhibitor_products` - 展商产品
- `meeting_sessions` - 会议场次

## 技术支持

- PHP版本要求:7.4+ (推荐 8.0+)
- MySQL版本:5.7+ (推荐 8.0+)
- 需开启 PDO MySQL 扩展
- 需开启 GD 扩展(如使用本地二维码生成)

---

**默认账号**: admin / admin123(**首次登录后请立即修改密码**)

## 版本升级

老版本升级到新版本不需要手工执行 SQL,后台已内置升级执行器:

1. **备份数据库**(必须)
2. 用新代码覆盖旧代码(`config/` 目录不要覆盖)
3. 用超级管理员登录后台 → **系统 → 版本升级**
4. 页面会列出「当前数据库版本 → 代码版本」之间待执行的升级脚本,确认后一键执行
5. 执行结果逐条展示(成功/跳过),版本号写入 `system_config.db_version`

也可手工执行:

```bash
mysql -u root -p meeting_system < database/upgrade_v2.0_to_v2.1.sql
```

升级脚本均为幂等写法(`CREATE TABLE IF NOT EXISTS` / `ON DUPLICATE KEY UPDATE`),重复执行不会破坏数据。

> 升级链:v1.0 → v1.1 → v1.2 → v1.3 → v1.4 → … → v2.0 → v2.1。
> 其中 v1.1→v1.2、v1.2→v1.3 无独立结构变更,保留为占位脚本以保证链条完整。

## 生产环境清单(部署前逐项确认)

- [ ] `install.php` 已删除,`install.lock` 已生成
- [ ] `config/app.php` 的 `signin_secret` 已改为随机值(`php -r "echo bin2hex(random_bytes(16));"`)
- [ ] 默认管理员密码 `admin123` 已修改
- [ ] `APP_ENV` 保持 `production`(模拟支付接口会被硬拒绝)
- [ ] 支付方式已在「支付配置」里填入真实商户参数并启用(未配置=回调一律拒绝)
- [ ] Nginx 已 deny `config/`、`database/`、`includes/`、`logs/`,且 `uploads/` 禁止执行 PHP:

```nginx
location ~ ^/(config|database|includes|logs)/ { deny all; }
location ^~ /uploads/ { location ~ \.php$ { deny all; } }
```

- [ ] `logs/` 目录可写(支付回调日志、审计日志写在这里)
- [ ] 已配置 HTTPS

暂无下载记录
    暂无商品评价

热门模板

30元会员卡

2023-03-16   浏览:196

一年会员卡

2023-03-15   浏览:187

永久激活码

2023-03-16   浏览:181

商协会官网管理系统源码

2026-10-09   浏览:110

商协会管理系统源码

2026-10-09   浏览:110