SpringBoot+Vue实现前后端分离的学校快递站点管理系统

news2024/11/17 2:39:45

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍

二、功能需求分析

三、系统前台模块

3.1系统前台登录页面

3.2交流论坛发布页面

3.3校园资讯页面​

四、管理员功能模块

4.1站点管理模块

4.2用户管理模块 

4.3内容管理模块 

4.4更多管理模块 

五、快递公司功能模块

5.1快递信息页面

5.2快递柜页面

六、快递员功能模块 

6.1快递取件页面 

6.2快递收取页面  

七、学生功能模块

7.1寄快递页面

7.2快递配送页面 

八、部分核心代码

8.1快递取件关键代码 

8.2用户管理关键代码 

8.3用户注册关键代码


一、前言介绍

学校快递站点管理系统选择JAVA语言的springboot框架进行开发,使用了mysql数据库来存储数据,划分为学生端、快递员工端、快递公司端和管理员端四个用户,分为前台和后台两部分的功能。学校快递站点管理系统的设计与实现是为了让学校快递站点的使用者更加方便的进行管理学校快递站点相关联的一些信息,同时也有理由学生通过网页系统查看学校快递站点的信息,进行在线快递取件、寄快递、快递配送、快递评价等,能够使得使用者查找某一信息时能节省大量的时间和精力,有效减少不必要的查找时间。

二、功能需求分析

前台端:

(1)首页信息:当学生进入本学校快递站点管理系统的前台的时候,首先展示在眼前的是导航栏、轮播图、公告栏等信息,学生可以根据自己个人的需求进行查看;

(2)注册登录:在系统的右上角有登录+注册+搜索查看按钮,如果学生、快递员和快递公司想要登录到系统当中,可以点击“登录”按钮,然后填写号用户名+密码,点击“登录”按钮,系统会对你的用户名密码进行核对,正确的话就会登录成功了,如果没有账号的话,可以点击右上角的“注册”按钮,然后根据提示输入好用户信息,就可以得到账号和密码了;

(3)交流论坛:当学生登录到系统中以后,点击“交流论坛”这一菜单,会显示所有的交流标题,可以查看交流详情进行评论,也可以发布交流内容,同时支持输入关键词对交流论坛信息进行搜索;

(3)公告消息:当学生点击“公告消息”这一菜单,会显示管理员在后台发布的所有的公告消息,可以查看详情;

(4)校园资讯:当学生点击“校园资讯”这一菜单,会显示管理员在后台发布的所有的校园资讯,可以查看详情,进行收藏、点赞、评论等;

(5)我的账户:当用户点击右上角“我的”这个按钮,会出现子菜单,点击“我的账户”可以对个人的资料以及登录系统的密码进行设置;

(6)个人中心:当用户点击右上角“我的”这个按钮,就会进入到对应的后台进行信息的管理了;

后台端:

学校快递站点管理系统的后台主要实现了管理员、快递公司、业务员和学生四部分,其中管理员拥有最高的权限,可以对用户信息、系统信息以及学校快递站点信息进行管控。

(1)站点管理:管理员点击“站点管理”这一菜单会显示轮播图公告栏这两个子菜单,管理员可以对前台展示的公告消息和轮播图进行设置;

(2)用户管理:管理员点击“用户管理”这一菜单会显示管理员、学生、快递员和快递公司这四个子菜单,管理员可以对这四个角色的信息进行增删改查操作;

(3)内容管理:管理员点击“内容管理”这一菜单会显示交流论坛、交流论坛分类、校园资讯、校园资讯分类这四个子菜单,管理员可以对这四部门涉及到的功能进行更新维护,更好的服务于前台用户;

(4)快递信息:快速公司点击“快递信息”会显示出所有的快递信息,支持输入快递单号或者是快递公司对快递信息进行查询,如果想要添加新的快递,点击“添加”按钮,快递单号是自动生成的,然后输入快递公司、快递数量、学生姓名、学生账号、学生电话、快递员。快递员电话、配送时间、公司账号,点击“提交按钮”就可以添加了,同样如果快递信息有错误,可以点击“编辑”对快速信息进行更新,也可以选择某一条快速信息,点击“删除”进行删除;

(5)快递柜::快速公司点击“快递柜”会显示出所有的快递柜信息,支持输入柜号对快递柜进行查询,如果想要添加新的快递柜,点击“添加”按钮,输入柜号、格口类型、地址、图片,点击“提交按钮”就可以添加了,同样如果快递柜信息有错误,可以点击“编辑”对快递柜信息进行更新,也可以选择某一条快递柜信息,点击“删除”进行删除;

(6)快递配送:快递员点击“快速信息”后面的“快递配送”按钮,然后根据提示选择柜号、输入存放时间、取件码,点击“提交”进行快递配送后,就会在快递配送中显示自己提交的快递配送信息。

(7)快递取件:学生点击“快递配送”后面的“快递取件”按钮,然后根据提示填写好取件备注,点击“提交”进行快递取件后,就会在快递取件中显示自己提交的快递取件信息;

(8)快递评价:学生点击“快递取件”后面的“快递评价”按钮,然后根据提示填写好评价时间、评价详情,点击“提交”进行快递评价后,就会在快递评价中显示自己提交的快递评价信息,;

(9)寄快递:用户点击“寄快递”会显示出自己曾经提交的所有的寄快递信息,支持输入寄件人或者是寄件电话对快递进行查询,如果想要进行寄快递操作,点击“添加”按钮,输入寄件人、寄件人电话、物品类型、我怕种类、寄件地址,点击“提交”按钮就可以添加了,同样如果快递信息有错误,可以点击“编辑”对快递信息进行更新,也可以选择某一条快递信息,点击“删除”进行删除;

快递公司点击“寄快递”可以查看所有寄件信息,选择某一条快递点击“指派取件”根据提示输入上门时间、快递员进行“提交”取件信息。

(10)申请接单:快递员点击“申请接单”可以查看自己提交的申请接单信息,如果想要重新申请,点击“添加”按钮,然后输入快递员电话、申请时间、快速公司、申请原因,点击“提交”按钮就可以了,如果想要修改申请信息,点击“编辑”按钮可以对申请接单信息进行更新,也可以点击“删除”按钮对某一条申请信息进行删除;

快递公司点击“申请接单”可以查看快递员提交的申请信息,点击“编辑”按钮,可以对快递员提交的申请接单信息进行审核回复。

(11)快递收取:快递员点击“快递收取”这一按钮后会显示出所有的快递信息,点击“收取费用”然后根据提示输入总金额、收取时间、价格等,点击“提交”,在快递收取费用界面就可以查询了;

(12)快递费用收取:学生点击“快递费用收取”这一按钮后会显示出费用收取信息,可以点击“支付”按钮进行支付,也可以点“快递评价”按钮对快递进行评价;

(13)快递物流:快递公司点击“快递物料”这一按钮可以对快速的物料信息进行添加维护,学生在快递物流界面就可以查看到自己的快递的物流信息了;

三、系统前台模块

3.1系统前台登录页面

3.2交流论坛发布页面

3.3校园资讯页面

四、管理员功能模块

4.1站点管理模块

4.2用户管理模块 

4.3内容管理模块 

4.4更多管理模块 

五、快递公司功能模块

5.1快递信息页面

5.2快递柜页面

六、快递员功能模块 

6.1快递取件页面 

6.2快递收取页面  

七、学生功能模块

7.1寄快递页面

7.2快递配送页面 

八、部分核心代码

8.1快递取件关键代码 

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate()

8.2用户管理关键代码 

public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

    }

8.3用户注册关键代码

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人开发--雷达lidar

机器人开发--雷达lidar1 介绍2 分类2.1 整体分类2.2 机械式&#xff08;三角&ToF&#xff09;三角测距激光雷达ToF测距激光雷达3 机械式单线ToF激光雷达3.1 扫描原理3.2 不同材料反射率3.3 核心参数参考1 介绍 激光雷达&#xff08;英文&#xff1a;Laser Radar &#xff…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java制造类企业erp23725

面对老师五花八门的设计要求&#xff0c;首先自己要明确好自己的题目方向&#xff0c;并且与老师多多沟通&#xff0c;用什么编程语言&#xff0c;使用到什么数据库&#xff0c;确定好了&#xff0c;在开始着手毕业设计。 1&#xff1a;选择课题的第一选择就是尽量选择指导老师…

第十四周周报

学习目标&#xff1a; 一、论文“Vector Quantized Diffusion Model for Text-to-Image Synthesis”的Code 二、猫狗识别、人脸识别模型 学习内容&#xff1a; Code 学习时间&#xff1a; 12.4-12.9 学习产出&#xff1a; 一、论文Code 正向过程&#xff1a; 先通过Tam…

Python——学生管理系统

实现学生系统的增&#xff0c;删&#xff0c;查&#xff0c;打印所有学生功能&#xff0c;分别介绍使用列表存储和使用文件存储的代码 使用列表存储 import sys students []def menu():print("1. 新增学生")print("2. 显示学生")print("3. 查找学生…

【OpenCV学习】第10课:形态学操作的应用-图像去掉干扰线丶干扰点

仅自学做笔记用,后续有错误会更改 理论 去干扰线干扰点的操作方法&#xff0c; 大体上与第9课所说的提取水平/垂直线一致&#xff0c; 只是把核改为矩形&#xff0c; 不要线型就行&#xff0c;反正都是通过开操作来实行的。 操作流程&#xff1a; 输入图像&#xff08;一般是…

python数据分析:湖南省第七次人口普查可视化

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~ 今天案例难度指数: ☆☆☆ 准备 环境使用&#xff1a; Anaconda (python3.9) –> 识别我们写的代码 开发工具&#xff1a; jupyter notebook –> 代码编辑功能敲代码的工具 相关模块&#xff1a; pandas pyechart…

[附源码]计算机毕业设计基于Web的绿色环保网站Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

c# .net iot树莓派/香橙派用到物联网包Iot.Device.bindings 支持设备说明文档

c# .net iot树莓派&#xff08;进口&#xff0c;贵&#xff09;/香橙派&#xff08;国产&#xff0c;功能相同&#xff0c;性价比高&#xff09;用到物联网包Iot.Device.bindings 支持设备说明文档 我们c# .net iot开发树莓派/香橙派都需要用到Iot.Device.bindings、System.De…

RNA-seq 详细教程:假设检验和多重检验(8)

学习目标 了解模型拟合的过程比较两种假设检验方法&#xff08;Wald test vs. LRT&#xff09;了解多重测试校正的重要性了解用于多重测试校正的不同方法1. 模型拟合和假设检验 DESeq2 工作流程的最后一步是对每个基因进行计数并将其拟合到模型中并测试差异表达。 Hypothesis t…

osgEarth各个示例分析目录

概述 由于数字地球项目需要osgEarth的代码知识&#xff0c;故决定学习osgEarth的示例&#xff0c;示例中有很多可以借鉴的内容。以下是分析目录&#xff0c;完全是随机进行的&#xff0c;并没有什么上下文逻辑。 每一篇代码边学习边分析&#xff0c;如果有错误&#xff0c;请…

【Java面试】说说JVM的内存结构以及他们那些会产生内存溢出?

文章目录内存结构内存溢出的产生内存结构 对于JVM的内存结构&#xff0c;我将按照上面两张图配合来讲。 Java Source就是我们的Java源代码&#xff0c;经过JVM编译器编译之后变为Java Class也称Java字节码文件。当我们运行java命令对字节码文件进行运行的时候&#xff0c;将会…

深度学习-三维卷积神经网络(3DCNN)

1. 3DCNN理解 2D卷积仅仅考虑2D图片的空间信息&#xff0c;所以只适用于单张2D图片的视觉理解任务。在处理3D图像或视频时&#xff0c;网络的输入多了一个维度&#xff0c;输入由(c,height,width)(c,height,width)(c,height,width)变为了(c,depth,height,width)(c,depth,height…

计算机毕业设计django基于python学生考试成绩数据分析与可视化系统

项目介绍 随着社会的逐步发展,计算机网络技术对人们工作、生活影响是全面且深入的。基于计算机网络的管理系统越来越受到人们的欢迎,人们可以通过基于网络的管理系统进行实时数据信息查询、管理数据信息等,给人们的生活、工作带来便利。 在学校的日常管理工作中,学生成绩的统计…

【Python计算机视觉】项目实战之图像增强imguag对关键点变换、标注框变化(附源码 超详细必看)

需要源码或运行有问题请点赞关注收藏后评论区留言私信~~~ 一、imgaug简介 imguag使一个用于机器学习实验中图像增强的Python依赖库&#xff0c;支持Python2.7和Python3.4以上的版本&#xff0c;它支持多种图像增强技术&#xff0c;并允许轻松地组合这些技术&#xff0c;具有简…

uniapp中如何使用vuex进行状态管理(登录小案例讲解)

前言 本篇文章来讲解uniapp中如何使用vuex来实现状态管理&#xff0c;后面会讲实现登录状态管理的案例。如果之前学过vuex全家桶的同学那应该没啥问题&#xff0c;在uniapp中使用vuex和vue中基本是一样的。 什么是vuex 简单来说就是vue中的状态管理仓库&#xff0c;对于vuex…

从文件包含到RCE方法

前言 大家在参加众测的行动时&#xff0c;若是发现了以下基础危害不大的漏洞&#xff0c;不建议直接提交的&#xff0c;而是应该想办法看&#xff0c;能不能对该漏洞进行升级&#xff0c;扩大其危害&#xff0c;多拿点奖励。当然&#xff0c;文件包含不算常见&#xff0c;经常…

车床零件加工调度问题

目录 题目 思路 代码 运行结果 题目 某车间需要用一台车床和一台加工A&#xff0c;B&#xff0c;C&#xff0c;D4个零件。每个零件都需要先用车床加工&#xff0c;再用加工。车床和加工每个零件所需的工时&#xff08;包括加工前的准备时间以及加工后的处理时间)如下表所示。…

移动端APP测试常见面试题精析

现在面试测试职位&#xff0c;要求非常全面&#xff0c;那么APP测试一般需要哪些技术呢&#xff1f;下面总结了APP测试常见面试题&#xff1a; 1.Android四大组件? Activity:描述UI&#xff0c;并且处理用户与机器屏幕的交互。应用程序中&#xff0c;一个Activity就相当于手…

c++ 基础(新手入门必看)

C基础讲解&#xff0c;用于C语言向C的衔接 文章目录命名空间C输入输出缺省参数函数重载引用内联函数auto关键字基于范围for循环指针空值 -- nullptr命名空间 如果你以前看到过C的程序&#xff0c;那么你大概率会看到这样一行代码 这行代码就用到了命名空间的知识&#xff0c;…

QT 系统学习 day06 ,摄像头,语音识别(语音转文字,文字转语音,Qt 的人脸识别系统),

1.调用摄像头&#xff0c;拍照&#xff0c;存储照片 1.摄像头文件 /******* 摄像头相关类 *****/ #include <QCamera> /*** 摄像头类 ***/ #include <QCameraInfo> /*** 系统摄像头属性类 ***/ #include <QCameraImageCapture> /*** 用于记录摄像头数据的类…