作者主页:Java毕设网
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
一、项目介绍
基于springboot的物流管理系统,这个项目的技术使用的都是比较新的,代码写的架构设计、编码风格很规范、注释清洗、代码简洁、适合于二次开发、学习。
管理员角色:注册、登录、我的物流,可以创建我要寄件,可以查看我要收件。个人管理,个人信息的查看和修改(头像、用户名、账号、密码、电话、邮箱等属性)、我收到的(展示收到的物流信息,如快递编号、寄件人、存放位置、订单时间、状态等)、我寄出的(可以自行修改订单的状态,未寄出、已寄出、已签收等)。后台管理:物流管理和用户管理。
普通用户:注册、登录、我的物流,可以创建我要寄件,可以查看我要收件。个人管理,个人信息的查看和修改(头像、用户名、账号、密码、电话、邮箱等属性)、我收到的(展示收到的物流信息,如快递编号、寄件人、存放位置、订单时间、状态等)、我寄出的(可以自行修改订单的状态,未寄出、已寄出、已签收等)。
二、环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
三、技术栈
1.后端:SpringBoot+Mysql+redis+Mybatis-plus
2.前端:Thymeleaf+jquery+layui
四、使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,控制台提示运行成功后在浏览器中输入地址:http://localhost:8080/
五、运行截图
六、相关代码
登陆管理控制器
/**
* @author EV
* @date 2021/4/8 23:31
*/
@Controller
public class LoginController {
@Autowired
UserService userService;
@GetMapping("/toLogin")
public String toLogin(){
return "login";
}
@PostMapping("/userLogin")
public String login(@RequestParam String username, @RequestParam String password,
HttpSession session, RedirectAttributes attributes) {
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", username).eq("password", password);
User user = userService.getOne(wrapper);
if (user != null){
session.setAttribute("user",user);
return "redirect:/index";
}else {
attributes.addFlashAttribute("message","用户名或密码错误");
return "redirect:/toLogin";
}
}
@GetMapping("/toRegister")
public String toRegister() {
return "register";
}
@PostMapping("/register")
public String register(User user) {
user.setCreateTime(new Date());
userService.save(user);
return "redirect:/toLogin";
}
@GetMapping("/findUsername")
@ResponseBody
public void findUsername(String username, HttpServletResponse response) throws IOException {
response.setContentType("application/json;charset=utf-8");
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", username);
User userInfo = userService.getOne(wrapper);
Map<String, Object> map = new HashMap<>();
if (userInfo != null) {
map.put("userExit", true);
map.put("msg", "用户名已存在");
} else {
map.put("userExit", false);
map.put("msg", "正确");
}
//将map转为json,并且传递给客户端
String s = JSON.toJSONString(map);
PrintWriter writer = response.getWriter();
writer.write(s);
writer.close();
}
@GetMapping("/findName")
@ResponseBody
public void findName(String name, HttpServletResponse response) throws IOException {
response.setContentType("application/json;charset=utf-8");
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("name", name);
User userInfo = userService.getOne(wrapper);
Map<String, Object> map = new HashMap<>();
if (userInfo != null) {
map.put("nameExit", true);
map.put("msg", "用户名已存在");
} else {
map.put("nameExit", false);
map.put("msg", "正确");
}
//将map转为json,并且传递给客户端
String s = JSON.toJSONString(map);
PrintWriter writer = response.getWriter();
writer.write(s);
writer.close();
}
@GetMapping("/logout")
public String logout(HttpSession session){
session.removeAttribute("user");
return "redirect:/toLogin";
}
}
用户管理控制器
/**
* @author EV
* @date 2021/5/3 22:16
*/
@Controller
public class UserController {
@Autowired
UserService userService;
@Autowired
PostService postService;
@Autowired
OrdersService ordersService;
@Autowired
private AliyunOssUtil aliyunOssUtil;
//个人信息
@GetMapping("/toUserInfo")
public String toUserInfo(HttpSession session, RedirectAttributes attributes) {
User userInfo = (User) session.getAttribute("user");
if (userInfo != null) {
Integer id = userInfo.getId();
User user = userService.getById(id);
//更新
session.setAttribute("user", user);
return "userInfo";
} else {
attributes.addFlashAttribute("message", "权限不足,请先登录");
return "redirect:/toLogin";
}
}
@PostMapping("/updateUserInfo")
public String updateUserInfo(User user, HttpSession session) {
User userInfo = (User) session.getAttribute("user");
Integer id = userInfo.getId();
user.setId(id);
userService.updateById(user);
return "redirect:/toUserInfo";
}
@GetMapping("/findByName")
@ResponseBody
public void findName(String name, HttpSession session, HttpServletResponse response) throws IOException {
User nowUser = (User) session.getAttribute("user");
Integer id = nowUser.getId();
response.setContentType("application/json;charset=utf-8");
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("name", name).ne("id", id);
User userInfo = userService.getOne(wrapper);
Map<String, Object> map = new HashMap<>();
if (userInfo != null) {
map.put("nameExit", true);
map.put("msg", "用户名已存在");
} else {
map.put("nameExit", false);
map.put("msg", "正确");
}
//将map转为json,并且传递给客户端
String s = JSON.toJSONString(map);
PrintWriter writer = response.getWriter();
writer.write(s);
writer.close();
}
@RequestMapping("/uploadAvatar")
public String uploadAvatar(@RequestParam("file") MultipartFile file, HttpSession session) {
String filename = file.getOriginalFilename();
try {
if (file != null) {
if (!"".equals(filename.trim())) {
File newFile = new File(filename);
FileOutputStream outputStream = new FileOutputStream(newFile);
outputStream.write(file.getBytes());
outputStream.close();
file.transferTo(newFile);
//返回图片的URL
String url = aliyunOssUtil.upLoad(newFile);
User userInfo = (User) session.getAttribute("user");
userInfo.setAvatar(url);
userService.saveOrUpdate(userInfo);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/toUserInfo";
}
//我收到的
@GetMapping("/toUserPickUp")
public String toUserPickUp(@RequestParam(required = false, defaultValue = "1", value = "pageNum") int pageNum, HttpSession session, Model model, RedirectAttributes attributes) {
User userInfo = (User) session.getAttribute("user");
if (userInfo != null) {
PageHelper.startPage(pageNum, 6);
List<Orders> ordersList = ordersService.findAllByUserId(userInfo.getId());
PageInfo<Orders> pageInfo = new PageInfo<>(ordersList);
model.addAttribute("ordersList", ordersList);
model.addAttribute("pageInfo", pageInfo);
return "userPickUp";
} else {
attributes.addFlashAttribute("message", "权限不足,请先登录");
return "redirect:/toLogin";
}
}
//我寄出的
@GetMapping("/toUserSend")
public String toUserSend(@RequestParam(required = false, defaultValue = "1", value = "pageNum") int pageNum, HttpSession session, Model model, RedirectAttributes attributes) {
User userInfo = (User) session.getAttribute("user");
if (userInfo != null) {
PageHelper.startPage(pageNum, 6);
List<Post> postList = postService.findByUserId(userInfo.getId());
PageInfo<Post> pageInfo = new PageInfo<>(postList);
model.addAttribute("postList", postList);
model.addAttribute("pageInfo", pageInfo);
return "userSend";
} else {
attributes.addFlashAttribute("message", "权限不足,请先登录");
return "redirect:/toLogin";
}
}
@GetMapping("toPostDetail/{id}")
public String toPostDetail(@PathVariable Integer id, Model model) {
Post post = postService.findById(id);
model.addAttribute("post",post);
return "send3";
}
@GetMapping("toUpdatePost/{id}")
public String toUpdatePost(@PathVariable Integer id, Model model) {
Post post = postService.findById(id);
model.addAttribute("post",post);
return "send2";
}
@GetMapping("deletePost/{id}")
public String deletePost(@PathVariable Integer id) {
postService.removeById(id);
return "redirect:/toUserSend";
}
}