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

📄 order.java

📁 机械工业出版社的《jsp2.0动态网站开发实例指南》的源代码
💻 JAVA
字号:
package OrderPack;

import java.sql.Time;

import DataCenterPackage.DataCenter;
import DataCenterPackage.RoomCondition;
import RoomPackage.Room;
import RoomPackage.RoomManager;

public class Order 
{
    public final static int STATUS_ORDER = 0;
    public final static int STATUS_WARNING = 1;
    public final static int STATUS_PAYED = 2;
    public final static int STATUS_NOTPAYED = 3;
    
    public final static int INVALID_ID = -1;
    
   private int _roomIDs [];
   
   private int _status;
   
   private int _id;
   private int _roomType;
   private Time _startTime;
   private Time _endTime;
   private int _roomCount;
   private String _userName;

   private float _needPay;
   private Time _orderTime;

   private float _nowPay;
   private DataCenter _dataCenter;

   public Order() 
   {
       _id = INVALID_ID;
       _dataCenter = DataCenter.get_INSTANCE();
   }

   public void set_roomIDs(int []ids)
   {
       _roomIDs = ids;
   }
   
   public int[] get_roomIDs()
   {
       return _roomIDs;
   }

   public int get_id() 
   {
      return _id;    
   }

   public void set_id(int a_id) 
   {
      _id = a_id;    
   }

   public int get_roomType() 
   {
      return _roomType;    
   }

   public void set_roomType(int a_roomType) 
   {
      _roomType = a_roomType;    
   }

   public java.sql.Time get_startTime() 
   {
      return _startTime;    
   }

   public void set_startTime(java.sql.Time a_startTime) 
   {
      _startTime = a_startTime;    
   }

   public java.sql.Time get_endTime() 
   {
      return _endTime;    
   }

   public void set_endTime(java.sql.Time a_endTime) 
   {
      _endTime = a_endTime;    
   }

   public int get_roomCount() 
   {
      return _roomCount;    
   }

   public void set_roomCount(int a_roomCount) 
   {
      _roomCount = a_roomCount;    
   }

   public String get_userName() 
   {
      return _userName;    
   }

   public void set_userName(String a_userName) 
   {
      _userName = a_userName;    
   }

   public float get_needPay() 
   {
      return _needPay;    
   }

   public void set_needPay(float a_needPay) 
   {
      _needPay = a_needPay;    
   }

   public java.sql.Time get_orderTime() 
   {
      return _orderTime;    
   }

   public void set_orderTime(java.sql.Time a_orderTime) 
   {
      _orderTime = a_orderTime;    
   }

   public float get_nowPay() 
   {
      return _nowPay;    
   }

   public void set_nowPay(float a_nowPay) 
   {
      _nowPay = a_nowPay;    
   }

   public DataCenter get_dataCenter() 
   {
      return _dataCenter;    
   }

   public void set_dataCenter(DataCenter a_dataCenter) 
   {
      _dataCenter = a_dataCenter;    
   }

   public boolean Submit() 
   {
       int ret;
       _roomIDs = GetAvalibleRooms();
       if (_roomIDs == null) {
           return false;
       }
       set_orderTime(new Time(System.currentTimeMillis()));
       if (_id == INVALID_ID)
       {
           ret = _dataCenter.AddOrder(this);
           _id = ret;
       }
       else
       {
           ret = _dataCenter.ModifyOrder(this);
       }

       if(ret<=0)
            return false;

       for (int i = 0; i < _roomCount; i++) {
           Room room = _dataCenter.QueryRoom(_roomIDs[i]);
           room.AddOrder(this);
       }

       return true;

   }
   
   public int [] GetAvalibleRooms() {
       int avRooms[] = new int[_roomCount];
       int index = 0;
       
       RoomManager roomMgr = RoomManager.get_INSTANCE();
       RoomCondition con1 = new RoomCondition(RoomCondition.RP_ROOMTYPE,
               RoomCondition.CO_EQUAL,
               new Integer(_roomType).toString());
       
       int []rooms = roomMgr.SearchRoom(new RoomCondition[]{con1});
       int len = rooms.length;
       if (len < _roomCount) {
           return null;
       }
       
       for (int i = 0; i < len; i ++) {
           Room room = _dataCenter.QueryRoom(rooms[i]);
           boolean avalible = true;
           int []orders = room.get_roomOrderList();
           if(orders != null){
               int orderCount = orders.length;
               for (int j = 0; j < orderCount; j ++) {
                   Order tmpOrder = _dataCenter.QueryOrder(orders[j]);
                   if(tmpOrder==null){
                       continue;
                   }
                   if (tmpOrder.get_endTime().getTime() < _startTime.getTime()
                           || tmpOrder.get_startTime().getTime() > _endTime.getTime()) {
                       continue;
                   }else {
                       avalible = false;
                       break;
                   }
               }
           }
           if (avalible) {
               avRooms[index] = rooms[i];
               index ++;
               if (index == _roomCount) {
                   return avRooms;
               }
           }
       }
       return null;
   }
   public boolean Pay(float payment) 
   {
       if (_id == INVALID_ID) {
           return false;
       }
       GetInfo(_id);
       _nowPay += payment;
       return ModifyInfo();
   }
   public boolean ModifyInfo() 
   {
       if (_id == INVALID_ID) {
           return false;
       }
       
       Order tmpOrder = _dataCenter.QueryOrder(_id);
       if (tmpOrder == null) {
           return false;
       }
       
       tmpOrder.Cancel();
       return Submit();
   }
   public boolean GetInfo(int orderID) 
   {
       Order tmpOrder = _dataCenter.QueryOrder(orderID);
       Copy(tmpOrder);
       return true;
   }
   
   public void Copy(Order order)
   {
       _dataCenter = order.get_dataCenter();
       _endTime = order.get_endTime();
       _id = order.get_id();
       _needPay = order.get_needPay();
       _nowPay = order.get_nowPay();
       _orderTime = order.get_orderTime();
       _roomCount = order.get_roomCount();
       _roomIDs = order.get_roomIDs();
       _roomType = order.get_roomType();
       _startTime = order.get_startTime();
       _userName = order.get_userName();
   }
   public void Cancel() 
   {
       if (_id == INVALID_ID) {
           return;
       }
       _dataCenter.DeleteOrder(_id);
       
       if (_roomIDs == null) {
           return;
       }else {
           int len = _roomIDs.length;
           for (int i = 0; i < len; i ++) {
               Room room = _dataCenter.QueryRoom(_roomIDs[i]);
               if(room!=null)
                   room.DeleteOrder(this);
           }
       }
   }
    public void set_status(int i) {
        _status = i;
    }
    public int get_status() {
        return _status;
    }
}

⌨️ 快捷键说明

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