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

📄 ordermanage.java

📁 一个简单实用的网上书城,可当作原型使用
💻 JAVA
字号:
/*
 * OrderManage.java
 *
 * Created on 2007年7月20日, 下午3:12
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package czm;
import java.sql.*;
import java.text.DateFormat;
import java.util.*;

/**
 *
 * @author Administrator
 */

public class OrderManage {
    /** Creates a new instance of OrderManage */
    private boolean isAdmin=false;
    private User Manager=null;
    static final int WAITFORCHECK=1;
    static final int PASS=2;
    static final int UNPASS=3;
    
    public OrderManage() {
    }
    
    public OrderManage(User user)//一般用户
    {
        this.Manager=user;
    }
    
    public OrderManage(boolean isadmin)//一般用户或管理员
    {
        this.isAdmin=isadmin;
    }
    /**
       生成订单的ID,返回大等0的新订单ID,出错返回-1
     *
     */
    public long getNewOrderID(){
        opendb odb=new opendb();
        ResultSet rs;
        long orderid=0;
        String strSqlT = "select max(orderID) from orderInfo";
        rs=odb.executeQuery(strSqlT);
        try{
            if(rs.next()){
                orderid=rs.getLong(1);
            }
        }catch(SQLException e)
        {
            return -1;
        }
        orderid++;
        return orderid;
    }

    /**
     * 创建一个新定单
     */
    public void setManager(User user)
    {
        this.Manager=user;
    }
    public User getManage()
    {
        return this.Manager;
    }
    public void setAdmin(boolean isamdin)
    {
        this.isAdmin=isamdin;
    }
    public boolean BalanceOrder(Order order) {
        if(order.getOrderID()==0l)order.setOrderID(this.getNewOrderID());
        return BalanceOrder(order.getUserID(),order.getCart(),order.getReceiverAddress(),
                               order.getReceiverName(),order.getTel(),order.getReceiverZip(),
                               order.getRem(),order.getPaymentType());
    }
    
    /**
     * 创建一个新定单
     */
    public boolean BalanceOrder(String userid,Cart cart,String address,
                                    String receiver,String tel,String postnum,
                                    String rem,int pt)
    { 
        Hashtable hashbooks=cart.getBooks();   
        float orderprice= new Benifit().Discount(userid,cart.getAccount()); //购物车中书籍总额打折****************
        if(hashbooks.isEmpty()||orderprice<=0.001f) //购物车没货物
        {
            return false; 
        }
        long neworderid=this.getNewOrderID();
        int orderstate=this.WAITFORCHECK;
        String currentdate=DateFormat.getDateInstance(DateFormat.MEDIUM)
                          .format(new java.util.Date());
        int bookkinds=hashbooks.size();               //购物车中书籍的种数
        String[] strSql=new String[bookkinds+1];
        int i=0;
        Iterator it=hashbooks.keySet().iterator();   
        while(it.hasNext()){
            String itemisbn=(String)it.next();    //取得HASHTABL键值对
            Integer itemcount=(Integer)hashbooks.get(itemisbn);                      //购造SQL语句
            strSql[i++]="insert into Orderdetail(orderid,bookisbn,bookcount)" +
                       " values("+neworderid+",'"+
                       itemisbn+"',"+itemcount+")";
        }
        strSql[i]="insert into orderinfo values("+neworderid+",'"+userid+"','"+receiver
                   +"','"+address+"','"+postnum+"','"+rem+"',"+orderprice+",'"+currentdate+
                   "',"+orderstate+","+pt+",'"+tel+"')";
        if(new opendb().executeUpdates(strSql))return true;  //执行事务
        return false;
    }

    
    /**
     * 删除定单
     */
   public boolean DeleteOrder(long orderid)
   {
        String strSQL="select memberid,orderstate from orderinfo where orderid="+orderid;
        opendb dbopt=new opendb();
        ResultSet rs=dbopt.executeQuery(strSQL);
        String userid=null;
        int orderstate=1;
        try{
            if(rs.next())
            {
                userid=rs.getString(1);
                orderstate=rs.getInt(2);
            }
            else
            {
                return false;               //找不到该订单
            }
            rs.close();
        }
        catch(SQLException e)
        {
            return false;
        }
        if(this.isAdmin==false)
        {
            if(orderstate==this.PASS||!userid.equals(Manager.ID))
                return false; //权限不足
        }
        String strSqlTran[]=new String[2];
        strSqlTran[0]="delete from orderdetail where orderid="+orderid;
        strSqlTran[1]="delete from orderinfo where orderid="+orderid;
        if(dbopt.executeUpdates(strSqlTran))          //执行事务
        {
            return true;
        }
        return false;
   }
   /**
     * 修改定单
     */
   public boolean EditOrder (long orderid,String userid,
                                String address,String receiver,String tel,
                                String postnum,float oprice,String date,
                                String rem,int pt)
   {
        String strSQL="select orderstate from orderinfo where orderid="+orderid;
        opendb dbopt=new opendb();
        ResultSet rs=dbopt.executeQuery(strSQL);
        int orderstate=1;
        try{
            if(rs.next())
            {
                orderstate=rs.getInt(1);
            }
            else
            {
                return false;               //找不到该订单
            } 
            rs.close();
        }catch(SQLException e)
        {
            return false;
        }
        if(this.isAdmin==false)
        {
            if(orderstate==this.PASS||!userid.equals(Manager.ID))
                return false; //权限不足
        }
        String strSql="update orderinfo set memberid='"+userid+"',receivername='"+receiver+
                  "',receiverAddress='"+address+"',receiverZip='"+postnum+
                  "',orderRem='"+rem+"',orderPrice="+oprice+",orderDate='"+date+
                  "',receiverTel='"+tel+"',paymenttype="+pt+" where orderid="+orderid;
        if(new opendb().executeUpdate(strSql))return true;  //执行修改
        return false;
   }
   
    /**
     * 修改定单状态
     */
   public boolean ChangeOrderState(long orderid,int os)
   {
       if(!isAdmin)return false; 
       ArrayList strsqls=new ArrayList();
        opendb dbopt=new opendb();
        if(os==this.WAITFORCHECK)return false;
        if(os==this.PASS)
        {    
             String strSQL="select bookisbn,bookcount from orderdetail where orderid="+orderid;
             ResultSet rs=dbopt.executeQuery(strSQL);
             try{
                 while(rs.next())                       //取出订单的明细
                 {
                     String itemisbn=rs.getString(1);
                     int itemcount=rs.getInt(2); //修改对应书籍库存
                     String tmpstrsql="update bookstate set booknum=booknum-"+itemcount+
                              ",sailnum=sailnum+"+itemcount+" where bookisbn='"+itemisbn+"'";
                     strsqls.add(tmpstrsql);
                 }
             }
             catch(SQLException e)
             {
               return false;
             }
        }
        strsqls.add("update orderinfo set orderstate="+os+" " +
                                  "where orderid="+orderid);
        
        if(dbopt.executeUpdates(getStringsFormArrayList(strsqls)))
        {
            return true;
        }
        else
        {
            return false;
        }
        
   }
   
    /**
     * 通过ID查找订单
     */
   public Order FindOrderByID (long orderid)
   {
       String strsql="select * from orderinfo where orderid="+orderid; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       try{
           if(rs.next())
           {
                long orderID=rs.getLong(1);
                String userID = rs.getString(2);
                if(!this.isAdmin&&!this.Manager.ID.equals(userID))return null; //权限不足
                String receiverName = rs.getString(3);
                String receiverAddress=rs.getString(4);
                String receiverZip =rs.getString(5);
                String orderRem=rs.getString(6);
                float orderPrice = rs.getFloat(7);
                java.util.Date orderDate;
                try{
                    orderDate = java.text.DateFormat.getDateInstance(DateFormat.MEDIUM).parse(rs.getString(8));
                }catch(Exception e){
                    orderDate=null;
                }
                int orderState=rs.getInt(9);
                int pt=rs.getInt(10);
                String receiverTel=rs.getString(11);       
                rs.close();
                Cart cart=new Cart();;
                String strSQL="select bookisbn,bookcount from orderdetail where orderid="+orderid;
                ResultSet rs1=dbopt.executeQuery(strSQL);
                while(rs1.next())
                {
                    cart.AddBookToCart(rs1.getString(1),rs1.getInt(2));
                }
                rs1.close();
                return new Order(orderID,userID,receiverName,receiverAddress,
                                   receiverTel,receiverZip,orderRem,cart,orderDate,
                                   orderState,orderPrice,pt);
           }
       }catch(SQLException e)
       { }
       return null;
   }
   
    /**
     * 通过会员名查找订单/////////
     */
   public Order[] FindOrdersByUserName(String username)
   {
       if(!isAdmin)return null;
       ArrayList orders=new ArrayList();
       String strsql="select orderid from orderinfo inner join buyerinfo on = " +
               "orderinfo.Memberid=buyerinfo.memberid and membername='"+username+"'"; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       if(rs==null)return null;
       try{
           while(rs.next())
           {
                orders.add(FindOrderByID(rs.getLong(1)));
           }
           rs.close();
       }
       catch(SQLException e)
       {
            return null;
       }
       return this.getOrdersFromArrayList(orders);
   }
   
    /**
     * 通过会员ID查找订单
     */
   public Order[] FindOrdersByUserID(String userid)
   {
       if(!this.isAdmin&&!this.Manager.ID.equals(userid))return null; //权限不足
       ArrayList orders=new ArrayList();
       String strsql="select orderid from orderinfo where " +
               "orderinfo.memberid='"+userid+"'"; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       if(rs==null)return null;
       try{
           while(rs.next())
           {
                orders.add(FindOrderByID(rs.getLong(1)));
           }
           rs.close();
       }
       catch(SQLException e)
       {
            return null;
       }
       return this.getOrdersFromArrayList(orders);
   }
   
    /**
     * 通过下订日期查找订单
     */
   public Order[] FindOrdersByDate (java.util.Date orderdate)
   {
       if(!isAdmin)return null;
       ArrayList orders=new ArrayList();
       String strsql="select orderid from orderinfo where " +
               "orderinfo.orderdate=#"+orderdate+"#"; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       if(rs==null)return null;
       try{
           while(rs.next())
           {
                orders.add(FindOrderByID(rs.getLong(1)));
           }
           rs.close();
       }
       catch(SQLException e)
       {
            return null;
       }
       return this.getOrdersFromArrayList(orders);
   }
   
    /**
     * 通过状态查找订单
     */
   public Order[] FindOrdersByState (int os)
   {
       if(!isAdmin)return null;
       ArrayList orders=new ArrayList();
       String strsql="select orderid from orderinfo where " +
               "orderinfo.orderstate="+os; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       if(rs==null)return null;
       try{
           while(rs.next())
           {
                orders.add(FindOrderByID(rs.getLong(1)));
           }
       }
       catch(SQLException e)
       {
            return null;
       }
       return this.getOrdersFromArrayList(orders);
   }
   
   /**
     * 查找所有订单
     */
   public Order[] FindAllOrders()
   {
       if(!isAdmin)return null;
       ArrayList orders=new ArrayList();
       String strsql="select orderid from orderinfo"; 
       opendb dbopt=new opendb();
       ResultSet rs=dbopt.executeQuery(strsql);
       if(rs==null)return null;
       try{
           while(rs.next())
           {
                orders.add(FindOrderByID(rs.getLong(1)));
           }
           rs.close();
       }
       catch(SQLException e)
       {
            return null;
       }
       return this.getOrdersFromArrayList(orders);
   }
   
   
   private Order[] getOrdersFromArrayList(ArrayList orders)
   {
       Order[] tmpresult=new Order[orders.size()];
       for (int i = 0; i < orders.size(); i++) {
           tmpresult[i]=(Order)orders.get(i);
       }
       return tmpresult;
   }
   private String[] getStringsFormArrayList(ArrayList strs)
   {
       String[] tmpresult=new String[strs.size()];
       for (int i = 0; i < strs.size(); i++) {
           tmpresult[i]=(String)strs.get(i);
       }
       return tmpresult;
   }
}

⌨️ 快捷键说明

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