本项目主要分为3个模块:
(1)邮客模块
(2)邮差模块
(3)管理员模块
注册模块:
2、邮客登录以后可以查看自己的权限以及快递信息
当每个邮客注册登录后,他的权限都为新用户:
代码:
当邮客想要寄件时,必须完善自己的信息:
代码:
@ResponseBody
String resuleinfo(HttpServletRequest request, String username, String phone, Long woid, String address) {
Mailcustomer = (Mailcustomer) request.getSession().getAttribute("mailcustomer");
mailcustomer.setManame(username);
mailcustomer.setMaadress(address);
mailcustomer.setMaworkingarea(workingareaService.findworkingareaById(woid));
mailcustomer.setMaphone(phone);
if (mailcustomer.getMarole().getRoid() == 1) {
mailcustomer.setMarole(roleService.findRoleById((short) 2));
}
mailcustomerService.savemailcustomer(mailcustomer);
request.getSession().setAttribute("mailcustomer", mailcustomer);
return "更改成功!";
}
完善自己的信息以后,就可以寄件,并可以看到自己的折扣情况
点击确定按钮,就能看到自己的寄件情况:
(2)邮差模块
1、邮差的登录
代码:
2、邮差可以查看快件的情况,也可以查看系统给予的任务,用不同颜色显示快件包裹的情况
派件:
收件:
当邮差点击正在寄件的时候,会弹出显示需要的金额
当邮差输入金额,点击确定以后,会在下方显示邮客需要交付的金额,然后用户也可以看到自己的邮费是多少
邮客查看金额:
代码:
@GetMapping("/receipt/{page}")
public String getreceipt(@PathVariable int page,HttpServletRequest request){
Post = (Post) request.getSession().getAttribute("post");
Sort = new Sort(Sort.Direction.DESC,"reid");
Pageable = PageRequest.of(page-1,10,sort);
Page<Recipient> recipients = recipientService.findRecipientToPost(post.getPoid(),pageable);
List<Recipient> recipients1 = recipients.getContent();
System.out.println(recipients1.toString());
List<State> lose = stateService.findLose("失败");
// System.out.println(lose.toString());
request.setAttribute("lose",lose);
isreoverdue(recipients1);
request.setAttribute("postrecipients",recipients1);
return "WO/Receipt";
}
3、当邮差寄件结束以后,点击完成寄件,邮客同时可以知道快件已经寄出了;当邮客发现快件在寄出过程中出现问题,可点击寄件失败按钮,提示邮客快件寄出过程遇到的问题:
2、管理员可以查看邮客的信息,并修改邮客的权限
注:当邮客没有完善自己的信息时,不能够修改他/她的权限
修改完以后,这里的每一个邮差的权限不同,所对应的颜色显示也不一样
代码:
3、查看邮差情况(详细信息),也可以新增邮差
修改邮差信息:
注:当邮差在所在区域有工作时,不能修改其工作区域以及工作状态,而当邮差有事请假在休息中,结束以后,管理员可以修改其状态以及工作区域
由上图看出,小强的工作状态已经修改为工作中
代码:
if (workingarea != post.getPoworkarea()) {
if (repostid.contains(new Short((short) 1)) || repostid.contains(new Short((short) 2)) ||
sepostid.contains(new Short((short) 1)) || sepostid.contains(new Short((short) 2))) {
return "该邮差目前在所处区域有正在进行的工作,不可更改!";
}else {
post.setPoworkarea(workingarea);
}
}
postService.update(post);
return "更改成功";
}
4、通过点击工作状况,可以查询某个邮差的工作情况:
在这里可以看到分配给每个邮差的任务,同时也可以根据邮客提交的快件订单,分配给每个邮差
查看工作量以及工资:
注:分配原则:在同一区域内,每一个快件会默认派给工作量较少的邮差,因为不可能有的邮差工作量很大,而有的邮差工作量很少,甚至没有工作量,所以在这里设置了优先级
本个项目对springboot初学者是一个很好的学习项目,如有兴趣,欢迎star~
源码地址:https://github.com/FsXI/RSCdemo