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

📄 orderservice.java

📁 使用jsp+Servlet,采用MVC模式,实现了一典型小型电子商务网站的全过程.包括前台和后台的全部功能.适合于初学者学习使用.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * 
 */
package com.eshop.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import com.eshop.form.CreditCardForm;
import com.eshop.form.NewOrderForm;
import com.eshop.form.ViewOrderForm;
import com.eshop.form.ViewOrderLineItemForm;
import com.eshop.util.DBManager;
import com.eshop.vo.Account;
import com.eshop.vo.CartItem;
import com.eshop.vo.LineItem;
import com.eshop.vo.Orders;

/**
 * 处理订单业务逻辑类
 * @author jonson
 *
 */


public class OrderService {
	/**
	 * 保存订单信息
	 * @param newOrderForm
	 * @return
	 * @throws SQLException 
	 * @throws SQLException
	 */
	public boolean saveOrders(NewOrderForm newOrderForm) throws SQLException{
		boolean success=false;
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		try {
			//conn.setAutoCommit(false);
			ResultSet rs=null;
			Statement st=conn.createStatement();
			rs=st.executeQuery("select max(orderid) as orderid from orders");
			int orderid=0;
			while(rs.next()){			
				orderid=rs.getInt("orderid")+1;
			}
			rs.close();
			//保存信息到orders表
			PreparedStatement ps=conn
				.prepareStatement("INSERT INTO ORDERS(ORDERID,USERID,ORDERDATE,SHIPADDR1,SHIPADDR2,SHIPCITY,SHIPSTATE,shipzip,shipcountry,shiptoname,courier,totalprice) values("+orderid+",?,getDate(),?,?,?,?,?,?,?,'1',?)");
			ps.setString(1, newOrderForm.getUserid());
			ps.setString(2, newOrderForm.getShipaddr1());
			ps.setString(3, newOrderForm.getShipaddr2());
			ps.setString(4, newOrderForm.getShipcity());
			ps.setString(5, newOrderForm.getShipstate());
			ps.setString(6, newOrderForm.getShipzip());
			ps.setString(7, newOrderForm.getShipcountry());
			ps.setString(8, newOrderForm.getShiptoname());
			ps.setFloat(9, newOrderForm.getTotalprice());
			ps.executeUpdate();
			ps.close();
			//保存信息到lineitem表
			Map shopCartMap=newOrderForm.getShoppingCartMap();
			if(!shopCartMap.equals(null)){
				Iterator it=shopCartMap.keySet().iterator();
				LineItem lineItem=null;
				while(it.hasNext()){
			//计算linenum的值
					ResultSet rs1=null;
					Statement st1=conn.createStatement();
					rs1=st1.executeQuery("select max(linenum) as linenum from lineitem");
					int linenum=0;
					while(rs1.next()){
						linenum=rs1.getInt("linenum")+1;
					}
					rs1.close();
				String itemId=(String)it.next();
				CartItem cartItem=(CartItem)shopCartMap.get(itemId);
				lineItem=new LineItem();
				lineItem.setItemid(itemId);
				lineItem.setQuantity(cartItem.getQuantity());
				lineItem.setUnitprice(cartItem.getItem().getUnitcost());
				PreparedStatement ps1=conn
				.prepareStatement("INSERT INTO lineitem(orderid,linenum,itemid,quantity,unitprice) values("+orderid+","+linenum+",?,?,?)");
				ps1.setString(1, lineItem.getItemid());
				ps1.setLong(2, lineItem.getQuantity());
				ps1.setFloat(3, lineItem.getUnitprice());
				ps1.executeUpdate();
				ps1.close();
				//插入订单状态表数据
				PreparedStatement ps2=conn
				.prepareStatement("insert into orderstatus(orderid,linenum,timestamp,status) values("+orderid+","+linenum+",getdate(),0)");				
				ps2.executeUpdate();
				ps2.close();
				}
			}		
			conn.commit();
			success=true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			conn.close();
		}
		return success;
}	
	/**
	 * 保存信用卡信息
	 * @param creditCardForm
	 * @return
	 */
	public boolean saveCreditCard(CreditCardForm creditCardForm) {
		
		boolean success=false;
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		
		ResultSet rs=null;
		Statement st;
		try {
			//conn.setAutoCommit(false);
			st = conn.createStatement();
			rs=st.executeQuery("select max(id) as id from creditCardinfo");
			int id=0;
			while(rs.next()){			
				id=rs.getInt("id")+1;
			}
			rs.close();			
		PreparedStatement ps=conn
			.prepareStatement("INSERT INTO creditcardinfo(id,creditcard,exprdate,cardtype,billaddr1,billaddr2,billcity,billstate,billzip,billcountry,billtoname) values("+id+",?,?,?,?,?,?,?,?,?,?)");
		ps.setString(1, creditCardForm.getCreditcard());
		ps.setString(2, creditCardForm.getExprdate());
		ps.setString(3, creditCardForm.getCardtype());
		ps.setString(4, creditCardForm.getBilladdr1());
		ps.setString(5, creditCardForm.getBilladdr2());
		ps.setString(6, creditCardForm.getBillcity());
		ps.setString(7, creditCardForm.getBillstate());
		ps.setString(8, creditCardForm.getBillzip());
		ps.setString(9, creditCardForm.getBillcountry());
		ps.setString(10, creditCardForm.getBilltoname());
		ps.executeUpdate();
		
		//插入付款信息数据
		long orderid=this.getOrderId();
		PreparedStatement ps1=conn
		.prepareStatement("insert into payinfo values("+orderid+",?,0,getdate(),"+id+")");
	ps1.setString(1, creditCardForm.getPaytype());
		ps1.executeUpdate();		
		ps1.close();
		conn.commit();
		success=true;
	} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return success;
	}	
	/**
	 * 获得最后生成的订单号
	 * @return
	 */
	public long getOrderId(){
		long orderid=0;
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		ResultSet rs=null;		
		try {
			Statement st=conn.createStatement();
			rs=st.executeQuery("select max(orderid) as orderid from orders");
			while(rs.next()){
				 orderid=rs.getLong("orderid");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return orderid;		
}
	/**
	 * 获得全部收货人信息
	 * @author jonson
	 *
	 */
	public List getOrder(){		
		long orderid=this.getOrderId();//获得最后生成订单的ID
		ArrayList list=new ArrayList();
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		Statement st;
		try {
			st = conn.createStatement();
			ResultSet rs=st.executeQuery("select shiptoname,shipaddr1,shipaddr2,shipcity,shipstate,shipzip,shipcountry from orders where orderid="+orderid);
			Orders orders=null;
			while(rs.next()){
				orders=new Orders();
				//收货人信息
				orders.setShiptoname(rs.getString("shiptoname"));
				orders.setShipaddr1(rs.getString("shipaddr1"));
				orders.setShipaddr2(rs.getString("shipaddr2"));
				orders.setShipcity(rs.getString("shipcity"));
				orders.setShipstate(rs.getString("shipstate"));
				orders.setShipzip(rs.getString("shipzip"));
				orders.setShipcountry(rs.getString("shipcountry"));				
				list.add(orders);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;		
	}
	
	/**
	 * 根据orderID获得收货人信息
	 * @author jonson
	 *
	 */
	public List getOrderById(long orderid){		
		ArrayList list=new ArrayList();
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		Statement st;
		try {
			st = conn.createStatement();
			ResultSet rs=st.executeQuery("select shiptoname,shipaddr1,shipaddr2,shipcity,shipstate,shipzip,shipcountry from orders where orderid="+orderid);
			Orders orders=null;
			while(rs.next()){
				orders=new Orders();
				//收货人信息
				orders.setShiptoname(rs.getString("shiptoname"));
				orders.setShipaddr1(rs.getString("shipaddr1"));
				orders.setShipaddr2(rs.getString("shipaddr2"));
				orders.setShipcity(rs.getString("shipcity"));
				orders.setShipstate(rs.getString("shipstate"));
				orders.setShipzip(rs.getString("shipzip"));
				orders.setShipcountry(rs.getString("shipcountry"));				
				list.add(orders);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
}	
	/**
	 * 获得付款信息
	 * @return
	 */
	public List getPayInfo(){		
		long orderid=this.getOrderId();//获得最后生成订单的ID
		ArrayList list=new ArrayList();
		DBManager dbManager= new DBManager();
		Connection conn=dbManager.GetConnection();
		Statement st;
		try {
			st = conn.createStatement();
			ResultSet rs=st.executeQuery("select * from payinfo p inner join creditcardinfo c on p.creditcardinfo=c.id where orderid="+orderid);
			ViewOrderForm viewOrderForm=null;
			while(rs.next()){
				viewOrderForm=new ViewOrderForm();
				//付款信息
				viewOrderForm.setCardtype(rs.getString("cardtype"));
				viewOrderForm.setCreditcard(rs.getString("creditcard"));
				viewOrderForm.setExprdate(rs.getString("exprdate"));
				//帐单送达地址信息
				viewOrderForm.setBilltoname(rs.getString("billtoname"));
				viewOrderForm.setBilladdr1(rs.getString("billaddr1"));
				viewOrderForm.setBilladdr2(rs.getString("billaddr2"));
				viewOrderForm.setBillcity(rs.getString("billcity"));
				viewOrderForm.setBillstate(rs.getString("billstate"));
				viewOrderForm.setBillzip(rs.getString("billzip"));
				viewOrderForm.setBillcountry(rs.getString("billcountry"));
				list.add(viewOrderForm);
			}
		} catch (SQLException e) {

⌨️ 快捷键说明

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