JAVAWeb物流快递管理系统

article/2025/10/8 22:13:07

把JAVA作为开发语言,sql作为数据库,按照软件工程的方法开发物流管理系统。系统主要分为功能模块和管理模块,其中功能模块主要包括登录、退出、登录密码修改;管理模块包括系统用户管理、客户信息管理、货物信息管理、接货单管理、车辆信息管理。该系统与传统手工物流管理相比,将广大客户、货物、车辆和货物单紧密联系在一起,有效缩短了物流运输的时间,大大提高了工作效率。经过对系统实现功能的要求,进行集中、分块,同时也按照结构化程序设计的要求,根据分析得到如下的系统功能模块图:

代码已经上传github,下载地址: https://github.com/21503882/Physical-manage

图4-1物流快递管理系统管理员子系统功能模块图

图4-2物流快递管理系统客户子系统功能模块图


5.3管理员子系统详细设计

图5-3 系统登录模块页面


图5-4 系统主界面

图5-5管理员管理主页面

图5-6添加管理员页面

图5-7业务员管理主页面

图5-8添加业务员页面

图5-9快件信息管理主页面

图5-10叫件分配页面

图5-11 叫件信息收录人主页面

图5-12 叫件信息页面

图5-13途中信息维护主页面

图5-14途径信息页面

图5-15客户管理主页面

图5-16添加会员信息页面

图5-17信息反馈管理主页面

图5-18信息反馈页面

图5-19查询服务页面


5.4客户子系统详细设计
5.4.1 客户注册页面
在使用系统时必须注册成为系统的客户,并输入详细的客户信息。对应的磁盘文件为servlet/CustomServlet?method=regeditPage,会员注册页面设计如图5-20所示:

图5-20会员注册页面

图5-21我的订单信息管理页面

图5-22叫件管理页面

图5-23个人信息修改页面

package com.nuist.faxe.web.controller;

import com.nuist.faxe.common.controller.message.ResponseMessage;
import com.nuist.faxe.common.entity.Msg;
import com.nuist.faxe.common.utils.ParamConfig;
import com.nuist.faxe.web.domain.LoginInfo;
import com.nuist.faxe.web.domain.User;
import com.nuist.faxe.web.service.UserService;
import com.nuist.faxe.web.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
* 用户Controller
*
* @author ZhouXiang
**/
@RestController
@RequestMapping("/audio/user")
public class UserController {

@Autowired
private UserService service;

/**
* 验证userName可用
* userName不能重复
* @param userName
* @return boolean
*/
@CrossOrigin
@GetMapping("/check/{userName}")
public ResponseMessage<Boolean> checkUserName(@PathVariable String userName){
boolean result = service.checkUserName(userName);
return ResponseMessage.ok(result);
}
/**
* 登录
* @param info
* @return 登录结果
*/
@CrossOrigin
@PostMapping("/login")
public ResponseMessage<UserVO> login(@RequestBody LoginInfo info){
User result = service.checkLogin(info.getUserName(), info.getPassWord());
if(null != result){
return ResponseMessage.ok(entity2Model(result));
}else {
return ResponseMessage.error("Login Fail");
}
}
/**
* 注册
* @param user
* @return id
*/
@CrossOrigin
@PostMapping("/register")
public ResponseMessage<String> register(@RequestBody User user){
String id = service.register(user.getUserName(), user.getPassWord());
return ResponseMessage.ok(id);
}

/**
* 仅限管理员调用
* 管理员userId根据id删除一条记录
* @param userId
* @return Boolean
*/
@CrossOrigin
@DeleteMapping("/{userId}/{id}")
public ResponseMessage<Boolean> deleteUserById(@PathVariable(value = "userId") String userId,
@PathVariable(value = "id") String id){
User user = service.getUserById(userId);
if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
//若是管理员
boolean result = service.deleteUserById(id);
return ResponseMessage.ok(result);
}else{
return ResponseMessage.error("You Can Not Delete It");
}
}
@CrossOrigin
@DeleteMapping("/{userId}")
public ResponseMessage<Boolean> deleteUserByIds(@PathVariable String userId,
@RequestParam("userIds") List<String> ids){
User user = service.getUserById(userId);
if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
//若是管理员
boolean result = service.deleteUserByIds(ids);
return ResponseMessage.ok(result);
}else {
return ResponseMessage.error("You Can Not Delete Them");
}
}

/**
* 根据id查询一条记录
* @param userId
* @return UserVO
*/
@CrossOrigin
@GetMapping("/{userId}")
public ResponseMessage<UserVO> getUserById(@PathVariable String userId){
User result = service.getUserById(userId);
return ResponseMessage.ok(entity2Model(result));
}

@CrossOrigin
@GetMapping("/list/{userId}")
public Msg<List<User>> list(@PathVariable String userId,
@RequestParam("page")Integer page,
@RequestParam("limit")Integer limit){
User user = service.getUserById(userId);
if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
//若是管理员
long count = service.countUser();
List<User> data = service.list(page, limit);
return Msg.ok(data, (int)count);
}else {
return Msg.error("You Can Not List It");
}
}

/**
* 普通用户密码修改
* @param userId
* @param originalPassWord
* @param newPassWord
* @return
*/
@CrossOrigin
@PatchMapping("/{userId}")
public ResponseMessage<Integer> update(@PathVariable String userId,
@RequestParam(value = "originalPassWord") String originalPassWord,
@RequestParam(value = "newPassWord") String newPassWord){
User user = service.getUserById(userId);
if(user.getPassWord().equals(originalPassWord)){
//若输入的原始密码正确,则进行密码修改
return ResponseMessage.ok(service.updatePassWord(userId, newPassWord));
}else{
return ResponseMessage.error("Your password is error!");
}
}

/**
* id为userId的管理员修改用户id的密码为newPassWord
* @param userId
* @param id
* @param newPassWord
* @return
*/
@CrossOrigin
@PatchMapping("/{userId}/{id}")
public ResponseMessage<Integer> updateByManager(@PathVariable(value = "userId") String userId,
@PathVariable(value = "id") String id,
@RequestParam String newPassWord){
User user = service.getUserById(userId);
if(user.getRole().equals(ParamConfig.ROLE_ADMIN)){
//若当前角色为管理员
return ResponseMessage.ok(service.updatePassWord(id, newPassWord));
}else{
return ResponseMessage.error("Your can not update it!");
}
}

private UserVO entity2Model(User entity){
UserVO model = new UserVO();
model.setId(entity.getId());
model.setUserName(entity.getUserName());
model.setRole(entity.getRole());
return model;
}
}


http://chatgpt.dhexx.cn/article/djPhgsN9.shtml

相关文章

基于JavaWeb的物流管理系统的设计与实现

源码下载 http://www.byamd.xyz/hui-zong-1/摘 要 物流作为中国经济发展迅速的代表行业之一&#xff0c;在当今时代&#xff0c;它在我们身边无处不在&#xff0c;我们几乎可以随时随地看到它们的身影&#xff0c;为什么我们能在网上买的东西能在几天时间里送到我们手中&…

计算机毕业设计 Java web物流配送管理系统

文章目录 0 项目说明1 项目各文件介绍2 项目运行准备工作3 项目目录结构介绍4 效果图展示5 项目源码 0 项目说明 基于Java web的物流配送管理系统 提示&#xff1a;适合用于课程设计或毕业设计&#xff0c;工作量达标&#xff0c;源码开放 项目分享&#xff1a; https://gi…

物流公司货运配送管理系统设计

物流公司货运配送管理系统要求基于B/S架构&#xff0c;开发出一个对硬件要求相对较低&#xff0c;功能全面能实现物流管理人员日常工作&#xff0c;操作简单方便&#xff0c;易上手&#xff0c;使用流畅&#xff0c;可扩展性强的应用管理系统。主要有角色管理&#xff0c;配货管…

【springboot中jasypt-spring-boot-starter的使用】

目录 1. 简介2. 引入依赖3. 自定义加解密的方式4. 获取密文5. 编写配置文件6. 验证结果 1. 简介 在项目开发的过程中&#xff0c;经常会需要在配置文件中存储一些敏感的信息&#xff0c;如数据库的账号密码&#xff0c;支付相关信息&#xff0c;密钥等等&#xff0c;这些信息在…

Jasypt加密

使用场景 我们的一些项目的配置文件中难免会有一些敏感的配置信息&#xff0c;虽然现在都用alibaba的nacos&#xff0c;但是如果我们有些项目不是分布式的话&#xff0c;我们就需要处理一下。接下来我们就来看看&#xff0c;如何使用jasypt对敏感信息加密。 搭建SpringBoot项目…

【Jasypt】springboot集成Jasypt配置文件加密

背景 随着互联网的不断发展&#xff0c;信息安全越来越被人们所重视&#xff0c;对一些敏感信息的加密要求也越来越高。按等保要求&#xff0c;项目配置文件里的明文密码导致的数据泄漏等问题也需要解决。本文简单介绍基于Jasypt的配置文件加密使用&#xff08;jasypt-spring-…

Jasypt加密库基本使用方法

目录 1 Jasypt简介... 2 基础知识回顾... 3 Jasypt基本加密器... 4 JasyptPBE加密器... 5 Jasypt池化加密器... 6 Jasypt客户端工具... 7 JasyptSpringboot基本用法... 8 JasyptSpringboot自定义加密器... 9 JasyptSprin…

spring boot使用jasypt加密原理解析

目录 版本对应的坑 关键技术点 源码解析 将jar包引入到spring boot中 EnableAutoConfiguration原理 JasyptSpringBootAutoConfiguration 一是其Import的StringEncryptorConfiguration.class 二是其对spring环境中包含的PropertySource对象的处理 一是AbstractApplicat…

使用 Jasypt 为Spring Boot配置文件中的密码加密

在本教程中&#xff0c;我将指导您如何加密Spring Boot应用程序配置文件&#xff08;应用程序.properties或应用程序.yml&#xff09;中的敏感信息&#xff0c;例如数据源的用户名和密码&#xff0c;SMTP服务器的凭据等...使用Jasypt 库 – 为了提高基于Spring框架的Java应用程…

【Jasypt】Spring Boot 配置文件加解密 Jasypt 配置文件加密

Spring Boot 配置文件加解密 一、Jasypt简介二、集成方法2.1 方式一2.2 方式二2.3 方式三 三、Springboot整合Jasypt实战3.1 引入依赖3.2 编写配置类&#xff0c;配置相关信息3.3 使用Jasypt对数据库密码加密&#xff0c;并替换明文3.4 查看执行结果 四、拓展4.1 关于加解密秘钥…

【springboot】jasypt加密

参考&#xff1a; https://blog.csdn.net/enthan809882/article/details/105529349https://amore.blog.csdn.net/article/details/111468221https://blog.csdn.net/weixin_49076592/article/details/119797675 Jasypt Jasypt是加密库&#xff0c;支持密码、Digest认证、文本、…

jasypt-spring-boot 加密敏感信息

文章目录 一、简介二、导入依赖三、加密字段工具类四、application.yaml 配置五、启动类测试 一、简介 在后端开发中有很多敏感信息&#xff0c;比如数据库用户名密码&#xff0c;第三方 Apikey&#xff0c;云服务商的 secretKey 等、如果不希望用明文在 application.yml 配置…

jasypt-spring-boot敏感信息加密解密利器使用指南

1. 简介 Springboot整合Jasypt&#xff0c;实现配置信息的安全&#xff0c;如数据库连接.账号和密码.接口凭证信息等。 Jasypt可以为Springboot加密的信息很多&#xff0c;主要有&#xff1a; System Property 系统变量 Envirnment Property 环境变量 Command Line argument 命…

Spring Boot项目使用 jasypt 加密组件进行加密(例如:数据库、服务的Key、等等进行加密)

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

jasypt中的加密与解密

jasypt由于其使用的是PBEWithMD5AndDES加密方式&#xff0c;所以每次加密出来的结果都不一样&#xff0c;所以很适合对数据进行加密 没什么好说的了&#xff0c;直接看demo。 基本操作 添加依赖 <dependency><groupId>com.github.ulisesbocchio</groupId>&…

jasypt的基本原理

文章目录 一、jasypt的启动类加载二、 jasypt中Encryptor、Detector和Resolver加载三、jasypt中EnableEncryptablePropertiesBeanFactoryPostProcesso四、proxy代理方式增强propertySources五、wrapper包装类方式增强propertySources六、resolver中属性值解密 作者&#xff1a;…

Jasypt 开源加密库使用教程

目录 Jasypt 加密概述 Jasypt 快速使用 StringEncryptor 加解密 Jasypt 配置详解 Jasypt 加密概述 1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持&#xff0c;出于安全考虑&#xff0c;Spring boot 配置文件中的敏感信息通常需要对它进行加密/脱敏…

使用jasypt 进行配置文件加密

项目中application.yml 配置文件的各种链接的username&#xff0c;password的值都是明文的&#xff0c;其实存在一定的安全隐患&#xff0c;这是可以使用jasypt 的方式进行明文加密, 需要注意的是 盐值和密文分开保存 参考学习-1 参考学习-2 下面实现最简单的配置 项目是sprin…

Jasypt实现数据加解密(脱敏)

场景一&#xff1a;对配置文件中的裸露的密码进行加密 1、添加依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version></dependency> …

加密组件Jasypt学习、实战及踩坑记录

概述 最近入职新公司&#xff0c;因几乎全部项目都使用到jasypt&#xff0c;故而初步学习记录下本文&#xff08;持续更新&#xff09;。 官网及GitHub给出的简介&#xff1a;使用简单&#xff0c;性能好&#xff0c;特性features非常丰富&#xff1b;支持 另&#xff0c;有个…