# 动遇 **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
# 动遇搭子 ### 校园结伴微信小程序 面向大学生的校园搭子匹配与活动组队平台,支持活动发布、首页推荐、动态互动、报名参加、私信聊天、个人资料维护和基础后台管理。 ![Java](https://img.shields.io/badge/Java-8-5B8DEF) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.15-6DB33F) ![MyBatis Plus](https://img.shields.io/badge/MyBatis--Plus-3.5.5-1677FF) ![MySQL](https://img.shields.io/badge/MySQL-yuda__dazi-4479A1) ![WeChat Mini Program](https://img.shields.io/badge/WeChat-Mini%20Program-07C160) ![Status](https://img.shields.io/badge/Status-本地开发版-F6A623)
--- ## 项目概览 | 项目 | 说明 | | --- | --- | | 项目名称 | 动遇搭子 | | 项目定位 | 校园搭子匹配与活动组队平台 | | 项目组成 | `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 本项目主要用于课程设计、学习交流和校园项目实践。如需正式开源发布,请根据团队约定补充具体开源协议。