# 动遇
**Repository Path**: whpa24soft/buddy
## Basic Information
- **Project Name**: 动遇
- **Description**: 动遇搭子是一款面向高校大学生的校园结伴微信小程序,致力于帮助同学们快速找到志同道合的搭子伙伴,参与各类校园活动。平台涵盖活动发布、浏览推荐、报名参与、私信沟通、用户评价等完整链路,包括轻社交平台、兴趣圈层,线上玩伴、学伴匹配、娱乐组队为校园社交与活动组队提供一站式解决方案。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 105
- **Forks**: 0
- **Created**: 2026-06-03
- **Last Updated**: 2026-08-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 动遇搭子
### 校园结伴微信小程序
面向大学生的校园搭子匹配与活动组队平台,支持活动发布、首页推荐、动态互动、报名参加、私信聊天、个人资料维护和基础后台管理。






---
## 项目概览
| 项目 | 说明 |
| --- | --- |
| 项目名称 | 动遇搭子 |
| 项目定位 | 校园搭子匹配与活动组队平台 |
| 项目组成 | `client` 微信小程序客户端 + `dongyu02` Spring Boot 后端服务 |
| 目标用户 | 高校大学生 |
| 适用场景 | 课程设计、校园社交项目、小程序全栈开发实践 |
| 当前版本 | 本地开发版 |
## 目录
| 模块 | 内容 |
| --- | --- |
| [项目简介](#项目简介) | 项目背景、业务目标、系统组成 |
| [项目亮点](#项目亮点) | 项目核心特色 |
| [业务流程](#业务流程) | 从登录到活动评价的使用链路 |
| [功能特性](#功能特性) | 小程序端与后端服务能力 |
| [页面预览](#页面预览) | 小程序页面路径与页面说明 |
| [技术栈](#技术栈) | 前后端、数据库与构建工具 |
| [项目结构](#项目结构) | `client` 与 `dongyu02` 目录说明 |
| [后端接口](#后端接口) | 后端接口模块与接口前缀 |
| [数据库说明](#数据库说明) | 数据库名、核心表与补充脚本 |
| [快速开始](#快速开始) | 环境准备与数据库创建 |
| [后端运行](#后端运行) | Spring Boot 服务启动方式 |
| [小程序运行](#小程序运行) | 微信开发者工具导入与调试 |
| [常见配置](#常见配置) | 后端地址、数据库账号、活动状态 |
| [开发规范](#开发规范) | 项目开发与调试约定 |
| [License](#license) | 项目使用说明 |
## 项目简介
大学生在校园生活中经常会遇到临时找不到同伴的问题,例如约球、自习、干饭、出游、游戏开黑或参加活动。动遇搭子通过微信小程序降低使用门槛,用户登录后即可浏览推荐活动、发布自己的组队需求,并通过收藏、关注、报名和聊天完成进一步沟通。
项目后端使用 Spring Boot 提供 REST 接口,主要负责微信登录、用户信息、活动发布、首页推荐、动态互动、收藏报名、私信聊天、积分和后台管理等业务。小程序端位于 `client` 目录,后端服务位于 `dongyu02` 目录。
## 项目亮点
| 亮点 | 说明 |
| --- | --- |
| 微信小程序入口 | 无需安装独立 App,适合校园轻量化使用场景 |
| 活动瀑布流推荐 | 首页以卡片形式展示活动内容,视觉更轻松 |
| 活动完整链路 | 覆盖发布、浏览、详情、报名、收藏、点赞和评价 |
| 私信沟通 | 用户可以围绕活动进一步沟通组队细节 |
| 关注关系 | 支持关注感兴趣的用户,并查看其活动内容 |
| 管理能力 | 提供用户管理、活动下架和平台统计等基础后台能力 |
## 业务流程
```text
微信登录
↓
完善个人资料
↓
浏览首页推荐 / 动态广场
↓
发布活动 / 收藏活动 / 报名参加
↓
私信沟通组队细节
↓
活动评价与积分记录
```
## 功能特性
### 小程序端
| 功能 | 说明 |
| --- | --- |
| 微信登录 | 通过微信 `code` 换取用户身份,开发阶段提供兜底登录逻辑 |
| 首页推荐 | 展示活动瀑布流卡片,支持从真实活动数据中读取推荐内容 |
| 活动发布 | 填写活动标题、类型、地点、时间、人数、预算和需求说明后发布活动 |
| 动态广场 | 浏览活动动态,支持点赞、取消点赞、查看详情和报名参加 |
| 活动详情 | 查看活动发布者、活动时间、地点、人数、热度和报名情况 |
| 私信聊天 | 支持用户之间发送消息、查看会话列表和读取历史消息 |
| 个人中心 | 维护头像、昵称、手机号、地址和兴趣标签等资料 |
| 我的活动 | 查看自己发布、收藏、报名过的活动 |
| 关注功能 | 关注感兴趣的用户,并查看关注用户发布的活动 |
| 积分评价 | 支持积分记录和活动评价相关功能 |
| 管理页面 | 提供用户列表、封禁用户、下架活动和平台统计等基础管理能力 |
### 后端服务
| 能力 | 说明 |
| --- | --- |
| REST API | 为小程序端提供登录、用户、活动、聊天、收藏、关注等接口 |
| 数据持久化 | 使用 MyBatis-Plus 操作 MySQL 数据库 |
| 即时通讯 | 引入 Spring WebSocket,支撑聊天相关能力 |
| 跨域配置 | 便于小程序和本地调试环境访问后端服务 |
| 实体简化 | 使用 Lombok 减少实体类样板代码 |
## 页面预览
小程序当前配置的主要页面如下:
| 页面路径 | 说明 |
| --- | --- |
| `pages/login/login` | 登录页,完成用户登录入口 |
| `pages/match/match` | 首页推荐,展示活动瀑布流 |
| `pages/dynamic/dynamic` | 动态广场,浏览活动动态 |
| `pages/publish/publish` | 活动发布,填写并提交组队信息 |
| `pages/actDetail/actDetail` | 活动详情,查看报名与活动信息 |
| `pages/chat/chat` | 私信聊天,沟通组队细节 |
| `pages/myAct/myAct` | 我的活动,查看发布、收藏和报名内容 |
| `pages/userInfo/userInfo` | 个人资料,展示用户基础信息 |
| `pages/userInfo/edit` | 编辑资料,维护昵称、头像、地址等信息 |
| `pages/admin/admin` | 管理页面,处理用户和活动管理 |
底部导航包含:首页、消息、个人中心。
## 技术栈
| 层级 | 技术选型 | 用途 |
| --- | --- | --- |
| 小程序端 | 微信小程序、WXML、WXSS、JavaScript | 页面展示、交互逻辑、接口请求 |
| 后端服务 | Java 8、Spring Boot 2.7.15 | 业务接口与服务启动 |
| Web 能力 | Spring Web、Spring WebSocket | REST 接口与聊天能力 |
| 数据访问 | MyBatis-Plus 3.5.5 | 数据库 CRUD 与实体映射 |
| 数据库 | MySQL、MySQL Connector/J 5.1.49 | 业务数据存储 |
| 工具库 | Lombok、Apache HttpClient、Fastjson | 简化实体、请求微信接口、解析 JSON |
| 构建工具 | Maven | 依赖管理与项目构建 |
| 开发工具 | 微信开发者工具、IntelliJ IDEA、Visual Studio Code | 小程序、后端与文档开发 |
## 项目结构
实际项目主要由两个目录组成:
```text
动遇项目/
├── client/ # 微信小程序客户端
│ ├── app.js
│ ├── app.json # 小程序页面、窗口和 tabBar 配置
│ ├── app.wxss
│ ├── project.config.json # 小程序项目配置
│ ├── components/ # 自定义组件
│ │ ├── custom-tabbar/
│ │ └── navigation-bar/
│ ├── pages/ # 小程序页面
│ │ ├── login/
│ │ ├── match/
│ │ ├── dynamic/
│ │ ├── publish/
│ │ ├── chat/
│ │ ├── myAct/
│ │ ├── userInfo/
│ │ ├── admin/
│ │ └── actDetail/
│ └── utils/
│ └── request.js # 请求封装与后端地址配置
│
├── dongyu02/ # Spring Boot 后端服务
│ ├── pom.xml # Maven 依赖配置
│ ├── src/main/java/com/dongyu/
│ │ ├── controller/ # 接口控制层
│ │ ├── service/ # 业务服务层
│ │ ├── mapper/ # MyBatis-Plus Mapper
│ │ ├── entity/ # 数据实体类
│ │ ├── config/ # CORS、WebSocket 等配置
│ │ └── util/ # 工具类
│ └── src/main/resources/
│ ├── application.yml # 服务端口、数据库、微信配置
│ ├── mybatis/mapper/ # Mapper XML
│ └── sql/ # 数据库补充脚本
│
└── README.md
```
## 后端接口
| 模块 | 接口前缀 | 说明 |
| --- | --- | --- |
| 登录 | `/api/login` | 微信登录 |
| 用户 | `/api/user` | 用户信息、昵称校验、标签维护 |
| 首页推荐 | `/api/match` | 推荐列表、关注列表、健康检查 |
| 活动 | `/api/act` | 发布活动、修改状态、我的发布 |
| 动态 | `/api/dynamic` | 动态列表、点赞、详情、报名、取消报名 |
| 收藏 | `/api/collect` | 收藏切换、收藏列表 |
| 关注 | `/api/follow` | 关注、取消关注、关注列表、关注用户活动 |
| 聊天 | `/api/chat` | 聊天历史、会话列表、发送消息、已读 |
| 上传 | `/api/upload` | 图片上传 |
| 积分 | `/api/point` | 积分增加与记录 |
| 评价 | `/api/eva` | 活动评价 |
| 管理 | `/api/admin` | 用户列表、封禁用户、下架活动、平台统计 |
## 数据库说明
后端默认连接数据库 `yuda_dazi`,配置位于 `dongyu02/src/main/resources/application.yml`。
核心数据表如下:
| 数据表 | 说明 |
| --- | --- |
| `user` | 用户信息,包含 openid、昵称、头像、手机号、地址、经纬度、信用分等 |
| `activity` | 活动信息,包含发布者、标题、类型、地点、时间、人数、预算、状态等 |
| `act_collect` | 活动收藏关系 |
| `act_join` | 活动报名关系 |
| `act_evaluate` | 活动评价记录 |
| `chat_msg` | 私信聊天消息 |
| `user_tag` | 用户兴趣标签 |
| `user_follow` | 用户关注关系 |
| `user_point` | 用户积分 |
| `point_task_log` | 积分任务记录 |
项目中已包含部分补充 SQL 脚本:
```text
dongyu02/src/main/resources/sql/add_like_count.sql
dongyu02/src/main/resources/sql/add_join_count.sql
dongyu02/src/main/resources/sql/add_user_follow.sql
```
如果本地数据库缺少对应字段或表,可以按需执行这些脚本。
## 快速开始
### 前置要求
- JDK 8
- Maven 3.x
- MySQL
- 微信开发者工具
- 微信小程序 AppID,或使用测试号调试
### 创建数据库
```sql
CREATE DATABASE yuda_dazi DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```
如果已有完整建表 SQL,请先导入建表脚本,再执行项目中的补充 SQL。仓库当前只包含部分补充脚本,不包含完整初始化脚本时,需要根据实体类或已有数据库导出表结构。
## 后端运行
1. 进入后端目录:
```bash
cd dongyu02
```
2. 修改数据库和微信配置:
```yaml
server:
port: 8080
address: 0.0.0.0
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/yuda_dazi
username: root
password: root
wx:
appid: 你的 AppID
secret: 你的 AppSecret
```
3. 启动后端服务:
```bash
mvn spring-boot:run
```
4. 浏览器访问健康检查接口:
```text
http://localhost:8080/api/match/ping
```
返回 `pong` 表示后端服务启动成功。
## 小程序运行
1. 打开微信开发者工具。
2. 选择导入项目,目录选择 `client`。
3. `project.config.json` 中当前配置的 AppID 为 `wx6fecf1a4721a6357`,可按自己的小程序账号替换。
4. 修改 `client/utils/request.js` 中的 `baseUrl`:
```js
const baseUrl = "http://你的电脑局域网IP:8080"
```
真机调试时不要使用 `localhost`,需要使用电脑的局域网 IPv4 地址,并保证手机和电脑在同一网络下。
5. 在微信开发者工具中编译运行。
## 常见配置
### 后端地址
小程序所有请求通过 `client/utils/request.js` 统一封装。后端端口默认为 `8080`,如果修改了后端端口,需要同步修改小程序 `baseUrl`。
### 数据库账号
本地数据库账号密码位于 `application.yml`。提交公开仓库前,建议移除真实密码和微信密钥,改为示例值或使用本地私有配置。
### 活动状态
`activity.status` 当前在后端中用于表示活动状态:
| 值 | 含义 |
| --- | --- |
| `1` | 招募中 |
| `0` | 审核中 |
| `2` | 草稿箱 |
| `3` | 已满员或已下架 |
| `4` | 已结束 |
## 开发规范
| 分类 | 说明 |
| --- | --- |
| 后端包名 | 主要代码位于 `com.dongyu` 包下 |
| 实体映射 | 实体类使用 `@TableName` 对应数据库表 |
| 接口返回 | 接口通常返回 `code`、`msg`、`data` 结构 |
| 小程序请求 | 前端统一通过 `utils/request.js` 发起请求 |
| 配置管理 | 数据库密码、微信密钥等敏感信息不要提交到公开仓库 |
| 调试方式 | 先启动后端,再运行小程序,最后检查接口返回和页面数据 |
## License
本项目主要用于课程设计、学习交流和校园项目实践。如需正式开源发布,请根据团队约定补充具体开源协议。