微信小程序社区管理系统
项目简介
本项目是一个基于 SSM 框架开发的社区物业管理系统,采用前后端分离架构,后端提供 RESTful API 接口,前端包含 Web 管理后台和微信小程序用户端。系统主要面向小区物业管理和业主服务,提供报修管理、物业缴费、问卷调查、二手商品交易、社区公告等功能。
技术架构
后端技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| Spring Framework | 4.3.5.RELEASE | 核心框架,提供 IoC 和 AOP 支持 |
| Spring MVC | 4.3.5.RELEASE | MVC 框架,处理 Web 请求 |
| MyBatis | 3.4.1 | ORM 框架,数据持久化 |
| MySQL | 8.0.11 | 关系型数据库 |
| C3P0 | 0.9.5.2 | 数据库连接池 |
| Maven | - | 项目构建和依赖管理工具 |
| JDK | 1.8 | Java 开发环境 |
前端技术栈
Web 管理后台
- JSP - 服务端页面渲染
- Layui - 前端 UI 框架
- jQuery - JavaScript 库
- AJAX - 异步数据交互
微信小程序端
- 微信小程序原生开发 - 使用微信小程序框架
- WXML/WXSS - 页面结构和样式
- JavaScript - 业务逻辑
其他技术组件
- Logback - 日志管理框架
- FastJSON - JSON 数据处理
- Jackson - JSON 序列化/反序列化
- Apache POI & EasyPOI - Excel 导入导出
- Commons FileUpload - 文件上传处理
- Swagger - API 文档生成
- WebSocket - 实时通信支持
- HttpClient - HTTP 客户端
系统架构
整体架构
┌─────────────────┐ ┌─────────────────┐
│ 微信小程序端 │ │ Web管理后台 │
│ (用户端) │ │ (管理员端) │
└────────┬────────┘ └────────┬────────┘
│ │
│ HTTP/HTTPS请求 │
│ │
└────────┬───────────────┘
│
┌────────▼────────┐
│ Spring MVC │
│ (Controller层) │
└────────┬────────┘
│
┌────────▼────────┐
│ Service层 │
│ (业务逻辑) │
└────────┬────────┘
│
┌────────▼────────┐
│ MyBatis │
│ (Mapper层) │
└────────┬────────┘
│
┌────────▼────────┐
│ MySQL数据库 │
└─────────────────┘
项目结构
community/ # 后端项目
├── src/main/
│ ├── java/com/community/
│ │ ├── controller/ # 控制器层
│ │ │ ├── api/ # 小程序端API接口
│ │ │ │ ├── GoodsApi.java # 商品接口
│ │ │ │ ├── PayApi.java # 缴费接口
│ │ │ │ ├── RepairApi.java # 报修接口
│ │ │ │ ├── MessageApi.java # 消息接口
│ │ │ │ ├── SurveyApi.java # 问卷接口
│ │ │ │ └── UserApi.java # 用户接口
│ │ │ ├── AdminController.java # 管理员控制器
│ │ │ ├── GoodsController.java # 商品管理
│ │ │ ├── GoodsPayController.java # 商品订单管理
│ │ │ ├── MessageController.java # 消息管理
│ │ │ ├── PayController.java # 缴费管理
│ │ │ ├── Repairontroller.java # 报修管理
│ │ │ └── SurveyController.java # 问卷管理
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── impl/ # 实现类
│ │ │ └── *Service.java # 服务接口
│ │ ├── mapper/ # 数据访问层
│ │ │ └── *Mapper.java # MyBatis接口
│ │ ├── pojo/ # 实体类
│ │ │ ├── Admin.java # 管理员
│ │ │ ├── User.java # 用户
│ │ │ ├── Repair.java # 报修
│ │ │ ├── Pay.java # 缴费
│ │ │ ├── Goods.java # 商品
│ │ │ ├── Message.java # 消息
│ │ │ └── Survey.java # 问卷
│ │ └── util/ # 工具类
│ │ ├── Layui.java # Layui表格数据封装
│ │ ├── POIUtil.java # Excel工具类
│ │ └── RandNum.java # 随机数生成
│ ├── resources/
│ │ ├── mapper/ # MyBatis XML映射文件
│ │ ├── jdbc.properties # 数据库配置
│ │ ├── spring-mvc.xml # Spring MVC配置
│ │ └── spring-mybatis.xml # MyBatis配置
│ └── webapp/
│ ├── WEB-INF/
│ │ ├── views/ # JSP页面
│ │ └── web.xml # Web配置
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ ├── lib/layui/ # Layui框架
│ └── login.jsp # 登录页面
├── sql/
│ └── community.sql # 数据库脚本
└── pom.xml # Maven配置文件
frogla/ # 微信小程序项目
├── pages/ # 页面目录
│ ├── index/ # 首页
│ ├── my/ # 我的
│ ├── phone_number/ # 服务电话
│ ├── rege_login/ # 注册登录
│ ├── survey/ # 问卷调查
│ ├── my_paygoods/ # 我的订单
│ ├── my_payments/ # 我的缴费
│ ├── my_qs/ # 我的问卷
│ └── second_level/ # 二级页面
│ ├── notice/ # 社区公告
│ ├── repairs/ # 报修
│ ├── pay/ # 缴费
│ ├── visitor/ # 访客登记
│ └── secondhand/ # 二手商品
├── utils/ # 工具类
│ ├── common.js # 公共方法
│ └── util.js # 工具方法
├── app.js # 小程序入口
├── app.json # 小程序配置
└── project.config.json # 项目配置
核心功能模块
1. 用户管理模块
- 用户注册登录:支持微信小程序用户注册和登录
- 个人信息管理:用户可以维护个人信息(姓名、性别、楼栋号、单元号、房间号、手机号等)
- 房间绑定:用户信息与房间信息绑定
2. 报修管理模块
- 报修申请:业主可以通过小程序提交报修申请
- 报修内容:支持填写报修内容、选择报修区域(公共区域/私人区域)
- 图片上传:支持上传最多 3 张现场照片
- 报修查看:管理员可在后台查看所有报修记录
- 分页展示:支持分页查询报修列表
3. 物业缴费模块
- 缴费项目:支持电费、水费、物业费等多种缴费项目
- 在线缴费:业主可通过小程序在线缴纳费用
- 缴费记录:用户可查看个人缴费历史记录
- 缴费管理:管理员可在后台查看所有缴费记录
- 数据导出:支持导出缴费数据到 Excel
4. 问卷调查模块
- 问卷创建:管理员可创建调查问卷,添加问题和选项
- 问卷编辑:支持编辑和删除问卷
- 问卷发布:发布问卷供业主填写
- 问卷填写:业主通过小程序填写问卷
- 结果统计:自动统计问卷结果
- 数据分析:支持查看问卷统计数据
5. 社区公告模块
- 公告发布:管理员可发布社区通知和公告
- 公告内容:支持标题、内容、图片、附件(XML 格式)
- 公告展示:小程序端展示公告列表和详情
- 公告查看:业主可浏览社区公告信息
6. 二手商品交易模块
- 商品发布:管理员可发布二手商品信息
- 商品信息:包含商品标题、描述、图片、价格等
- 商品浏览:业主可浏览二手商品列表
- 商品购买:支持商品购买功能
- 订单管理:查看和管理商品订单
- 我的订单:用户可查看自己的购买记录
7. 访客登记模块
- 访客信息登记:支持访客信息的录入
- 访客管理:管理员可查看访客登记记录
8. 服务电话模块
- 电话展示:展示物业服务相关电话(保安、维修、投诉等)
- 一键拨打:支持一键拨打服务电话
9. 管理员后台
- 登录认证:管理员账号密码登录
- 数据统计:各模块数据统计展示
- 用户管理:查看和管理业主信息
- 内容管理:管理公告、商品、问卷等内容
- 订单管理:管理商品订单和缴费记录
- Excel 导出:支持各类数据导出为 Excel 文件
数据库设计
主要数据表
| 表名 | 说明 | 主要字段 |
|---|---|---|
| admin | 管理员表 | id, name, account, pwd |
| user | 用户表 | uid, name, gender, buildingNumber, unitNumber, roomNumber, phone_number, pwd, roomId |
| repair | 报修表 | id, uid, my_content, my_area, pic0, pic1, pic2 |
| pay | 缴费表 | id, uid, itemName, payment, paytime |
| goods | 商品表 | id, goods_id, goods_title, goods_desc, goods_img, goods_price, publisher_id, publish_time |
| goodspay | 商品订单表 | id, goods_id, uid |
| message | 公告消息表 | id, time, author, content, img, title, avatarUrl |
| survey | 问卷表 | id, title |
| question | 问题表 | id, content |
| choice | 选项表 | id, q_id, moption, ch |
| sur_que | 问卷-问题关联表 | id, su_id, qid |
| user_sur | 用户问卷表 | id, uid, qid, su_id |
| user_sur_opt | 用户问卷选项表 | id, user_sur_id, opt_id |
系统配置
数据库配置
修改 community/src/main/resources/jdbc.properties 文件:
properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/community?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
jdbc.username=root
jdbc.password=root
Spring MVC 配置
- 配置文件:
spring-mvc.xml - 包扫描:
com.community.controller - 视图解析器:JSP(前缀
/WEB-INF/views/,后缀.jsp) - 文件上传:最大 20MB
- 静态资源映射:CSS、JS、Layui 框架
MyBatis 配置
- 配置文件:
spring-mybatis.xml - 数据源:C3P0 连接池
- 实体类包:
com.community.pojo - Mapper 接口包:
com.community.mapper - XML 映射文件:
classpath:mapper/*.xml - 事务管理:声明式事务,AOP 配置
环境要求
开发环境
- JDK:1.8+
- Maven:3.x
- MySQL:8.0+
- IDE:IntelliJ IDEA / Eclipse
- 微信开发者工具:最新版
运行环境
- Tomcat:8.0+ 或其他 Servlet 容器
- 操作系统:Windows / Linux / macOS
安装部署
1. 数据库初始化
bash
# 登录 MySQL
mysql -u root -p
# 创建数据库
CREATE DATABASE community DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# 导入数据库脚本
USE community;
SOURCE /path/to/community.sql;
2. 后端部署
bash
# 进入后端项目目录
cd community
# 修改数据库配置
vim src/main/resources/jdbc.properties
# Maven 打包
mvn clean package
# 部署到 Tomcat
# 将 target/community.war 复制到 Tomcat 的 webapps 目录
cp target/community.war /path/to/tomcat/webapps/
# 启动 Tomcat
/path/to/tomcat/bin/startup.sh
3. 微信小程序配置
bash
# 使用微信开发者工具打开 frogla 目录
# 修改后端 API 地址
# 在 utils/common.js 中配置后端服务器地址
4. 访问系统
-
Web 管理后台:http://localhost:8080/community/login.jsp
- 默认管理员账号:admin
- 默认密码:admin
-
微信小程序:使用微信开发者工具运行 frogla 项目
API 接口
小程序端 API(部分)
| 接口路径 | 方法 | 说明 |
|---|---|---|
/api/user/register |
POST | 用户注册 |
/api/user/login |
POST | 用户登录 |
/api/repair/submit |
POST | 提交报修 |
/api/pay/submit |
POST | 提交缴费 |
/api/goods/list |
GET | 获取商品列表 |
/api/goods/buy |
POST | 购买商品 |
/api/message/list |
GET | 获取公告列表 |
/api/survey/list |
GET | 获取问卷列表 |
/api/survey/submit |
POST | 提交问卷 |
管理端 API(部分)
| 接口路径 | 方法 | 说明 |
|---|---|---|
/findAllRepairByPage |
GET | 分页查询报修 |
/findAllSurveyByPage |
GET | 分页查询问卷 |
/insertSurvey |
POST | 创建问卷 |
/deleteSurveyById |
GET | 删除问卷 |
/updateSurveyById |
POST | 更新问卷 |
/findAllGoodsPayByPage |
GET | 分页查询商品订单 |
项目特点
- 前后端分离:后端提供 RESTful API,前端独立开发和部署
- 双端应用:Web 管理后台 + 微信小程序用户端
- SSM 经典架构:Spring + Spring MVC + MyBatis 成熟稳定
- 分层设计:Controller、Service、Mapper 清晰分层,易于维护
- 数据导出:支持 Excel 导出功能,便于数据分析
- 文件上传:支持图片、文档等文件上传
- 分页查询:集成 PageHelper,支持高效分页
- 事务管理:AOP 声明式事务,保证数据一致性
- API 文档:集成 Swagger,自动生成接口文档
- 日志管理:Logback 日志框架,便于问题追踪
开发规范
后端开发规范
- 包命名 :统一使用
com.community前缀 - Controller 层:处理请求和响应,不包含业务逻辑
- Service 层:实现业务逻辑,事务控制
- Mapper 层:数据库访问,MyBatis 接口
- 返回格式:统一使用 JSON 格式
- 命名规范:遵循驼峰命名法
前端开发规范
- 页面结构:WXML 编写页面结构
- 样式管理:WXSS 统一样式
- 数据绑定:使用 MVVM 数据绑定模式
- 接口调用:统一使用 wx.request 封装
扩展建议
功能扩展
- 在线支付:集成微信支付,实现真实支付功能
- 消息推送:添加微信模板消息推送功能
- 投诉建议:增加业主投诉建议模块
- 停车管理:车位管理和车辆进出记录
- 活动报名:社区活动发布和在线报名
- 邻里社交:业主社交互动功能
技术优化
- Redis 缓存:引入 Redis 提升系统性能
- 分布式部署:支持集群部署,提高可用性
- 安全加固:添加接口鉴权、数据加密等安全措施
- 单元测试:完善单元测试和集成测试
- 日志监控:集成 ELK 日志分析系统
- 数据统计:增加数据可视化报表功能
常见问题
1. 数据库连接失败
- 检查 MySQL 服务是否启动
- 确认数据库配置信息是否正确
- 检查数据库是否已创建
2. 文件上传失败
- 检查上传文件大小是否超过限制(20MB)
- 确认上传目录是否有写权限
3. 小程序无法访问后端
- 检查后端服务是否启动
- 确认服务器地址配置是否正确
- 检查网络连接是否正常
4. Maven 依赖下载失败
- 配置国内 Maven 镜像源
- 检查网络连接
- 手动下载依赖包
开发者信息
- 项目名称:微信小程序社区管理系统
- 开发语言:Java、JavaScript
许可证
本项目仅供学习和研究使用,请勿用于商业用途。