文末获取源码
开发语言: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;
}