💗博主介绍:✌全网粉丝15W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者,计算机毕设实战导师。目前专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌
💗主要服务内容:免费功能设计、选题定题、开题报告、任务书、程序开发、论文编写和辅导、论文降重、程序讲解、答辩辅导等,欢迎咨询~
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例(持续更新)
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人
一.前言
随着电子商务和在线购物的普及,校园内的快递量急剧增加。由于学生们常因课程繁忙或其他个人原因无法及时领取快递,导致快递堆积、丢失或延误等问题频发。同时,快递员也因校园内配送效率低下而面临较大压力。因此,设计和实现一个高效、便捷的校园快递代取系统,成为解决上述问题、提升校园物流效率的重要途径。该系统旨在通过集中化、智能化的管理方式,为学生和快递员提供更为优质的服务体验。
此系统设计主要采用的是JAVA语言结合微信小程序技术来进行开发,采用Spring Boot框架技术,框架分为三层,分别是控制层Controller,业务处理层Service,持久层dao,能够采用多层次管理开发,对于各个模块设计制作有一定的安全性;数据库方面主要采用的是MySQL来进行开发,其特点是稳定性好,数据库存储容量大,处理能力快等优势;服务器采用的是Tomcat服务,能够提供稳固的运行平台,确保系统稳定运行。通过校园快递代取系统来提升本课题的各项功能的工作效率,提供了一个多样功能,具有良好实用性的校园快递代取系统。
二.技术环境
jdk版本:1.8 及以上
ide工具:Eclipse或者 IDEA,微信小程序开发工具
数据库: mysql5.7 (必须5.7)
编程语言: Java
java框架:SpringBoot
maven: 3.6.1
详细技术:HTML+CSS+JAVA+SpringBoot+MYSQL+VUE+MAVEN+微信开发工具
三.功能设计
本系统采用自上往下的方法开发,基本定位如下功能:
本课题要求实现一套基于微信小程序的校园快递代取系统,系统主要包括管理员模块和用户、配送员模块的功能模块;
(1)管理员用例图如下所示:
(2)用户用例图如下所示:
(3)配送员用例图如下所示:
程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
四.数据设计
数据库概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。而且Mysql数据库是自我保护能力比较强的数据库,在系统中的局部E-R图,如图所示:
五.部分效果展示
5.1用户微信端功能实现效果
用户首次访问本系统可以注册、注册后完成登录操作,其界面如下图所示:
系统首页是用户注册登录后进入的第一个界面,用户可通过小程序端首页进入对应的页面或者通过小程序最下面的那一行导航栏中的“首页、快递订单、通知公告、我的”进行详细操作,如图所示。
用户进入快递订单界面,可以发布快递订单信息操作,界面如下图所示:
在我的功能界面,用户点击“我的”进入我的页面,在我的页面可以对快递订单、订单信息、送达订单、代取评价、我的收藏、留言反馈、修改密码等进行详细操作,如图所示。
5.2配送员微信端功能实现效果
用户进入快递订单界面,可以查询快递信息,并进行配送操作,界面如下图所示:
在我的功能界面,用户点击“我的”进入我的页面,在我的页面可以对快递订单、订单信息、送达订单、代取评价、我的收藏、留言反馈、修改密码等进行详细操作,如图所示。
5.3管理员服务端功能实现效果
管理员登录进入校园快递代取系统的实现可以查看系统首页、用户、配送员、快递订单、接单信息、送达订单、代取评价、留言反馈、系统管理、个人资料等信息,如图所示。
配送员信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写配送员信息表单。这些配送员信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增、更新或删除配送员信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便配送员信息功能可以看到最新的信息或相应的操作反馈。在配送员信息页面的输入栏中输入配送账号、配送人进行搜索,可以查看到配送员详细信息,并根据需要进行修改或者删除等操作;如图所示。
管理员点击快递订单;在快递订单页面对快递单号、快递名称、快递类型、截图、快递备注、代取费用、账号、状态、手机、目的地址、取货地址、收藏数等信息,进行搜索、新增或删除快递订单等操作;如图所示。
管理员点击接单信息;在接单信息页面对快递单号、快递名称、快递类型、截图、快递备注、代取费用、账号、手机、取货地址、目的地址、配送账号、联系电话、快递状态、接单时间、配送人、是否支付等信息,进行搜索或删除接单信息等操作;如图所示。
管理员点击送达订单;在送达订单页面对快递单号、快递名称、快递类型、截图、快递备注、代取费用、账号、手机、取货地址、目的地址、配送账号、联系电话、送达时间、配送人等信息,进行搜索或者删除送达订单等操作;如图所示。
管理员点击代取评价;在代取评价页面对快递单号、快递名称、快递类型、截图、快递备注、代取费用、账号、手机、取货地址、目的地址、配送账号、联系电话、评价时间、评分等信息,进行搜索或删除代取评价等操作;如图所示。
部分功能代码
/**
* 上传文件
*/
@RequestMapping("/upload")
@IgnoreAuth
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
if(StringUtils.isNotBlank(type) && type.contains("_template")) {
fileName = type + "."+fileExt;
new File(upload.getAbsolutePath()+"/"+fileName).deleteOnExit();
}
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
数据库参考
--
-- Table structure for table `jiedanxinxi`
--
DROP TABLE IF EXISTS `jiedanxinxi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `jiedanxinxi` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`dingdanhao` varchar(200) DEFAULT NULL COMMENT '订单号',
`kuaididanhao` varchar(200) NOT NULL COMMENT '快递单号',
`kuaidimingcheng` varchar(200) DEFAULT NULL COMMENT '快递名称',
`jietu` longtext COMMENT '截图',
`kuaidileixing` varchar(200) DEFAULT NULL COMMENT '快递类型',
`kuaidibeizhu` varchar(200) DEFAULT NULL COMMENT '快递备注',
`daiqufeiyong` double NOT NULL COMMENT '代取费用',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
`shouji` varchar(200) DEFAULT NULL COMMENT '手机',
`quhuodizhi` varchar(200) DEFAULT NULL COMMENT '取货地址',
`mudedizhi` varchar(200) DEFAULT NULL COMMENT '目的地址',
`peisongzhanghao` varchar(200) NOT NULL COMMENT '配送账号',
`lianxidianhua` varchar(200) NOT NULL COMMENT '联系电话',
`kuaidizhuangtai` varchar(200) NOT NULL COMMENT '快递状态',
`jiedanshijian` datetime DEFAULT NULL COMMENT '接单时间',
`peisongren` varchar(200) DEFAULT NULL COMMENT '配送人',
`luxianguihua` longtext NOT NULL COMMENT '路线规划',
`ispay` varchar(200) DEFAULT '未支付' COMMENT '是否支付',
PRIMARY KEY (`id`),
UNIQUE KEY `dingdanhao` (`dingdanhao`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='接单信息';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `kuaididingdan`
--
DROP TABLE IF EXISTS `kuaididingdan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `kuaididingdan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`kuaididanhao` varchar(200) NOT NULL COMMENT '快递单号',
`kuaidimingcheng` varchar(200) DEFAULT NULL COMMENT '快递名称',
`kuaidileixing` varchar(200) DEFAULT NULL COMMENT '快递类型',
`jietu` longtext COMMENT '截图',
`kuaidibeizhu` varchar(200) DEFAULT NULL COMMENT '快递备注',
`daiqufeiyong` double NOT NULL COMMENT '代取费用',
`zhanghao` varchar(200) DEFAULT NULL COMMENT '账号',
`zhuangtai` varchar(200) NOT NULL COMMENT '状态',
`shouji` varchar(200) DEFAULT NULL COMMENT '手机',
`mudedizhi` varchar(200) DEFAULT NULL COMMENT '目的地址',
`quhuodizhi` varchar(200) DEFAULT NULL COMMENT '取货地址',
`storeupnum` int(11) DEFAULT '0' COMMENT '收藏数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COMMENT='快递订单';
/*!40101 SET character_set_client = @saved_cs_client */;
为什么选择我们
大学毕业那年,曾经有幸协助指导老师做过毕业设计课题分类、论文初选(查看论文的格式)、代码刻录等打杂的事情,也帮助过同界N多同学完成过毕业设计工作,毕业后在一家互联网大厂工作8年,先后从事Java前后端开发、系统架构设计等方面的工作,有丰富的编程能力和水平,也在工作之余指导过别人完成过一些毕业设计的工作。2016年至今,团队已指导上万名学生顺利通过毕业答辩,目前是csdn特邀作者、CSDN全栈领域优质创作者,博客之星、掘金/华为云/B站/知乎等平台优质作者,计算机毕设实战导师,专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎咨询~✌
最后
💕💕
最新计算机毕业设计选题篇-选题推荐
小程序毕业设计精品项目案例-200套
Java毕业设计精品项目案例-200套
Python毕业设计精品项目案例-200套
大数据毕业设计精品项目案例-200套
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。