系统亮点:协同过滤算法、腾讯地图API、支付宝沙盒支付、WebsSocket实时聊天、ECharts图形化分析;
01系统开发工具与环境搭建
—
前后端分离架构
项目架构:B/S架构
运行环境:win10/win11、jdk17
前端:
技术:框架Vue.js;UI库:ElementUI;
开发工具:Visual Studio Code;
后端:
技术:Java语言、mybatis plus、Spring boot框架;
开发工具:IDEA 2023.3.3版本;
数据库:
数据库:mysql5.7/8.0
数据库工具:Navicat12版本;
02 系统实现(部分截图)
—
顾客模块功能需求包含:
- 账号管理:顾客可以进行注册账号,根据已注册的账号登录系统,支持顾客修改密码和修改个人信息。
- 租车模块:允许顾客通过车辆名称进行搜索可租车辆,也可以通过选择车型、品牌、座位数进行筛选适合的车辆。查看可用车辆,合适则可以进行预定。
- 反馈申请:顾客可以反馈自己遇到的系统问题或者使用车辆所遇到的问题。反馈状态为待处理,顾客可以进行编辑或者删除操作。
- 用车论坛:顾客可以在租车系统里畅所欲言,发布自己的租车感想或者租车攻略等信息,可以与其他顾客进行评价交流。对于喜爱的帖子,可以进行分享他人或进行收藏。
- 订单模块:顾客可以在订单模块查找自己所有的租车订单,可以对订单进行取消及评价处理。
- 联系客服:顾客可以在线上与客服进行实时聊天,询问自己想问的问题,可以及时的得到回复。
管理员模块功能需求包含:
- 账号管理:管理员登录后台系统,可以进行修改密码和个人信息。
- 顾客管理:管理员对顾客进行管理,可以对顾客信息进行修改、删除,新增新顾客,导出顾客功能。
- 反馈管理:管理员对顾客反馈的信息进行回复处理,管理员也有权删除相关的反馈信息。
- 论坛管理:管理员可以发布新话题,还能够对已发布的话题执行删除、修改操作,同时也具备对话题进行推荐或取消推荐的权限。此外,系统还对最近一周内各话题的浏览人次进行了统计,并以柱状图的形式进行了图形化分析。
- 车辆管理:管理员能够对车辆信息进行新增录入,也可以对已有的车辆信息进行修改,及时更新车辆信息。管理员还可以执行删除操作,将相关车辆信息从系统中移除,确保车辆管理数据准确。
- 客户会话:管理员要对顾客提出的问题和咨询进行及时回复,及时答疑解惑。
- 业务管理:管理员可以查看所有订单信息,管理员可以进行完成取消订车、完成取车、添加违规记录等操作,以便后续还车时,核对费用。管理员可以对租赁公司进行管理,进行选址。管理员可以查看对租赁车辆的参保情况。
用户端:
1.登录
顾客进入系统注册界面,输入未注册的账号、密码、邮箱、联系方式等信息,进行注册账号,如果信息无误则注册成功,并自动跳转登录界面,进行登录系统。顾客注册界面如图4.1所示。顾客进入系统登录界面,输入已注册的账号、密码,并选择对应的角色,输入图形验证码进行登录系统。顾客登录界面如图4.2所示。
2.首页
3.我要租车
顾客进入系统,点击“我要租车”导航栏,跳转“我要租车”界面,顾客可以根据车辆名称搜索车辆信息,也支持通过车型、品牌等信息进行选择车辆信息。
其核心代码如下:
// 从数据库进行分页查询获取车辆信息数据
IPage<Vehicles> pageRecords = VehiclesMapper.selectPage(page, queryWrapper);
// 获取所有满足条件的数据行数
Long totalCount = VehiclesMapper.selectCount(queryWrapper);
// 把Vehicles实体转换成Vehicles传输模型
List<VehiclesDto> items = Extension.copyBeanList(pageRecords.getRecords(), VehiclesDto.class);
DispatchItem(items);
// 返回一个分页结构给前端
return PagedResult.GetInstance(items, totalCount);
4.租车详情
5.我要预定
6.反馈申请
顾客能够对系统使用过程中遇到的问题,或是车辆使用时碰到的问题进行反馈。反馈初始状态设定为待处理。在此期间,顾客有权对反馈内容进行编辑或删除操作。
其核心代码如下:
if (input.getId() == null) {
return new LeaveFeedBackDto();
}
PagedResult<LeaveFeedBackDto> pagedResult = List(input);
return pagedResult.getItems().stream().findFirst().orElse(new LeaveFeedBackDto());
7.个人中心
8.我的订单
9.联系客服
10.用车论坛
11.论坛详情
管理端:
1.用户管理
2.客户会话
客户会话模块是为了处理客户的问题,管理员需针对顾客所提出的问题与咨询予以即时回应,及时为顾客答疑解惑。
其核心代码如下:
//声明一个会话集合实体
Long meCount = _WechatCollectionMpper.selectCount(Wrappers.<WechatCollection>lambdaQuery().eq(WechatCollection::getSelfUserId, input.getSelfUserId()).eq(WechatCollection::getOtherUserId, input.getOtherUserId()));
if (meCount == 0) {
WechatCollection me = new WechatCollection();
me.setLastMessage(null);
me.setLastTime(null);
me.setSelfUserId(input.getSelfUserId());
me.setOtherUserId(input.getOtherUserId());
//调用数据库的增加或者修改方法
saveOrUpdate(me);
}
3.反馈处理
管理员不仅有权对顾客反馈的信息进行回复处理,还可对相关反馈信息执行删除操作。
其核心代码如下:
//声明一个留言反馈实体
LeaveFeedBack LeaveFeedBack = input.MapToEntity();
//调用数据库的增加或者修改方法
saveOrUpdate(LeaveFeedBack);
//把传输模型返回给前端
return LeaveFeedBack.MapToDto();
4.车辆统计
5.订单统计
6.话题管理
7.车辆管理
8.服务车辆
9.订单管理
管理员可以查看汽车租赁的所有订单信息,可以根据订单的条件筛选对应的订单信息。管理员可以进行更改订单的状态,或是删除订单信息。
其核心代码如下:
// 5. 各时段订单量统计
Map<String, Object> hourlyStats = new HashMap<>();
hourlyStats.put("title", "各时段订单量");
List<Map<String, Object>> hourlyData = OrderInfoMapper.selectList(null)
.stream()
.map(order -> order.getCreationTime().getHour())
.collect(Collectors.groupingBy(
hour -> hour,
TreeMap::new,
Collectors.counting()))
.entrySet()
.stream()
.map(entry -> {
Map<String, Object> item = new HashMap<>();
item.put("hour", entry.getKey());
item.put("count", entry.getValue());
return item;
})
.collect(Collectors.toList());
hourlyStats.put("data", hourlyData);
result.add(hourlyStats);
return result;
10.租赁公司管理
11.车辆保险
12.违规记录
03 系统代码结构
—
1.后端
2.前端
3.数据库
04 源码获取
—
1.系统非商用,非开源,非无偿。
2.由本人开发,如需源码,请联系以下方式,koimibuff。
3.项目有很多,并未全部上传,如果未找到想要的,可直接咨询。