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


0 项目说明

基于Java web的物流配送管理系统

提示:适合用于课程设计或毕业设计,工作量达标,源码开放

项目分享:

https://gitee.com/asoonis/feed-neo


1 项目各文件介绍

  • Logistics_Manage_System 项目主文件,也就是该项目你需要导入运行的文件
  • hibernate_mapping这个项目文件,是我把这其中的hibernate单独另外拿出来对hibernate进行讲解分析,这个项目文件与物流的项目没有具体关系,只是对hibernate的一个案例分析,运行的话每一个包下都有main主函数,可以直接进行java类的mian函数运行即可,里面有数据库表的一对一、一对多以及多对多的数据关系,可以用来对hibernate学习的参考使用
  • img 用于有关项目的功能截图以及存放文件
  • test 这个文件是当时我对项目的一些部分功能测试,可以不做考虑
  • word 有关该项目的部分文档设计

2 项目运行准备工作

  • 导入Logistics_Manage_System该项目文件
  • 数据库文件为conf目录下的db.properties,这是导入项目后需要看的第一个文件,也是你项目运行需要唯一注意的文件
  • 项目启动前,看一下db.properties这个文件是不是和你本地的数据库统一(用户名以及密码),我用的是mysql数据库,之后你要创建一个名为logistics的数据库,然后启动项目就好了,数据库表的工作就交给hibernate,它会为你自动创建数据库表的。至此项目启动成功。
  • 因为该项目没有使用Maven工程的构建方式,所以你不需要考虑jar包的问题,项目中所涉及到的jar包都放在了WEB-INF下的lib目录文件下
  • 完成以上的几点你的项目就已经成功跑起来了

3 项目目录结构介绍

|-- build                                                      // 配置文件无需考虑
|-- conf                                                       // 项目有关的配置文件
|   |-- applicationContext.xml                                 // 应用上下文配置文件
|   |-- applicationContext-beans.xml                           // JavaBean配置文件
|   |-- db.properties                                          // 数据库配置文件
|   |-- hibernate.cfg.xml                              	       // hibernate配置文件
|   |-- struts.xml                                             // 与Struts有关的配置
|-- src                                                        // 源码目录
|   |-- com
|       |-- wt
|           |-- action
|               |-- AdminAction.java                           // 管理员处理类
|               |-- CreateImageAction.java                     // 验证码生成处理类
|               |-- OrderAction.java                           // 订单处理类
|               |-- UserAction.java                            // 用户处理类
|               |-- VerifyCodeAction.java                      // 另一种验证码生成处理类
|           |-- dao
|               |-- AdminDao.java                              // 管理员处理dao层部分
|               |-- BaseDao.java                               // 可被其他dao层重复利用进行减少代码冗余的dao层部分
|               |-- OrderDao.java                              // 订单处理dao层部分
|               |-- UserDao.java                               // 用户处理dao层部分
|           |-- entity
|               |-- Admin.java                                 // 管理员实体类 
|               |-- Admin.hbm.xml
|               |-- Book.java                                  // 书籍实体类 
|               |-- Book.hbm.xml
|               |-- Order.java                                 // 订单实体类
|               |-- Order.hbm.xml
|               |-- User.java                                  // 用户实体类
|               |-- User.hbm.xml                               
|               |-- Warehouse.java                             // 仓库实体类
|               |-- Warehouse.hbm.xml
|           |-- fileHandle
|               |-- FileHandle.java                            // 文件处理类
|           |-- interceptor
|               |-- AdminLoginInterceptor.java                 // 管理员拦截器处理类 
|               |-- UserLoginInterceptor.java                  // 用户登录拦截器处理类 
|               |-- UserLoginLogisticsInterceptor.java         // 用户登录物流配送中心拦截器处理类 
|               |-- UserLoginShoppingInfoInterceptor.java      // 用户登录商城拦截器处理类
|           |-- jsonHandle
|               |-- AdminLoginJsonHandle.java                  // 管理员登录json数据处理类 
|               |-- ApplyResetPasswordJsonHandle.java          // 邮件发送json数据处理类
|               |-- LoginJsonHandle.java                       // 用户登录json数据处理类 
|               |-- RegisterJsonHandle.java                    // 注册用户json数据处理类
|               |-- ResetPasswordJsonHandle.java               // 修改密码json数据处理类
|               |-- UserValidate.java                          // 用户验证处理类
|           |-- service
|               |-- AdminService.java                          // 管理员service层处理类 
|               |-- OrderService.java                          // 订单service层处理类 
|               |-- UserService.java                           // 用户service层处理类 
|           |-- utilMail
|               |-- ApplyResetPassword.java                    // 发送邮件修改密码模拟类
|               |-- MailSenderInfo.java                        // 邮件注册信息
|               |-- MyAuthenticator.java                       // 获取发送邮件者信息
|               |-- SimpleMailSender.java                      // 以文本格式发送邮件   
|               |-- Test.java                                  // 邮件发送测试类,可单独运行进行邮件发送测试
|           |-- template
|               |-- emailTemplate.vm			       // 发送邮件的模板
|   |-- WebContent    // 页面入口文件由于其中涉及的都是前端页面以及js、css部分这里不做过多介绍,根据命名也能很好的推测出
|   	|-- css						       // 第三方提供的css
|   	|-- js 						       // 第三方提供的js
|   	|-- template
|   	    |-- template.ftl			               // 下载word文档的模板
|   	|-- static					       // 特定页面使用的手写js以及css
|           |-- css
|   	    |-- js
|       |-- WEB-INF 
|           | -- lib                 			       // jar 包存放位置
|           | -- web.xml             			       // 项目及工具的依赖配置文件
|-- README.md                        			       // 说明

4 效果图展示

首页展示在这里插入图片描述
管理员登录页面
在这里插入图片描述
管理员管理用户信息页面
在这里插入图片描述
订单配送中心页面
在这里插入图片描述

5 项目源码

package com.wt.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
import com.wt.entity.Book;
import com.wt.entity.Order;
import com.wt.entity.Warehouse;
import com.wt.service.OrderService;

public class OrderAction extends ActionSupport implements RequestAware,
ModelDriven<Book>, Preparable{

	private static final long serialVersionUID = 1L;
	
	private OrderService orderService;
	
	ActionContext context = ActionContext.getContext();
	
	HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);
	
	HttpSession session = request.getSession();
	
	// ����Ϊ��ȡ����
	String userName = (String) session.getAttribute("username");
	
	String bookname = request.getParameter("bookname");
	
	public void setOrderService(OrderService orderService) {
		this.orderService = orderService;
	}
	
	// ����Ϊ��ѯ�û��Ĺ����¼
	public void query() {
		
		// ����Ϊ��ѯ�û��Ķ����б�
		List<Order> orders = orderService.findOrder(userName);
		List<Book> books = new ArrayList<>();
		for (Order order : orders) {
			books.add(order.getBook());
		}

		// ����Ϊͼ���б�
		for (Book book : books) {
			System.out.println("book.getBook_name() --- " + book.getBook_name());
			System.out.println("book.getPrice() --- " + book.getPrice());
		}
		
		
		if(books != null){
			Map<String, Object> mapSession = ActionContext.getContext().getSession();
			mapSession.put("books", books);
		}
	}
	
	// ����Ϊ��ѯ�û��Ĺ����¼
	public void logisticsQuery() {
		
		// ����Ϊ��ѯ�û��Ķ����б�
		List<Order> orders = orderService.findOrder(userName);
		List<Book> books = new ArrayList<>();
		for (Order order : orders) {
			books.add(order.getBook());
		}

		// ����Ϊͼ���б�
//		for (Book book : books) {
//			System.out.println("book.getBook_name() --- " + book.getBook_name());
//			System.out.println("book.getPrice() --- " + book.getPrice());
//		}
		
		// 0 Ϊ��������1Ϊ���䡢2Ϊ���͡�3Ϊǩ��
 		
 		// 0 ������
 		List<Book> pendingBooks = new ArrayList<>();
 	
 		for (Book book : books) {
			if(book.getBook_state() == 0){
				pendingBooks.add(book);
			}
		}
 		
 		// 1����
 		List<Book> transportBooks = new ArrayList<>();
 	 	
 		for (Book book : books) {
			if(book.getBook_state() == 1){
				transportBooks.add(book);
			}
		}
 		
 		// 2����
 		List<Book> sendBooks = new ArrayList<>();
 	 	
 		for (Book book : books) {
			if(book.getBook_state() == 2){
				sendBooks.add(book);
			}
		}
 		
 		// 3Ϊǩ��
 		List<Book> signBooks = new ArrayList<>();
 	 	
 		for (Book book : books) {
			if(book.getBook_state() == 3){
				signBooks.add(book);
			}
		}
		
		if(books != null){
			Map<String, Object> mapSession = ActionContext.getContext().getSession();
			mapSession.put("books", books);
			mapSession.put("pendingBooks", pendingBooks);
			mapSession.put("transportBooks", transportBooks);
			mapSession.put("sendBooks", sendBooks);
			mapSession.put("signBooks", signBooks);
		}
		
	}
	
	public String save(){
		
		System.out.println("saveOrder");

		String StrQuantity = request.getParameter("quantity");
		int quantity = Integer.parseInt(StrQuantity);
		
		String StrPrice = request.getParameter("price");
		int unit_price = Integer.parseInt(StrPrice);
		
		int price = quantity * unit_price;
		
		// ��ȡ�ֿ��е�ͼ��
		Warehouse w_book = orderService.findWarehouseBook(bookname);
		
		int w_quantity = w_book.getQuantity();
		
		String w_q = Integer.toString(w_quantity);
		
		w_quantity = w_quantity - quantity;
		
		if(w_quantity < 0){
			session.setAttribute("notEnough", "notEnough");
			session.setAttribute("w_q", w_q);
			session.setAttribute("bookname", bookname);
			System.out.println("��治��");
		}
		else{
			session.removeAttribute("notEnough");
			session.removeAttribute(w_q);
			session.removeAttribute(bookname);
			
			// �½�����
			Order order = new Order();
			
			Book book = new Book();
			
			book.setBook_name(bookname);
			book.setQuantity(quantity);
			book.setPrice(price);
			book.setBook_state(0);
			
			order.setUser_name(userName);
			
			orderService.saveOrUpdateBook(book);
			order.setBook(book);
			orderService.saveOrUpdateOrder(order);
			
			// ���²ֿ��е�ͼ����Ŀ
			w_book.setQuantity(w_quantity);
			orderService.saveOrUpdateWarehouseBook(w_book);
		}
		
		query();
		
		return "save";
	}
	
	public String shoppingInfo(){
		
		query();
		
		return "shoppingInfo";
	}
	
	public String logisticsInfo(){
		
		logisticsQuery();
		
		return "logisticsInfo";
	}
	
	

	@Override
	public void setRequest(Map<String, Object> arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void prepare() throws Exception {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public Book getModel() {
		// TODO Auto-generated method stub
		return null;
	}

}

项目分享:

https://gitee.com/asoonis/feed-neo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值