目录
📚 前言
📑博客主页:@丘比特惩罚陆
💖欢迎关注:点赞收藏⭐留言✒
💬系列专栏:Java Springboot 毕设实战专栏
🎮 加入社区: 丘比特惩罚陆
🥇人生格言:选对方向,每走一步都是进步!
✒️欢迎大佬指正,一起学习!一起加油!👏 希望大家能小手一动,帮忙点个赞!
😁资源邮箱:2237814512@qq.com
📑摘要
行李寄存是外出旅行经常需要的服务,在宾馆、汽车站、火车站、机场甚至景区,一般都有行李寄存处。传统的行李寄存是在行李箱包上挂一张卡片,卡片上写有行李编号、客户信息、寄存时间等内容,同时客户也持有一张具有相关信息的卡片。取行李时,客户持卡片由管理人员核对并从储物间寻找和取出行李。传统的寄存方式简单易行,但只适合小规模行李寄存。当寄存行李数量较大时,要在众多的行李中寻找所需物件,光靠人工方式,难度增加,效率低下,还存在出错的风险。
效率低下耽误客户时间,一旦出错后,将给客户产生难以估量的损失。客户寄存物品后,还需要妥善保管寄存卡片,凭卡片领取行李,其他人无法代为领取,这都不符合现代人的生活方式。随着人们生活工作节奏的加快,传统的行李寄存方式已经显示出严重的不足。近年来,随着物联网技术的应用普及,出现了智能化管理的寄存系统。但大多是通过物联网技术实现对寄存柜的管理,或者实现无人自助存取。这类寄存系统对寄存柜的智能化程度要求很高,成本高昂,短期内难以普及。
📑实习管理系统的特点
该景区行李寄存系统能够实现用户的管理、菜单的管理、角色管理、部门信息管理、景区行李柜管理、行李入柜管理、行李出柜管理、行李寄存记录信息查询和景区通知公告信息管理以及修改个人信息密码等具体功能。
📑使用架构
B/S 架构
📚 总体设计
系统对这些功能进行整合,产生的功能结构图如下:
用户登录管理模块:
用户输入账号和密码选择角色点击登录按钮进行登录、根据输入的账号和密码以及角色来判断是否登录成功以及给出对应提示信息。
用户信息管理模块:
用户信息模块主要是景区所有用户信息的管理、可以录入用户相关信息进行添加用户、修改用户信息、删除用户和查看用户等操作。
角色信息管理模块:
角色信息模块主要是景区所有角色信息的管理、可以录入角色相关信息进行添加角色、修改角色信息、删除角色和查看角色等操作。同时在添加的时候可以给角色分配对应权限管理来控制菜单显示。超级管理员admin账户不受角色管理控制。拥有最高权限。
菜单信息管理模块:
菜单信息模块主要是景区寄存系统所有菜单信息的管理、可以录入菜单相关信息进行添加菜单、修改菜单信息、删除菜单和查看菜单色等操作。同时在添加菜单的时候可以选择菜单的类型为目录级别还是菜单级别以及按钮级别。通过角色来控制菜单的显示。
景区行李柜管理模块:
景区行李柜信息模块主要是景区寄存系统所有行李柜信息的管理、可以录入行李柜相关信息进行添加行李柜单、修改行李柜信息、删除行李柜和查看行李柜等操作。
用户行李寄存管理模块:
用户行李寄存信息模块主要是景区寄存系统所有用户行李寄存信息的管理、可以录入用户行李寄存相关信息进行添加用户行李寄存、修改用户行李寄存信息、删除用户行李寄存和查看用户行李寄存等操作。普通人员只能查看和添加自己的行李寄存信息、管理员可以对用户行李柜寄存进行修改和删除操作。
用户行李寄存记录管理模块:
用户行李寄存记录信息模块主要是景区寄存系统所有用户行李寄存记录信息的管理、可以录入用户行李寄存记录相关信息查看用户行李寄存记录等操作。查看具体的操作日期和人员以及柜子使用情况。
通知公告管理模块:
通知公告信息模块主要是景区寄存系统所有通知公告信息的管理、管理员可以录入通知公告相关信息和添加以及修改、查看通知公告模块操作。普通人员只能查看搜索通知公告信息。
📚 数据库设计
💬 数据库E-R表
💬 用户表设计
📚 系统功能的具体实现
💬 前台模块
用户输入账号密码和验证码进行登录、发送请求到后台SysLoginController处理器登录方法进行数据请求验证、将处理结果返回给前端、前端根据返回的数据和结果完成对应的显示和页面跳转。
登录成功显示后台主要页面。
💬 展示模块
用户寄存物品列表设计
后台业务实现层执行操作、获取前端传递的参数信息、判断关键字搜索是否存在、通过用户名和id进行搜索返回分页好的列表数据给前端进行展示。
用户添加寄存物品
用户选择未使用的寄存柜、输入备注信息和联系方式完成入柜操作。
系统管理
寄存行李柜管理和添加
用户行李寄存入柜管理
用户行李寄存出柜物品信息
用户寄存存取记录查看
通知公告信息管理
✒️ 源码实现
<div class="login-logo"> <b>景区行李寄存管理系统</b></div>
<!-- /.login-logo --><div class="login-box-body"><p class="login-box-msg">管理员登录</p> <div v-if="error" class="alert alert-danger alert-dismissible"><h4 style="margin-bottom: 0px;"><i class="fa fa-exclamation-triangle"></i> {{errorMsg}}</h4></div><div class="form-group has-feedback"> <input type="text" class="form-control" v-model="username" placeholder="账号"><span class="glyphicon glyphicon-user form-control-feedback"></span> </div><div class="form-group has-feedback">
<input type="password" class="form-control" v-model="password" placeholder="密码"><span class="glyphicon glyphicon-lock form-control-feedback"></span></div> <div class="form-group has-feedback"> <input type="text" class="form-control" v-model="captcha" @keyup.enter="login" placeholder="验证码"><span class="glyphicon glyphicon-warning-sign form-control-feedback"></span>
</div> <div class="form-group has-feedback"> <img alt="如果看不清楚,请单击图片刷新!" class="pointer" :src="src" @click="refreshCode">
<a href="javascript:;" @click="refreshCode">点击刷新</a></div>
/**
* 登录
*/
@ResponseBody
@RequestMapping(value = "/sys/login", method = RequestMethod.POST)
public R login(String username, String password, String captcha) {
String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
if(!captcha.equalsIgnoreCase(kaptcha)){
return R.error("验证码不正确");
}
try{
Subject subject = ShiroUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayan
subject.login(token);
}catch (UnknownAccountException e) {
return R.error(e.getMessage());
}catch (IncorrectCredentialsException e) {
return R.error("账号或密码不正确");
}catch (LockedAccountException e) {
return R.error("账号已被锁定,请联系管理员");
}catch (AuthenticationException e) {
return R.error("账户验证失败");
}
return R.ok();
}
}
/**
* 处理自定义异常
*/
@ExceptionHandler(RRException.class)
public R handleRRException(RRException e){
R r = new R();
r.put("code", e.getCode());
r.put("msg", e.getMessage());
return r;
}
@ExceptionHandler(DuplicateKeyException.class)
public R handleDuplicateKeyException(DuplicateKeyException e){
logger.error(e.getMessage(), e);
return R.error("数据库中已存在该记录");
}
@ExceptionHandler(AuthorizationException.class)
public R handleAuthorizationException(AuthorizationException e){
logger.error(e.getMessage(), e);
return R.error("没有权限,请联系管理员授权");
}
@ExceptionHandler(Exception.class)
public R handleException(Exception e){
logger.error(e.getMessage(), e);
return R.error();
}
💖 源码获取
点赞、收藏、关注!!!
非无偿源码!获取源码请添加up主!!
😁 联系方式
文章最底下有微信联系方式!!!