⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ordercontrollerimpl.java

📁 JSP开发的完整的网络商店.包含源代码和开发文档等
💻 JAVA
字号:
/*
 * Created on 2005-10-29
 * Author 曹汕
 * Version 1.0
 * Copyright by CS.SSPKU Inc. All rights reserved. 
 */
package com.struts.controller.impl;

import java.util.Vector;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import com.struts.utils.*;
import com.struts.business.*;
import com.struts.controller.OrderController;

import javax.transaction.*;


/**
 * @author cs
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class OrderControllerImpl extends ControllerImpl implements OrderController{
	
	private static OrderControllerImpl _instance;

	/**
	 * 单例模式,只创建唯一一个实例 
	 * @return 返还OrderController 类的惟一实例
	 */
	public static synchronized OrderControllerImpl getInstance() {
		if (_instance == null)
			_instance = new OrderControllerImpl();
		return _instance;
	}
	
	public OrderControllerImpl(){
		}
	/**
	 * 订单写入数据库
	 * 事务出错回滚.
	 * @param OrderHead
	 * @param Shoppingcart
	 * @return OrderId
	 */
	public int SaveOrder(OrderHead oh,Vector shoppingcart){
		String strSql;
		ResultSet rs;
		int orderHeadId;
		int orderLineId;
	
		orderHeadId=getId("ORDERHEADSEQ");
		DBConnectionManager dbconnection=DBConnectionManager.getInstance();
		Connection conn=dbconnection.getConnection();
		
		Shoppingcart sc=new Shoppingcart();
		strSql="insert into ORDERHEAD" 
			+"(ID,MEMBER_ID,ORDER_DATE,POSTCODE,DELIVERY_ADDRESS," 
			+"DELIVERY_TYPE,PAYMENT_TYPE,ORDER_MAN,ORDER_PHONE,STATUS," 
			+"LESS_DEAL,ISINVOICE,REMARK) values(" 
			+orderHeadId+","
			+oh.getMemberId()+",SYSDATE,'"
			+oh.getPostcode()+"','"
			+oh.getDeliveryAddress()+"',"
			+oh.getDeliveryType()+","
			+oh.getPaymentType()+",'"
			+oh.getOrderPeople()+"','"
			+oh.getOrderPhone()+"',0,"
			+oh.getLessDeal()+",0,'"
			//先默认不开发票,呵呵
			//+oh.getIsInvoice()+",'"
			+oh.getRemark()+"')";
		try{
			conn.setAutoCommit(false);
			Statement stmt = conn.createStatement();
			stmt.executeUpdate(strSql);
			for(int i=0;i<shoppingcart.size();i++)
			{
				sc=(Shoppingcart)shoppingcart.get(i);
				orderLineId=getId("ORDERLINESEQ");
				strSql="insert into ORDERLINE(ID,ORDERHEAD_ID,PRODUCT_ID," 
					+"STATUS,PRODUCT_QUANTITY,PRICE)VALUES("
					+orderLineId+","
					+orderHeadId+","
					+sc.getProductId()+",0,"
					+sc.getQuantity()+","
					+sc.getMemberPrice()+")";
				stmt.executeUpdate(strSql);;
			}
			conn.commit();
			conn.setAutoCommit(true);
		}catch(Exception e){
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
				
			}
			e.printStackTrace();
		}
		return orderHeadId;
	}
	
	/**
	 * 审查订单,修改订单状态.
	 */
	
	/**
	 * 查看订单头信息.
	 * @param id 即订单id
	 * @throws SQLException
	 * @return OrderHead
	 */
	public OrderHead getOrderInfo(int id){
		OrderHead oh=new OrderHead();
		
		String sql="select * from vw_order where id="+id;
		ResultSet rs=selectRecord(sql);
		try {
			while(rs.next()){
				oh.setId(id);
				oh.setMemberId(rs.getInt("member_id"));
				//收件人
				oh.setOrderPeople(rs.getString("order_man"));
				//订单日期
				oh.setOrderDate(rs.getString("order_date"));
				//收件人电话
				oh.setOrderPhone(rs.getString("order_phone"));
				//邮编
				oh.setPostcode(rs.getString("postcode"));
				//收件人地址
				oh.setDeliveryAddress(rs.getString("delivery_address"));
				//需要发票标志
				oh.setIsInvoice(rs.getInt("isinvoice"));
				//订单状态
				oh.setStatus(rs.getInt("status"));
				//会员ID
				oh.setMemberId(rs.getInt("member_id"));
				//支付方式
				oh.setPaymentType(rs.getInt("payment_type"));
				//送货方式
				oh.setDeliveryType(rs.getInt("delivery_type"));
				//缺货处理方式
				oh.setLessDeal(rs.getInt("less_deal"));
				//备注
				oh.setRemark(rs.getString("remark"));
				//订单状态
				oh.setStatusName(rs.getString("order_status_name"));
				//缺货处理方式名称
				oh.setLessDealName(rs.getString("less_deal_name"));
				//送货方式名称
				oh.setDeliveryTypeName(rs.getString("delivery_type_name"));
				//支付方式名称
				oh.setPaymentTypeName(rs.getString("payment_type_name"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("订单头信息查询错误");
		}	
		
		return oh;
	}
	/**
	 * 查看订单详细信息
	 * @param orderHeadId 即订单id
	 * @return Vector对象,封装订单行信息
	 */

	public Vector getOrderDetailInfo(int orderHeadId){
		Vector orderLines=new Vector();
		OrderLine ol;
		String sql="select * from vw_orderline where orderhead_id="+orderHeadId;
		ResultSet rs=selectRecord(sql);
		int i=0;
		try {
			while(rs.next()){
				ol=new OrderLine();
				ol.setId(rs.getInt("id"));
//				System.out.println("----------------");
//				System.out.println(ol.getId());
//				System.out.println("----------------");
				ol.setOrderHeadId(orderHeadId);
				ol.setProductId(rs.getInt("product_id"));
				ol.setProductName(rs.getString("product_name"));
				ol.setStandardPrice(rs.getDouble("standard_price"));
				ol.setOrderPrice(rs.getDouble("price"));
				ol.setQuantity(rs.getInt("product_quantity"));
				ol.setRemark(rs.getString("remark"));
				ol.setStatus(rs.getInt("status"));
				ol.setStatusName(rs.getString("status_name"));
				orderLines.add(i++,ol);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("订单行信息查询错误");
		}
//		for(int i=0;i<orderLines.size();i++){
//			ol=(OrderLine)orderLines.get(i);
//			System.out.println("************************************************");
//			System.out.println(ol.getProductId());
//			System.out.println(ol.getProductName());
//			System.out.println(ol.getId());
//			System.out.println("************************************************");
//		}
		return orderLines;
	}
	/**
	 * 查看订单列表信息.
	 * @param memberId 即会员id
	 * @return Vector对象,订单头信息
	 */
	public Vector getMemberOrderList(int memberId){
		Vector orderList=new Vector();
		OrderHead oh=null;
		String sql="select * from vw_order where member_id="+memberId;
		ResultSet rs=selectRecord(sql);
		try {
			while(rs.next()){
				oh=new OrderHead();
				//订单号
				oh.setId(rs.getInt("id"));
				//会员ID
				oh.setMemberId(rs.getInt("member_id"));
				//收件人
				oh.setOrderPeople(rs.getString("order_man"));
				//订单日期
				oh.setOrderDate(rs.getString("order_date"));
				//收件人电话
				oh.setOrderPhone(rs.getString("order_phone"));
				//邮编
				oh.setPostcode(rs.getString("postcode"));
				//收件人地址
				oh.setDeliveryAddress(rs.getString("delivery_address"));
				//需要发票标志
				oh.setIsInvoice(rs.getInt("isinvoice"));
				//订单状态
				oh.setStatus(rs.getInt("status"));
				//会员ID
				oh.setMemberId(rs.getInt("member_id"));
				//支付方式
				oh.setPaymentType(rs.getInt("payment_type"));
				//送货方式
				oh.setDeliveryType(rs.getInt("delivery_type"));
				//缺货处理方式
				oh.setLessDeal(rs.getInt("less_deal"));
				//备注
				oh.setRemark(rs.getString("remark"));
				//订单状态
				oh.setStatusName(rs.getString("order_status_name"));
				//缺货处理方式名称
				oh.setLessDealName(rs.getString("less_deal_name"));
				//送货方式名称
				oh.setDeliveryTypeName(rs.getString("delivery_type_name"));
				//支付方式名称
				oh.setPaymentTypeName(rs.getString("payment_type_name"));
				orderList.add(oh);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("订单列表信息查询错误");
		}
		return orderList;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -