1. 项目概述
这个基于SSM框架的拼团旅游管理系统是我在2023年完成的一个毕业设计项目。作为一个计算机专业的学生,我选择这个课题是因为看到了传统旅行社在数字化转型过程中的痛点——线路管理混乱、酒店资源调配低效、拼团信息同步滞后等问题。通过这个系统,我实现了旅行社内部多角色协同工作的完整解决方案。
系统采用B/S架构,后端使用Spring+SpringMVC+MyBatis技术栈,前端基于Vue.js,数据库选用MySQL 5.7。整个开发周期约5个月,从需求分析到最终部署上线,涵盖了软件开发的完整生命周期。系统最大的特色是实现了用户、运营人员、导游和总经理四级权限体系,每个角色都有专属的功能模块和操作界面。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术选型考量
选择SSM框架组合主要基于以下几个考虑:
- Spring的IoC和AOP特性能够很好地管理业务组件和实现横切关注点
- SpringMVC提供了清晰的MVC分层结构,便于前后端分离开发
- MyBatis相比Hibernate更灵活,适合复杂SQL场景
- 这三个框架组合在Java Web开发中非常成熟,社区支持完善
前端选择Vue.js是因为:
- 轻量级框架,学习曲线平缓
- 响应式数据绑定和组件化开发模式
- 与后端RESTful API对接方便
- 生态丰富,有Element UI等成熟的UI组件库
2.2 系统分层架构
系统采用典型的三层架构:
- 表现层:Vue.js前端 + SpringMVC控制器
- 业务逻辑层:Spring Service组件
- 数据访问层:MyBatis Mapper接口
这种分层设计使得各层职责明确,便于维护和扩展。例如当需要更换数据库时,只需修改MyBatis的Mapper配置,不会影响上层业务逻辑。
3. 核心功能实现
3.1 多角色权限控制
系统中最复杂的部分就是多角色权限控制。我采用了RBAC(基于角色的访问控制)模型,结合Spring Security框架实现。具体设计如下:
-
角色定义:
- 用户:浏览线路、参与拼团、下单支付
- 运营人员:管理线路、酒店、拼团活动
- 导游:查看带团任务、管理游客
- 总经理:查看经营数据、审批重大事项
-
权限实现:
java复制@PreAuthorize("hasRole('OPERATOR')")
@PostMapping("/tour/add")
public Result addTour(@RequestBody Tour tour) {
// 添加线路逻辑
}
- 数据库设计:
sql复制CREATE TABLE `sys_role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '角色名称',
`description` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `sys_permission` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL COMMENT '资源路径',
`name` varchar(50) NOT NULL COMMENT '权限名称',
`description` varchar(100)
